]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinview.cpp
create modal dialogs on stack as David suggested
[dolphin.git] / src / dolphinview.cpp
index 8920aad4e91194bea000770cd8d87632ca6823ad..9320cd4cfc1a8752048a19a9245c45a62c8acfad 100644 (file)
@@ -31,6 +31,7 @@
 #include <kdirmodel.h>
 #include <kfileitemdelegate.h>
 #include <kfileplacesmodel.h>
+#include <kglobalsettings.h>
 #include <klocale.h>
 #include <kiconeffect.h>
 #include <kio/netaccess.h>
@@ -99,8 +100,11 @@ DolphinView::DolphinView(DolphinMainWindow* mainWindow,
             this, SLOT(updateCutItems()));
 
     m_urlNavigator = new KUrlNavigator(DolphinSettings::instance().placesModel(), url, this);
-    m_urlNavigator->setUrlEditable(DolphinSettings::instance().generalSettings()->editableUrl());
-    m_urlNavigator->setHomeUrl(DolphinSettings::instance().generalSettings()->homeUrl());
+
+    const GeneralSettings* settings = DolphinSettings::instance().generalSettings();
+    m_urlNavigator->setUrlEditable(settings->editableUrl());
+    m_urlNavigator->setHomeUrl(settings->homeUrl());
+
     connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)),
             this, SLOT(changeDirectory(const KUrl&)));
     connect(m_urlNavigator, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&)),
@@ -167,7 +171,7 @@ DolphinView::DolphinView(DolphinMainWindow* mainWindow,
     m_iconSize = K3Icon::SizeMedium;
 
     m_filterBar = new FilterBar(this);
-    m_filterBar->hide();
+    m_filterBar->setVisible(settings->filterBar());
     connect(m_filterBar, SIGNAL(filterChanged(const QString&)),
             this, SLOT(changeNameFilter(const QString&)));
     connect(m_filterBar, SIGNAL(closeRequest()),
@@ -196,6 +200,11 @@ const KUrl& DolphinView::url() const
     return m_urlNavigator->url();
 }
 
+KUrl DolphinView::rootUrl() const
+{
+    return isColumnViewActive() ? m_dirLister->url() : url();
+}
+
 bool DolphinView::isActive() const
 {
     return m_mainWindow->activeView() == this;
@@ -400,11 +409,6 @@ int DolphinView::contentsY() const
     return itemView()->verticalScrollBar()->value();
 }
 
-void DolphinView::emitRequestItemInfo(const KUrl& url)
-{
-    emit requestItemInfo(url);
-}
-
 bool DolphinView::isFilterBarVisible() const
 {
     return m_filterBar->isVisible();
@@ -1159,10 +1163,23 @@ void DolphinView::emitContentsMoved()
 void DolphinView::updateActivationState()
 {
     m_urlNavigator->setActive(isActive());
+
+    QColor color = KGlobalSettings::baseColor();
     if (isActive()) {
         emit urlChanged(url());
         emit selectionChanged(selectedItems());
+    } else {
+        // darken the background if the view is inactive
+        // TODO: does not work for a black background
+        color = color.darker(105);
     }
+
+    QWidget* viewport = itemView()->viewport();
+    QPalette palette;
+    palette.setColor(viewport->backgroundRole(), color);
+    viewport->setPalette(palette);
+
+    update();
 }
 
 void DolphinView::updateCutItems()
@@ -1200,6 +1217,7 @@ void DolphinView::showHoverInformation(const QModelIndex& index)
 void DolphinView::clearHoverInformation()
 {
     m_statusBar->clear();
+    emit requestItemInfo(KUrl());
 }