]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinurlnavigator.cpp
Adress most of the second round of Angelaccio's review comments
[dolphin.git] / src / dolphinurlnavigator.cpp
index 2b7f3d4eb4d55d90c23c33821ded1b1260f29199..f24cf2e067ab700f93fa597f4fa242663d29d5aa 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "dolphin_generalsettings.h"
 #include "dolphinplacesmodelsingleton.h"
+#include "dolphinurlnavigatorscontroller.h"
 #include "global.h"
 
 #include <KUrlComboBox>
 #include <QLineEdit>
 
 DolphinUrlNavigator::DolphinUrlNavigator(QWidget *parent) :
-    KUrlNavigator(DolphinPlacesModelSingleton::instance().placesModel(), QUrl(), parent)
-{
-    init();
-}
+    DolphinUrlNavigator(QUrl(), parent)
+{}
 
 DolphinUrlNavigator::DolphinUrlNavigator(const QUrl &url, QWidget *parent) :
     KUrlNavigator(DolphinPlacesModelSingleton::instance().placesModel(), url, parent)
-{
-    init();
-}
-
-void DolphinUrlNavigator::init()
 {
     const GeneralSettings* settings = GeneralSettings::self();
     setUrlEditable(settings->editableUrl());
     setShowFullPath(settings->showFullPath());
     setHomeUrl(Dolphin::homeUrl());
-    setPlacesSelectorVisible(s_placesSelectorVisible);
+    setPlacesSelectorVisible(DolphinUrlNavigatorsController::placesSelectorVisible());
     editor()->setCompletionMode(KCompletion::CompletionMode(settings->urlCompletionMode()));
     setWhatsThis(xi18nc("@info:whatsthis location bar",
         "<para>This describes the location of the files and folders "
@@ -51,22 +45,21 @@ void DolphinUrlNavigator::init()
         "<link url='help:/dolphin/location-bar.html'>click here</link>. "
         "This will open the dedicated page in the Handbook.</para>"));
 
-    s_instances.push_front(this);
+    DolphinUrlNavigatorsController::registerDolphinUrlNavigator(this);
 
     connect(this, &DolphinUrlNavigator::returnPressed,
             this, &DolphinUrlNavigator::slotReturnPressed);
     connect(editor(), &KUrlComboBox::completionModeChanged,
-            this, DolphinUrlNavigator::setCompletionMode);
+            DolphinUrlNavigatorsController::setCompletionMode);
 }
 
 DolphinUrlNavigator::~DolphinUrlNavigator()
 {
-    s_instances.remove(this);
+    DolphinUrlNavigatorsController::unregisterDolphinUrlNavigator(this);
 }
 
 QSize DolphinUrlNavigator::sizeHint() const
 {
-    // Change sizeHint() in KUrlNavigator instead.
     if (isUrlEditable()) {
         return editor()->lineEdit()->sizeHint();
     }
@@ -110,49 +103,9 @@ void DolphinUrlNavigator::setVisualState(const VisualState& visualState)
     }
 }
 
-void DolphinUrlNavigator::slotReadSettings()
-{
-    // The startup settings should (only) get applied if they have been
-    // modified by the user. Otherwise keep the (possibly) different current
-    // settings of the URL navigators and split view.
-    if (GeneralSettings::modifiedStartupSettings()) {
-        for (DolphinUrlNavigator *urlNavigator : s_instances) {
-            urlNavigator->setUrlEditable(GeneralSettings::editableUrl());
-            urlNavigator->setShowFullPath(GeneralSettings::showFullPath());
-            urlNavigator->setHomeUrl(Dolphin::homeUrl());
-        }
-    }
-}
-
 void DolphinUrlNavigator::slotReturnPressed()
 {
     if (!GeneralSettings::editableUrl()) {
         setUrlEditable(false);
     }
 }
-
-void DolphinUrlNavigator::slotPlacesPanelVisibilityChanged(bool visible)
-{
-    // The places-selector from the URL navigator should only be shown
-    // if the places dock is invisible
-    s_placesSelectorVisible = !visible;
-
-    for (DolphinUrlNavigator *urlNavigator : s_instances) {
-        urlNavigator->setPlacesSelectorVisible(s_placesSelectorVisible);
-    }
-}
-
-void DolphinUrlNavigator::setCompletionMode(const KCompletion::CompletionMode completionMode)
-{
-    if (completionMode != GeneralSettings::urlCompletionMode())
-    {
-        GeneralSettings::setUrlCompletionMode(completionMode);
-        for (const DolphinUrlNavigator *urlNavigator : s_instances)
-        {
-            urlNavigator->editor()->setCompletionMode(completionMode);
-        }
-    }
-}
-
-std::forward_list<DolphinUrlNavigator *> DolphinUrlNavigator::s_instances;
-bool DolphinUrlNavigator::s_placesSelectorVisible = true;