File indexing completed on 2024-06-02 04:20:57
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 MAIN_WINDOW_HPP 0008 #define MAIN_WINDOW_HPP 0009 0010 #include <QMainWindow> 0011 #include <memory> 0012 0013 #include "widgets/dialogs/selection_manager.hpp" 0014 #include "item_models/document_node_model.hpp" 0015 0016 namespace glaxnimate::android { 0017 0018 class MainWindow : public QMainWindow, public glaxnimate::gui::SelectionManager 0019 { 0020 Q_OBJECT 0021 0022 public: 0023 explicit MainWindow(QWidget *parent = nullptr); 0024 ~MainWindow(); 0025 0026 model::Document* document() const override; 0027 QColor current_color() const override; 0028 void set_current_color(const QColor& c) override; 0029 QColor secondary_color() const override; 0030 void set_secondary_color(const QColor& c) override; 0031 QPen current_pen_style() const override; 0032 qreal current_zoom() const override; 0033 model::BrushStyle* linked_brush_style(bool secondary) const override; 0034 0035 model::Composition* current_composition() const override; 0036 void set_current_composition(model::Composition* comp) override; 0037 0038 model::VisualNode* current_document_node() const override; 0039 void set_current_document_node(model::VisualNode* node) override; 0040 0041 void switch_tool(gui::tools::Tool* tool) override; 0042 0043 QWidget* as_widget() override { return this; } 0044 0045 std::vector<model::VisualNode*> cleaned_selection() const override; 0046 0047 std::vector<io::mime::MimeSerializer*> supported_mimes() const override; 0048 void set_selection(const std::vector<model::VisualNode*>& selected) override; 0049 void update_selection(const std::vector<model::VisualNode*>& selected, const std::vector<model::VisualNode*>& deselected) override; 0050 0051 glaxnimate::gui::item_models::DocumentNodeModel* model() const override; 0052 0053 public Q_SLOTS: 0054 void open_intent(const QUrl& uri); 0055 0056 protected: 0057 void changeEvent(QEvent *e) override; 0058 void resizeEvent(QResizeEvent* e) override; 0059 void showEvent(QShowEvent* e) override; 0060 0061 private Q_SLOTS: 0062 void tool_triggered(bool checked); 0063 0064 private: 0065 class Private; 0066 std::unique_ptr<Private> d; 0067 }; 0068 0069 } // namespace glaxnimate::android 0070 #endif // MAIN_WINDOW_HPP