void ToolBarManager::configureToolBars() { QtToolBarDialog dlg(m_parent); dlg.setWindowFlags(dlg.windowFlags() & ~Qt::WindowContextHelpButtonHint); dlg.setToolBarManager(m_manager); dlg.exec(); updateToolBarMenu(); }
ToolBarManager::ToolBarManager(QMainWindow *configureableMainWindow, QWidget *parent, QMenu *toolBarMenu, const QDesignerActions *actions, const QList<QToolBar *> &toolbars, const QList<QDesignerToolWindow*> &toolWindows) : QObject(parent), m_configureableMainWindow(configureableMainWindow), m_parent(parent), m_toolBarMenu(toolBarMenu), m_manager(new QtToolBarManager(this)), m_configureAction(new QAction(tr("Configure Toolbars..."), this)), m_toolbars(toolbars) { m_configureAction->setMenuRole(QAction::NoRole); m_configureAction->setObjectName(QLatin1String("__qt_configure_tool_bars_action")); connect(m_configureAction, SIGNAL(triggered()), this, SLOT(configureToolBars())); m_manager->setMainWindow(configureableMainWindow); foreach(QToolBar *tb, m_toolbars) { const QString title = tb->windowTitle(); m_manager->addToolBar(tb, title); addActionsToToolBarManager(tb->actions(), title, m_manager); } addActionsToToolBarManager(actions->windowActions()->actions(), tr("Window"), m_manager); addActionsToToolBarManager(actions->helpActions()->actions(), tr("Help"), m_manager); // Filter out the device profile preview actions which have int data(). ActionList previewActions = actions->styleActions()->actions(); ActionList::iterator it = previewActions.begin(); for ( ; (*it)->isSeparator() || (*it)->data().type() == QVariant::Int; ++it) ; previewActions.erase(previewActions.begin(), it); addActionsToToolBarManager(previewActions, tr("Style"), m_manager); const QString dockTitle = tr("Dock views"); foreach (QDesignerToolWindow *tw, toolWindows) { if (QAction *action = tw->action()) m_manager->addAction(action, dockTitle); } m_manager->addAction(m_configureAction, tr("Toolbars")); updateToolBarMenu(); }