Warning, file /graphics/glaxnimate/src/gui/tools/handle_menu.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 0009 #include <QMenu> 0010 #include <QGraphicsItem> 0011 0012 #include "graphics/item_data.hpp" 0013 #include "model/animation/animatable.hpp" 0014 #include "model/document.hpp" 0015 #include "command/animation_commands.hpp" 0016 #include "app/application.hpp" 0017 #include "widgets/menus/animated_property_menu.hpp" 0018 0019 0020 namespace glaxnimate::gui::tools { 0021 0022 inline void add_property_menu_actions(QMenu* menu, QGraphicsItem* item, SelectionManager* window) 0023 { 0024 bool started = false; 0025 for ( const auto& propvariant : item->data(graphics::AssociatedProperty).toList() ) 0026 { 0027 auto prop = propvariant.value<model::AnimatableBase*>(); 0028 if ( !prop ) 0029 continue; 0030 0031 if ( !started ) 0032 { 0033 menu->addSection(i18n("Properties")); 0034 started = true; 0035 } 0036 0037 AnimatedPropertyMenu* sub = new AnimatedPropertyMenu(menu); 0038 sub->set_property(prop); 0039 sub->set_controller(window); 0040 menu->addAction(sub->menuAction()); 0041 0042 } 0043 } 0044 0045 } // namespace glaxnimate::gui::tools