113 if (element.attribute(QStringLiteral(
"deleted")).toLower() == QLatin1String(
"true")) {
117 const QString tagName = element.tagName().toLower();
127 bar = mainWin->menuBar();
147 if (!
p && qobject_cast<QMainWindow *>(
d->
m_widget)) {
151 while (
p && !qobject_cast<QMainWindow *>(
p)) {
152 p =
p->parentWidget();
155 QString name = element.attribute(
d->
attrName);
157 QMenu *popup =
new QMenu(
p);
158 popup->setObjectName(name);
161 QDomElement textElem = element.namedItem(
d->
attrText1).toElement();
162 if (textElem.isNull()) {
163 textElem = element.namedItem(
d->
attrText2).toElement();
165 const QString text = textElem.text();
166 const QString context = textElem.attribute(
d->
attrContext);
171 if (text.isEmpty()) {
172 i18nText = i18n(
"No text");
174 QByteArray domain = textElem.attribute(
d->
attrDomain).toUtf8();
175 if (domain.isEmpty()) {
176 domain = element.ownerDocument().documentElement().attribute(
d->
attrDomain).toUtf8();
177 if (domain.isEmpty()) {
178 domain = KLocalizedString::applicationDomain();
181 if (context.isEmpty()) {
182 i18nText = i18nd(domain.constData(), text.toUtf8().constData());
184 i18nText = i18ndc(domain.constData(), context.toUtf8().constData(), text.toUtf8().constData());
190 const QString icon = element.attribute(
d->
attrIcon);
192 if (!icon.isEmpty()) {
197 QAction *act = popup->menuAction();
198 if (!icon.isEmpty()) {
201 act->setText(i18nText);
202 if (index == -1 || index >= parent->actions().count()) {
203 parent->addAction(act);
205 parent->insertAction(parent->actions().value(index), act);
207 containerAction = act;
208 containerAction->setObjectName(name);
215 QString name = element.attribute(
d->
attrName);
222 if (qobject_cast<KisKMainWindow *>(
d->
m_widget)) {
236 mainWin->statusBar()->show();
237 return mainWin->statusBar();
239 QStatusBar *bar =
new QStatusBar(
d->
m_widget);
250 if (qobject_cast<QMenu *>(container)) {
252 parent->removeAction(containerAction);
256 }
else if (qobject_cast<KisToolBar *>(container)) {
261 }
else if (qobject_cast<QMenuBar *>(container)) {
262 QMenuBar *mb =
static_cast<QMenuBar *
>(container);
268 }
else if (qobject_cast<QStatusBar *>(container)) {
269 if (qobject_cast<KisKMainWindow *>(
d->
m_widget)) {
272 delete static_cast<QStatusBar *
>(container);
275 qWarning() <<
"Unhandled container to remove : " << container->metaObject()->className();
288 QAction *before = 0L;
289 if (index > 0 && index < parent->actions().count()) {
290 before = parent->actions().at(index);
293 const QString tagName = element.tagName().toLower();
295 if (QMenu *menu = qobject_cast<QMenu *>(parent)) {
298 return menu->insertSeparator(before);
299 }
else if (QMenuBar *bar = qobject_cast<QMenuBar *>(parent)) {
300 QAction *separatorAction =
new QAction(bar);
301 separatorAction->setSeparator(
true);
302 bar->insertAction(before, separatorAction);
303 return separatorAction;
304 }
else if (
KisToolBar *bar = qobject_cast<KisToolBar *>(parent)) {
326 return bar->insertSeparator(before);
329 static_cast<QMenu *
>(parent)->setTearOffEnabled(
true);
331 if (QMenu *m = qobject_cast<QMenu *>(parent)) {
333 const QString text = element.text();
335 if (text.isEmpty()) {
336 i18nText = i18n(
"No text");
338 QByteArray domain = element.attribute(
d->
attrDomain).toUtf8();
339 if (domain.isEmpty()) {
340 domain = element.ownerDocument().documentElement().attribute(
d->
attrDomain).toUtf8();
341 if (domain.isEmpty()) {
342 domain = KLocalizedString::applicationDomain();
345 i18nText = i18nd(domain.constData(), qPrintable(text));
348 QString icon = element.attribute(
d->
attrIcon);
351 if (!icon.isEmpty()) {
355 if (!icon.isEmpty()) {
356 return m->insertSection(before, pix, i18nText);
358 return m->insertSection(before, i18nText);
363 QAction *blank =
new QAction(parent);
364 blank->setVisible(
false);
365 parent->insertAction(before, blank);
KDE top level main window