]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/urlnavigatorbutton.cpp
Cleanup of the URL navigator, so that the DolphinMainWindow and the DolphinView are...
[dolphin.git] / src / urlnavigatorbutton.cpp
index 44b7ae9669294e0328fa71f249d0262eca20076a..9616558a56564f25ef5d0f00b9496136bb8f8676 100644 (file)
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
  ***************************************************************************/
 
 #include "urlnavigatorbutton.h"
-#include <qcursor.h>
-#include <qfontmetrics.h>
-#include <qpainter.h>
-#include <qtimer.h>
-#include <qtooltip.h>
-//Added by qt3to4:
-#include <QDropEvent>
-#include <QDragLeaveEvent>
-#include <Q3PopupMenu>
-#include <QEvent>
-#include <QDragEnterEvent>
+
+#include <assert.h>
+
+#include "urlnavigator.h"
 
 #include <kglobalsettings.h>
 #include <kiconloader.h>
+#include <kio/job.h>
 #include <kio/jobclasses.h>
 #include <klocale.h>
 #include <kurl.h>
-#include <assert.h>
 
-#include "urlnavigator.h"
-#include "dolphinview.h"
-#include "dolphinmainwindow.h"
+#include <Q3PopupMenu>
+#include <QPainter>
+#include <QTimer>
 
 UrlNavigatorButton::UrlNavigatorButton(int index, UrlNavigator* parent) :
     UrlButton(parent),
     m_index(-1),
+    m_popupDelay(0),
     m_listJob(0)
 {
     setAcceptDrops(true);
@@ -117,10 +111,7 @@ void UrlNavigatorButton::paintEvent(QPaintEvent* event)
     }
 
     // dimm the colors if the parent view does not have the focus
-    const DolphinView* parentView = urlNavigator()->dolphinView();
-    const DolphinMainWindow* dolphin = parentView->mainWindow();
-
-    const bool isActive = (dolphin->activeView() == parentView);
+    const bool isActive = urlNavigator()->isActive();
     if (!isActive) {
         QColor dimmColor(palette().brush(QPalette::Background).color());
         foregroundColor = mixColors(foregroundColor, dimmColor);
@@ -209,28 +200,30 @@ void UrlNavigatorButton::dropEvent(QDropEvent* event)
         return;
     }
 
-    KUrl::List urls;
-    /* KDE4-TODO:
-    if (KUrlDrag::decode(event, urls) && !urls.isEmpty()) {
+    const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
+    if (!urls.isEmpty()) {
+        event->acceptProposedAction();
+
         setDisplayHintEnabled(DraggedHint, true);
 
         QString path(urlNavigator()->url().prettyUrl());
-        path = path.section('/', 0, m_index);
+        path = path.section('/', 0, m_index + 2);
 
-        Dolphin::mainWin().dropUrls(urls, KUrl(path));
+        urlNavigator()->dropUrls(urls, KUrl(path));
 
         setDisplayHintEnabled(DraggedHint, false);
         update();
-    }*/
+    }
 }
 
 void UrlNavigatorButton::dragEnterEvent(QDragEnterEvent* event)
 {
-    /* KDE4-TODO:
-    event->accept(KUrlDrag::canDecode(event));
+    if (event->mimeData()->hasUrls()) {
+        setDisplayHintEnabled(DraggedHint, true);
+        event->acceptProposedAction();
 
-    setDisplayHintEnabled(DraggedHint, true);*/
-    update();
+        update();
+    }
 }
 
 void UrlNavigatorButton::dragLeaveEvent(QDragLeaveEvent* event)
@@ -248,9 +241,7 @@ void UrlNavigatorButton::updateNavigatorUrl()
         return;
     }
 
-    UrlNavigator* navigator = urlNavigator();
-    assert(navigator != 0);
-    navigator->setUrl(navigator->url(m_index));
+    urlNavigator()->setUrl(urlNavigator()->url(m_index));
 }
 
 void UrlNavigatorButton::startPopupDelay()
@@ -297,7 +288,7 @@ void UrlNavigatorButton::entriesList(KIO::Job* job, const KIO::UDSEntryList& ent
     KIO::UDSEntryList::const_iterator itEnd = entries.constEnd();
     while (it != itEnd) {
         QString name;
-        bool isDir = false;
+        //bool isDir = false;
         KIO::UDSEntry entry = *it;
 
         /* KDE3 reference: