Warning, file /graphics/glaxnimate/src/gui/tools/edit_tool.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 #include "base.hpp" 0009 #include "math/bezier/point.hpp" 0010 0011 namespace glaxnimate::model { 0012 class Styler; 0013 } // namespace glaxnimate::model 0014 0015 namespace glaxnimate::gui::tools { 0016 0017 class EditTool : public Tool 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 EditTool(); 0023 ~EditTool(); 0024 0025 QString id() const override { return "edit"; } 0026 QIcon icon() const override { return QIcon::fromTheme("edit-node"); } 0027 QString name() const override { return i18n("Edit"); } 0028 QKeySequence key_sequence() const override { return QKeySequence(i18n("F2"), QKeySequence::PortableText); } 0029 static int static_group() noexcept { return Registry::Core; } 0030 int group() const noexcept override { return static_group(); } 0031 0032 void selection_set_vertex_type(math::bezier::PointType t); 0033 void selection_delete(); 0034 void selection_straighten(); 0035 void selection_curve(); 0036 void selection_dissolve(); 0037 0038 void add_point_mode(); 0039 0040 private: 0041 void mouse_press(const MouseEvent& event) override; 0042 void mouse_move(const MouseEvent& event) override; 0043 void mouse_release(const MouseEvent& event) override; 0044 void mouse_double_click(const MouseEvent& event) override; 0045 0046 void paint(const PaintEvent& event) override; 0047 QCursor cursor() override; 0048 0049 void key_press(const KeyEvent& event) override; 0050 void key_release(const KeyEvent& event) override; 0051 0052 void on_selected(graphics::DocumentScene * scene, model::VisualNode * node) override; 0053 0054 void enable_event(const Event&) override; 0055 void disable_event(const Event&) override; 0056 0057 QWidget* on_create_widget() override; 0058 0059 void set_cursor(Qt::CursorShape shape); 0060 0061 void exit_add_point_mode(); 0062 0063 Q_SIGNALS: 0064 void gradient_stop_changed(model::Styler* styler, int stop); 0065 0066 private: 0067 class Private; 0068 std::unique_ptr<Private> d; 0069 0070 static Autoreg<EditTool> autoreg; 0071 }; 0072 0073 } // namespace glaxnimate::gui::tools 0074