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