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

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 STARTUPDIALOG_H
0008 #define STARTUPDIALOG_H
0009 
0010 #include <memory>
0011 #include <QDialog>
0012 
0013 #include "model/document.hpp"
0014 
0015 namespace glaxnimate::gui {
0016 
0017 class StartupDialog : public QDialog
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     StartupDialog(QWidget* parent = nullptr);
0023     ~StartupDialog();
0024 
0025     std::unique_ptr<model::Document> create() const;
0026 
0027 protected:
0028     void changeEvent ( QEvent* e ) override;
0029 
0030 private Q_SLOTS:
0031     void reload_presets();
0032     void select_preset(const QModelIndex& index);
0033     void click_recent(const QModelIndex& index);
0034     void update_time_units();
0035     void update_startup_enabled(bool checked);
0036 
0037 Q_SIGNALS:
0038     void open_recent(const QString& path);
0039     void open_browse();
0040 
0041 private:
0042     class Private;
0043     std::unique_ptr<Private> d;
0044 };
0045 
0046 } // namespace glaxnimate::gui
0047 
0048 #endif // STARTUPDIALOG_H