]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
compile in debug mode (asserts enabled)
[dolphin.git] / src / dolphinviewcontainer.cpp
index 2fb7565f16dcada44d33e29f6399b299fc96e818..aa20409baef04b2f848964b0a77b282adc44768b 100644 (file)
@@ -102,6 +102,7 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) :
     m_searchBox->hide();
     connect(m_searchBox, SIGNAL(closeRequest()), this, SLOT(closeSearchBox()));
     connect(m_searchBox, SIGNAL(search(QString)), this, SLOT(startSearching(QString)));
+    connect(m_searchBox, SIGNAL(returnPressed(QString)), this, SLOT(requestFocus()));
 
     m_dirLister = new DolphinDirLister();
     m_dirLister->setAutoUpdate(true);
@@ -109,7 +110,7 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) :
     m_dirLister->setDelayedMimeTypes(true);
 
     m_dolphinModel = new DolphinModel(this);
-    m_dolphinModel->setDirLister(m_dirLister);
+    m_dolphinModel->setDirLister(m_dirLister);  // m_dolphinModel takes ownership of m_dirLister
     m_dolphinModel->setDropsAllowed(DolphinModel::DropOnDirectory);
 
     m_proxyModel = new DolphinSortFilterProxyModel(this);
@@ -191,13 +192,6 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) :
 
 DolphinViewContainer::~DolphinViewContainer()
 {
-    m_dirLister->disconnect();
-
-    delete m_proxyModel;
-    m_proxyModel = 0;
-    delete m_dolphinModel;
-    m_dolphinModel = 0;
-    m_dirLister = 0; // deleted by m_dolphinModel
 }
 
 KUrl DolphinViewContainer::url() const
@@ -245,10 +239,12 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
         // Restore the URL for the URL navigator. If Dolphin has been
         // started with a search-URL, the home URL is used as fallback.
         const KUrl url = m_searchBox->searchPath();
-        if (url.isValid() && !url.isEmpty() && !isSearchUrl(url)) {
-            m_urlNavigator->setLocationUrl(url);
-        } else {
-            m_urlNavigator->goHome();
+        if (url.isValid() && !url.isEmpty()) {
+            if (isSearchUrl(url)) {
+                m_urlNavigator->goHome();
+            } else {
+                m_urlNavigator->setLocationUrl(url);
+            }
         }
     }
 }
@@ -436,7 +432,7 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const KUrl& url)
         }
 
         m_view->setUrl(url);
-        if (isActive()) {
+        if (isActive() && !isSearchUrl(url)) {
             // When an URL has been entered, the view should get the focus.
             // The focus must be requested asynchronously, as changing the URL might create
             // a new view widget.