37 QDesignerTaskMenu(widget, parent),
39 m_containerWidget(widget),
40 m_core(formWindow()->core()),
41 m_pagePromotionTaskMenu(
new PromotionTaskMenu(
nullptr, PromotionTaskMenu::ModeSingleWidget,
this)),
42 m_pageMenuAction(
new QAction(
this)),
43 m_pageMenu(
new QMenu),
44 m_actionInsertPageAfter(
new QAction(
this)),
45 m_actionInsertPage(
nullptr),
46 m_actionDeletePage(
new QAction(tr(
"Delete"),
this))
49 m_taskActions.append(createSeparator());
51 connect(m_actionDeletePage, &QAction::triggered,
this, &ContainerWidgetTaskMenu::removeCurrentPage);
58 m_taskActions.append(createSeparator());
64 m_pageMenuAction->setMenu(m_pageMenu);
65 m_taskActions.append(m_pageMenuAction);
70 QAction *insertMenuAction =
new QAction(tr(
"Insert"),
this);
71 QMenu *insertMenu =
new QMenu;
73 m_actionInsertPage =
new QAction(tr(
"Insert Page Before Current Page"),
this);
75 insertMenu->addAction(m_actionInsertPage);
77 m_actionInsertPageAfter->setText(tr(
"Insert Page After Current Page"));
78 insertMenu->addAction(m_actionInsertPageAfter);
80 insertMenuAction->setMenu(insertMenu);
81 m_taskActions.append(insertMenuAction);
85 m_actionInsertPageAfter->setText(tr(
"Add Subwindow"));
86 m_taskActions.append(m_actionInsertPageAfter);
130 const int index = ce->currentIndex();
132 auto actions = QDesignerTaskMenu::taskActions();
133 actions += m_taskActions;
136 const bool canAddWidget = ce->canAddWidget();
137 if (m_actionInsertPage)
138 m_actionInsertPage->setEnabled(canAddWidget);
139 m_actionInsertPageAfter->setEnabled(canAddWidget);
140 m_pageMenu->addAction(m_actionDeletePage);
141 m_actionDeletePage->setEnabled(index >= 0 && ce->canRemove(index) && canDeletePage());
142 m_pageMenuAction->setText(pageMenuText(m_type, index, ce->count()));
144 m_pageMenuAction->setEnabled(
true);
145 m_pagePromotionTaskMenu->setWidget(ce->widget(index));
146 m_pagePromotionTaskMenu->addActions(PromotionTaskMenu::LeadingSeparator|PromotionTaskMenu::SuppressGlobalEdit, m_pageMenu);
148 m_pageMenuAction->setEnabled(
false);
201 m_nextAction(
new QAction(tr(
"Next"),
this)),
202 m_previousAction(
new QAction(tr(
"Back"),
this))
204 connect(m_nextAction, &QAction::triggered, w, &QWizard::next);
205 connect(m_previousAction, &QAction::triggered, w, &QWizard::back);
206 auto &l = containerActions();
207 l.push_front(createSeparator());
208 l.push_front(m_nextAction);
209 l.push_front(m_previousAction);
210 l.push_front(createSeparator());
229 connect(m_nextAction, &QAction::triggered, m, &QMdiArea::activateNextSubWindow);
230 connect(m_previousAction, &QAction::triggered, m , &QMdiArea::activatePreviousSubWindow);
231 connect(m_tileAction, &QAction::triggered, m, &QMdiArea::tileSubWindows);
232 connect(m_cascadeAction, &QAction::triggered, m, &QMdiArea::cascadeSubWindows);
273 if (iid !=
"QDesignerInternalTaskMenuExtension"_L1 || !object->isWidgetType())
278 if (qobject_cast<QStackedWidget*>(widget)
279 || qobject_cast<QToolBox*>(widget)
280 || qobject_cast<QTabWidget*>(widget)
281 || qobject_cast<QMainWindow*>(widget)) {
284 if (
const WidgetDataBase *wb = qobject_cast<
const WidgetDataBase *>(m_core->widgetDataBase())) {
285 const int idx = wb->indexOfObject(widget);
286 const WidgetDataBaseItem *item =
static_cast<
const WidgetDataBaseItem *>(wb->item(idx));
287 if (item->addPageMethod().isEmpty())
295 if (QMdiArea* ma = qobject_cast<QMdiArea*>(widget))
296 return new MdiContainerWidgetTaskMenu(ma, parent);
297 if (QWizard *wz = qobject_cast<QWizard *>(widget))
298 return new WizardContainerWidgetTaskMenu(wz, parent);
299 return new ContainerWidgetTaskMenu(widget, PageContainer, parent);