Ignore:
Timestamp:
Aug 11, 2025, 5:45:54 PM (3 months ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
Candidate_v1.7.0, stable
Children:
5718cc
Parents:
ae9ad6
git-author:
Frederik Heber <frederik.heber@…> (07/20/25 20:19:22)
git-committer:
Frederik Heber <frederik.heber@…> (08/11/25 17:45:54)
Message:

Adds context menu "atom" to GLWorldView.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Menu/Qt4/QtMenu.hpp

    rae9ad6 r9cdab3  
    1010
    1111// include config.h
     12#include <cstddef>
    1213#ifdef HAVE_CONFIG_H
    1314#include <config.h>
     
    1617
    1718#include <Qt/qaction.h>
     19#include <Qt/qpoint.h>
    1820
    1921#include "Menu/Qt4/QMenu_tooltip.hpp"
     
    5254  virtual ~QtMenu()
    5355  {
     56    // delete all plumbed actions
    5457    for(std::list<QtMenuPipe*>::iterator it=plumbing.begin(); it != plumbing.end(); it++)
    5558      delete (*it);
    5659
     60    // delete all submenus
     61    for(SubMenus_t::iterator iter = submenus.begin(); iter != submenus.end(); ++iter)
     62      delete(*iter);
     63
     64    // delete the wrapped instance if we took over ownership
    5765    if (deleteMenu)
    5866      delete MenuInstance;
     
    103111  MenuShortcutMap ShortcutMap;
    104112
     113  typedef std::list< QtMenu<QMenu_tooltip>* > SubMenus_t;
     114  SubMenus_t submenus;
     115
    105116  virtual void addActionItem(const std::string &token, const std::string &description)
    106117  {
     
    123134    MenuInstance->addMenu(Menu);
    124135    QtMenu<QMenu_tooltip> *NewMenu = new QtMenu<QMenu_tooltip>(Menu, token);
     136    submenus.push_back(NewMenu);
    125137    NewMenu->init();
    126138  }
    127139
     140public:
     141  QtMenu<QMenu_tooltip>* findSubmenu(const std::string &token) {
     142    for (SubMenus_t::iterator iter = submenus.begin(); iter != submenus.end(); ++iter) {
     143      QtMenu<QMenu_tooltip>* submenu = *(iter);
     144      if (submenu->getName() == token)
     145        return submenu;
     146      else {
     147        QtMenu<QMenu_tooltip>* found_submenu = submenu->findSubmenu(token);
     148        if (found_submenu != NULL)
     149        return found_submenu;
     150      }
     151    }
     152    return NULL;
     153  }
     154
     155  void popup(const QPoint &pos) {
     156    MenuInstance->popup(pos);
     157  }
    128158};
    129159
Note: See TracChangeset for help on using the changeset viewer.