File indexing completed on 2025-02-02 04:11:27

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #ifndef EXTERNALFONTWIDGET_H
0008 #define EXTERNALFONTWIDGET_H
0009 
0010 #include <memory>
0011 #include <QWidget>
0012 
0013 #include "model/custom_font.hpp"
0014 
0015 namespace glaxnimate::gui::font {
0016 
0017 class ExternalFontWidget : public QWidget
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     ExternalFontWidget(QWidget* parent = nullptr);
0023     ~ExternalFontWidget();
0024 
0025     void set_font_size(double size);
0026 
0027     model::CustomFont custom_font() const;
0028     const QFont& selected_font() const;
0029 
0030 protected:
0031     void changeEvent ( QEvent* e ) override;
0032     void showEvent(QShowEvent * event) override;
0033 
0034 private Q_SLOTS:
0035     void url_from_file();
0036     void load_url();
0037     void url_changed(const QString& url);
0038 
0039 Q_SIGNALS:
0040     void font_changed(const QFont& font);
0041 
0042 private:
0043     class Private;
0044     std::unique_ptr<Private> d;
0045 };
0046 
0047 
0048 } // namespace glaxnimate::gui::font
0049 
0050 #endif // EXTERNALFONTWIDGET_H