File indexing completed on 2024-05-19 16:00:11
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 #include "libruqolawidgets_private_export.h" 0009 #include <QDebug> 0010 #include <QUrl> 0011 #include <QWizard> 0012 class GenerateVideoMessagePage; 0013 class CreateVideoMessagePage; 0014 class CreateVideoMessageWidget; 0015 class ShowVideoWidget; 0016 class QLineEdit; 0017 class RocketChatAccount; 0018 0019 class LIBRUQOLAWIDGETS_TESTS_EXPORT CreateVideoMessageWizard : public QWizard 0020 { 0021 Q_OBJECT 0022 public: 0023 struct LIBRUQOLAWIDGETS_TESTS_EXPORT CreateVideoMessageInfo { 0024 QString mDescription; 0025 QString mFileName; 0026 QUrl mFileUrl; 0027 [[nodiscard]] bool isValid() const; 0028 }; 0029 0030 explicit CreateVideoMessageWizard(RocketChatAccount *account, QWidget *parent = nullptr); 0031 ~CreateVideoMessageWizard() override; 0032 0033 [[nodiscard]] CreateVideoMessageInfo videoMessageInfo() const; 0034 0035 private: 0036 LIBRUQOLAWIDGETS_NO_EXPORT void readConfig(); 0037 LIBRUQOLAWIDGETS_NO_EXPORT void writeConfig(); 0038 LIBRUQOLAWIDGETS_NO_EXPORT void slotCurrentIdChanged(int id); 0039 LIBRUQOLAWIDGETS_NO_EXPORT void slotAccepted(); 0040 enum CreateVideoMessageEnum { 0041 CreateVideo, 0042 CreateMessage, 0043 }; 0044 CreateVideoMessagePage *const mCreateVideoMessagePage; 0045 GenerateVideoMessagePage *const mCreateMessagePage; 0046 }; 0047 0048 class LIBRUQOLAWIDGETS_TESTS_EXPORT CreateVideoMessagePage : public QWizardPage 0049 { 0050 Q_OBJECT 0051 public: 0052 explicit CreateVideoMessagePage(QWidget *parent = nullptr); 0053 ~CreateVideoMessagePage() override; 0054 0055 [[nodiscard]] bool validatePage() override; 0056 0057 [[nodiscard]] QUrl fileNamePath() const; 0058 0059 [[nodiscard]] bool isComplete() const override; 0060 0061 void loadSettings(); 0062 void saveSettings(); 0063 0064 private: 0065 CreateVideoMessageWidget *const mCreateVideoMessageWidget; 0066 }; 0067 0068 class LIBRUQOLAWIDGETS_TESTS_EXPORT GenerateVideoMessagePage : public QWizardPage 0069 { 0070 Q_OBJECT 0071 public: 0072 explicit GenerateVideoMessagePage(RocketChatAccount *account, QWidget *parent = nullptr); 0073 ~GenerateVideoMessagePage() override; 0074 0075 [[nodiscard]] QString fileName() const; 0076 [[nodiscard]] QString description() const; 0077 void setFileNamePath(const QString &url); 0078 [[nodiscard]] QUrl fileNameUrl() const; 0079 0080 private: 0081 ShowVideoWidget *const mShowVideoWidget; 0082 QLineEdit *const mFileName; 0083 QLineEdit *const mDescription; 0084 }; 0085 0086 LIBRUQOLAWIDGETS_TESTS_EXPORT QDebug operator<<(QDebug d, const CreateVideoMessageWizard::CreateVideoMessageInfo &t);