File indexing completed on 2025-02-02 04:11:30
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 0009 #include <QMenu> 0010 0011 #include "model/animation/animatable.hpp" 0012 0013 namespace glaxnimate::gui { 0014 0015 class SelectionManager; 0016 0017 class AnimatedPropertyMenu : public QMenu 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 AnimatedPropertyMenu(QWidget* parent = nullptr); 0023 ~AnimatedPropertyMenu(); 0024 0025 model::AnimatableBase* property() const; 0026 void set_property(model::AnimatableBase* property); 0027 void refresh_actions(); 0028 void set_controller(SelectionManager* window); 0029 0030 bool can_paste() const; 0031 0032 protected: 0033 void changeEvent ( QEvent* e ) override; 0034 0035 public Q_SLOTS: 0036 void paste_keyframe(); 0037 void loop_keyframes(); 0038 void follow_path(); 0039 void remove_all_keyframes(); 0040 void add_keyframe(); 0041 void remove_keyframe(); 0042 0043 private: 0044 class Private; 0045 std::unique_ptr<Private> d; 0046 }; 0047 0048 } // namespace glaxnimate::gui