QList<QWidget*> VBoxSettingsToolBarSelector::rootPages() const { QList<QWidget*> list; foreach (SelectorItem *item, mItemList) { SelectorActionItem *ai = static_cast<SelectorActionItem*> (item); if (ai->parentId() == -1 && ai->page()) list << ai->page(); else if (ai->tabWidget()) list << ai->tabWidget(); }
void VBoxSettingsToolBarSelector::settingsGroupChanged (int aIndex) { SelectorActionItem *item = findActionItemByTabWidget (qobject_cast<QTabWidget*> (sender()), aIndex); if (item) { if (item->page() && !item->tabWidget()) emit categoryChanged (item->id()); else { SelectorActionItem *child = static_cast<SelectorActionItem*> ( findItemByPage (static_cast<UISettingsPage*> (item->tabWidget()->currentWidget()))); if (child) emit categoryChanged (child->id()); } } }
void VBoxSettingsToolBarSelector::setItemText (int aId, const QString &aText) { if (SelectorActionItem *item = findActionItem (aId)) { item->setText (aText); if (item->action()) item->action()->setText (aText); if (item->parentId() && item->page()) { SelectorActionItem *parent = findActionItem (item->parentId()); if (parent && parent->tabWidget()) parent->tabWidget()->setTabText ( parent->tabWidget()->indexOf (item->page()), aText); } } }
void VBoxSettingsToolBarSelector::selectById (int aId) { if (SelectorActionItem *item = findActionItem (aId)) { if (item->parentId() != -1) { SelectorActionItem *parent = findActionItem (item->parentId()); if (parent && parent->tabWidget()) { parent->action()->trigger(); parent->tabWidget()->setCurrentIndex ( parent->tabWidget()->indexOf (item->page())); } } else item->action()->trigger(); } }
QWidget *VBoxSettingsToolBarSelector::addItem (const QString &aBigIcon, const QString &aBigIconDisabled, const QString &aSmallIcon, const QString &aSmallIconDisabled, int aId, const QString &aLink, UISettingsPage* aPage /* = NULL */, int aParentId /* = -1 */) { QIcon icon (aBigIcon); if (!aBigIconDisabled.isEmpty()) icon.addFile (aBigIconDisabled, QSize(), QIcon::Disabled); QWidget *result = NULL; SelectorActionItem *item = new SelectorActionItem (icon, "", aId, aLink, aPage, aParentId, this); mItemList.append (item); if (aParentId == -1 && aPage != NULL) { mActionGroup->addAction (item->action()); mTbSelector->addAction (item->action()); aPage->setContentsMargins (0, 0, 0, 0); aPage->layout()->setContentsMargins(0, 0, 0, 0); result = aPage; } else if (aParentId == -1 && aPage == NULL) { mActionGroup->addAction (item->action()); mTbSelector->addAction (item->action()); QITabWidget *tabWidget= new QITabWidget(); tabWidget->setContentsMargins (0, 0, 0, 0); // connect (tabWidget, SIGNAL (currentChanged (int)), // this, SLOT (settingsGroupChanged (int))); item->setTabWidget (tabWidget); result = tabWidget; } else { SelectorActionItem *parent = findActionItem (aParentId); if (parent) { QTabWidget *tabWidget = parent->tabWidget(); aPage->setContentsMargins (9, 5, 9, 9); aPage->layout()->setContentsMargins(0, 0, 0, 0); QIcon icon1 (aSmallIcon); if (!aSmallIconDisabled.isEmpty()) icon1.addFile (aSmallIconDisabled, QSize(), QIcon::Disabled); if (tabWidget) tabWidget->addTab (aPage, icon1, ""); } } return result; }
void VBoxSettingsToolBarSelector::setVisibleById (int aId, bool aShow) { SelectorActionItem *item = findActionItem (aId); if (item) { item->action()->setVisible (aShow); if (item->parentId() > -1 && item->page()) { SelectorActionItem *parent = findActionItem (item->parentId()); if (parent && parent->tabWidget()) { if (aShow && parent->tabWidget()->indexOf (item->page()) == -1) parent->tabWidget()->addTab (item->page(), item->text()); else if (!aShow && parent->tabWidget()->indexOf (item->page()) > -1) parent->tabWidget()->removeTab ( parent->tabWidget()->indexOf (item->page())); } } } }
QWidget *VBoxSettingsToolBarSelector::addItem (const QString &strBigIcon, const QString & /* strMediumIcon */, const QString &strSmallIcon, int aId, const QString &aLink, UISettingsPage* aPage /* = NULL */, int aParentId /* = -1 */) { QIcon icon = UIIconPool::iconSet(strBigIcon); QWidget *result = NULL; SelectorActionItem *item = new SelectorActionItem (icon, "", aId, aLink, aPage, aParentId, this); mItemList.append (item); if (aParentId == -1 && aPage != NULL) { mActionGroup->addAction (item->action()); mTbSelector->addAction (item->action()); aPage->setContentsMargins (0, 0, 0, 0); aPage->layout()->setContentsMargins(0, 0, 0, 0); result = aPage; } else if (aParentId == -1 && aPage == NULL) { mActionGroup->addAction (item->action()); mTbSelector->addAction (item->action()); QITabWidget *tabWidget= new QITabWidget(); tabWidget->setIconSize(QSize(16, 16)); tabWidget->setContentsMargins (0, 0, 0, 0); // connect (tabWidget, SIGNAL (currentChanged (int)), // this, SLOT (settingsGroupChanged (int))); item->setTabWidget (tabWidget); result = tabWidget; } else { SelectorActionItem *parent = findActionItem (aParentId); if (parent) { QTabWidget *tabWidget = parent->tabWidget(); aPage->setContentsMargins (9, 5, 9, 9); aPage->layout()->setContentsMargins(0, 0, 0, 0); QIcon icon1 = UIIconPool::iconSet(strSmallIcon); if (tabWidget) tabWidget->addTab (aPage, icon1, ""); } } return result; }