예제 #1
0
파일: WMenuItem.C 프로젝트: chr-thien/wt
void WMenuItem::setMenu(WMenu *menu)
{
  subMenu_ = menu;
  subMenu_->parentItem_ = this;

  Wt::WContainerWidget *sparent
    = dynamic_cast<Wt::WContainerWidget *>(subMenu_->parent());
  if (sparent)
    sparent->removeWidget(subMenu_);

  addWidget(subMenu_);
  if (subMenu_->isPopup() &&
      parentMenu() && parentMenu()->isPopup()) {
    subMenu_->webWidget()->setZIndex(std::max(parentMenu()->zIndex() + 100, subMenu_->zIndex()));
  }

  WPopupMenu *popup = dynamic_cast<WPopupMenu *>(subMenu_);
  if (popup) {
    popup->setJavaScriptMember("wtNoReparent", "true");
    setSelectable(false);
    popup->setButton(anchor());
    updateInternalPath();
    // WPopupMenus are hidden by default, 'show' this WPopupMenu
    // but not really, since the parent is still hidden. This fixes
    // an issue where child widgets would remain unexposed, even
    // though this submenu was open (e.g. in a submenu where items
    // are checkable)
    if (dynamic_cast<WPopupMenu*>(menu_))
      popup->show();
  }
}
예제 #2
0
QQuickMenuBase::~QQuickMenuBase()
{
    if (parentMenu())
        parentMenu()->removeItem(this);
    setParentMenu(0);
    if (m_platformItem) {
        delete m_platformItem;
        m_platformItem = 0;
    }
}
예제 #3
0
void QQuickMenuBase::syncWithPlatformMenu()
{
    QQuickMenu *menu = parentMenu();
    if (menu && menu->platformMenu() && platformItem()
        && menu->contains(this)) // If not, it'll be added later and then sync'ed
        menu->platformMenu()->syncMenuItem(platformItem());
}
예제 #4
0
void BookmarkMenu::refill()
{
    clear();
    fillBookmarks();

    if (parentMenu()->actions().count() > 0)
        parentMenu()->addSeparator();

    if (isRoot())
    {
        addAddBookmarksList();
        addEditBookmarks();
    }
    else
    {
        addOpenFolderInTabs();
        addAddBookmarksList();
    }
}
예제 #5
0
void KImportedBookmarkMenu::slotNSLoad()
{
    // qDebug()<<"**** slotNSLoad  ****"<<m_type<<"  "<<m_location;
    // only fill menu once
    parentMenu()->disconnect(SIGNAL(aboutToShow()));

    // not NSImporter, but kept old name for BC reasons
    KBookmarkMenuImporter importer(manager(), this);
    importer.openBookmarks(m_location, m_type);
}
예제 #6
0
void BookmarkMenu::refill()
{
    clear();
    
    if (isRoot())
    {
        addAddBookmark();
        addAddBookmarksList();
        
        if (parentMenu()->actions().count() > 0)
            parentMenu()->addSeparator();

        WebWindow *w = qobject_cast<WebWindow *>(parentMenu()->parent());
        QAction *a;
        // bk page
        a = w->actionByName(QL1S("open_bookmarks_page"));
        parentMenu()->addAction(a);
        a = w->actionByName(QL1S("show_bookmarks_toolbar"));
        parentMenu()->addAction(a);
        
        addEditBookmarks();
        
        if (parentMenu()->actions().count() > 0)
            parentMenu()->addSeparator();
    }

    fillBookmarks();
    
    if (!isRoot())
    {
        if (parentMenu()->actions().count() > 0)
            parentMenu()->addSeparator();

        addOpenFolderInTabs();
        addAddBookmarksList();
    }
}
예제 #7
0
void BookmarkMenu::addOpenFolderInTabs()
{
    KBookmarkGroup group = manager()->findByAddress(parentAddress()).toGroup();

    if (!group.first().isNull())
    {
        KBookmark bookmark = group.first();

        while (bookmark.isGroup() || bookmark.isSeparator())
        {
            bookmark = group.next(bookmark);
        }

        if (!bookmark.isNull())
        {
            parentMenu()->addAction(rApp->bookmarkManager()->owner()->createAction(group, BookmarkOwner::OPEN_FOLDER));
        }
    }
}