X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4f645f1b29f0f858b14eed5eca77bf941b52d150..d74853ef850fdabf2dfad8fcbe634af8185fce36:/src/dolphinnavigatorswidgetaction.cpp diff --git a/src/dolphinnavigatorswidgetaction.cpp b/src/dolphinnavigatorswidgetaction.cpp index e0ae3132a..cabeac4ed 100644 --- a/src/dolphinnavigatorswidgetaction.cpp +++ b/src/dolphinnavigatorswidgetaction.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include @@ -35,7 +36,6 @@ DolphinNavigatorsWidgetAction::DolphinNavigatorsWidgetAction(QWidget *parent) : setIcon(QIcon::fromTheme(QStringLiteral("dialog-scripts"))); m_splitter->setChildrenCollapsible(false); - setDefaultWidget(m_splitter.get()); m_splitter->addWidget(createNavigatorWidget(Primary)); @@ -45,34 +45,6 @@ DolphinNavigatorsWidgetAction::DolphinNavigatorsWidgetAction(QWidget *parent) : this, &DolphinNavigatorsWidgetAction::adjustSpacing); } -bool DolphinNavigatorsWidgetAction::addToToolbarAndSave(KXmlGuiWindow *mainWindow) -{ - const QString rawXml = KXMLGUIFactory::readConfigFile(mainWindow->xmlFile()); - QDomDocument domDocument; - if (rawXml.isEmpty() || !domDocument.setContent(rawXml) || domDocument.isNull()) { - return false; - } - QDomNode toolbar = domDocument.elementsByTagName(QStringLiteral("ToolBar")).at(0); - if (toolbar.isNull()) { - return false; - } - - QDomElement urlNavigatorElement = domDocument.createElement(QStringLiteral("Action")); - urlNavigatorElement.setAttribute(QStringLiteral("name"), QStringLiteral("url_navigators")); - - QDomNode position = toolbar.firstChildElement(QStringLiteral("Spacer")); - if (position.isNull()) { - toolbar.appendChild(urlNavigatorElement); - } else { - toolbar.replaceChild(urlNavigatorElement, position); - } - - KXMLGUIFactory::saveConfigFile(domDocument, mainWindow->xmlFile()); - mainWindow->reloadXML(); - mainWindow->createGUI(); - return true; -} - void DolphinNavigatorsWidgetAction::createSecondaryUrlNavigator() { Q_ASSERT(m_splitter->count() == 1); @@ -109,6 +81,11 @@ void DolphinNavigatorsWidgetAction::followViewContainersGeometry( adjustSpacing(); } +bool DolphinNavigatorsWidgetAction::isInToolbar() const +{ + return qobject_cast(m_splitter->parentWidget()); +} + DolphinUrlNavigator* DolphinNavigatorsWidgetAction::primaryUrlNavigator() const { Q_ASSERT(m_splitter); @@ -137,6 +114,29 @@ void DolphinNavigatorsWidgetAction::setSecondaryNavigatorVisible(bool visible) updateText(); } +QWidget *DolphinNavigatorsWidgetAction::createWidget(QWidget *parent) +{ + QWidget *oldParent = m_splitter->parentWidget(); + if (oldParent && oldParent->layout()) { + oldParent->layout()->removeWidget(m_splitter.get()); + QGridLayout *layout = qobject_cast(oldParent->layout()); + if (qobject_cast(parent) && layout) { + // in DolphinTabPage::insertNavigatorsWidget the minimumHeight of this row was + // set to fit the m_splitter. Since we are now removing it again, the + // minimumHeight can be reset to 0. + layout->setRowMinimumHeight(0, 0); + } + } + m_splitter->setParent(parent); + return m_splitter.get(); +} + +void DolphinNavigatorsWidgetAction::deleteWidget(QWidget *widget) +{ + Q_UNUSED(widget) + m_splitter->setParent(nullptr); +} + void DolphinNavigatorsWidgetAction::adjustSpacing() { Q_ASSERT(m_globalXOfSplitter != INT_MIN); @@ -266,5 +266,5 @@ void DolphinNavigatorsWidgetAction::updateText() { const int urlNavigatorsAmount = m_splitter->count() > 1 && m_splitter->widget(1)->isVisible() ? 2 : 1; - setText(i18ncp("@action:inmenu", "Url Navigator", "Url Navigators", urlNavigatorsAmount)); + setText(i18ncp("@action:inmenu", "Location Bar", "Location Bars", urlNavigatorsAmount)); }