File indexing completed on 2024-06-09 04:52:59

0001 /*
0002     SPDX-FileCopyrightText: 2023 Mladen Milinkovic <max@smoothware.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #ifndef SUBTITLECOMPOSER_SUBTITLECLASSDIALOG_H
0007 #define SUBTITLECOMPOSER_SUBTITLECLASSDIALOG_H
0008 
0009 #include <QDialog>
0010 
0011 namespace Ui {
0012 class SubtitleClassDialog;
0013 }
0014 
0015 namespace SubtitleComposer {
0016 
0017 class SubtitleClassDialog : public QDialog
0018 {
0019     Q_OBJECT
0020 
0021     Q_PROPERTY(QString currentClass READ currentClass WRITE setCurrentClass
0022                NOTIFY currentClassChanged)
0023 
0024 public:
0025     SubtitleClassDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
0026     SubtitleClassDialog(const QString &initial, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
0027     virtual ~SubtitleClassDialog();
0028 
0029     static QString getClass(const QStringList &classes,
0030                 const QString &initial = QString(),
0031                 QWidget *parent = nullptr,
0032                 const QString &title = QString());
0033 
0034     void setCurrentClass(const QString &cssClass);
0035     QString currentClass() const;
0036 
0037     inline QString selectedClass() const { return currentClass(); }
0038 
0039 signals:
0040     void currentClassChanged(const QString &cssClass);
0041     void classSelected(const QString &cssClass);
0042 
0043 private:
0044     Ui::SubtitleClassDialog *ui;
0045 };
0046 } // namespace SubtitleComposer
0047 
0048 #endif // SUBTITLECOMPOSER_SUBTITLECLASSDIALOG_H