]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontroller.cpp
Simplify DolphinController: don't remember the show-preview state in the controller...
[dolphin.git] / src / dolphincontroller.cpp
index 378c1b4ba86d443999d824ea36d84c70ea003bbe..897d4266bc8b2eca039b594c8818de735cba9f57 100644 (file)
 
 #include "dolphincontroller.h"
 
-DolphinController::DolphinController(QObject* parent) :
-    QObject(parent),
-    m_showPreview(false),
-    m_showAdditionalInfo(false),
+#include <QPainter>
+
+DolphinController::DolphinController(DolphinView* dolphinView) :
+    QObject(dolphinView),
     m_zoomInPossible(false),
-    m_zoomOutPossible(false)
+    m_zoomOutPossible(false),
+    m_url(),
+    m_dolphinView(dolphinView)
 {
 }
 
@@ -32,22 +34,38 @@ DolphinController::~DolphinController()
 {
 }
 
+void DolphinController::setUrl(const KUrl& url)
+{
+    if (m_url != url) {
+        m_url = url;
+        emit urlChanged(url);
+    }
+}
+
+void DolphinController::triggerUrlChangeRequest(const KUrl& url)
+{
+    if (m_url != url) {
+        emit requestUrlChange(url);
+    }
+}
+
 void DolphinController::triggerContextMenuRequest(const QPoint& pos)
 {
     emit activated();
     emit requestContextMenu(pos);
 }
 
-void DolphinController::triggerActivation()
+void DolphinController::requestActivation()
 {
     emit activated();
 }
 
 void DolphinController::indicateDroppedUrls(const KUrl::List& urls,
-        const QModelIndex& index,
-        QWidget* source)
+                                            const KUrl& destPath,
+                                            const KFileItem& destItem,
+                                            QWidget* source)
 {
-    emit urlsDropped(urls, index, source);
+    emit urlsDropped(urls, destPath, destItem, source);
 }
 
 
@@ -61,20 +79,14 @@ void DolphinController::indicateSortOrderChange(Qt::SortOrder order)
     emit sortOrderChanged(order);
 }
 
-void DolphinController::setShowPreview(bool show)
+void DolphinController::indicateAdditionalInfoChange(const KFileItemDelegate::InformationList& info)
 {
-    if (m_showPreview != show) {
-        m_showPreview = show;
-        emit showPreviewChanged(show);
-    }
+    emit additionalInfoChanged(info);
 }
 
-void DolphinController::setShowAdditionalInfo(bool show)
+void DolphinController::indicateActivationChange(bool active)
 {
-    if (m_showAdditionalInfo != show) {
-        m_showAdditionalInfo = show;
-        emit showAdditionalInfoChanged(show);
-    }
+    emit activationChanged(active);
 }
 
 void DolphinController::triggerZoomIn()
@@ -87,14 +99,41 @@ void DolphinController::triggerZoomOut()
     emit zoomOut();
 }
 
-void DolphinController::triggerItem(const QModelIndex& index)
+void DolphinController::drawHoverIndication(QWidget* widget,
+                                            const QRect& bounds,
+                                            const QBrush& brush)
+{
+    QPainter painter(widget);
+    painter.save();
+    QBrush blendedBrush(brush);
+    QColor color = blendedBrush.color();
+    color.setAlpha(64);
+    blendedBrush.setColor(color);
+
+    const int radius = 10;
+    QPainterPath path(QPointF(bounds.left(), bounds.top() + radius));
+    path.quadTo(bounds.left(), bounds.top(), bounds.left() + radius, bounds.top());
+    path.lineTo(bounds.right() - radius, bounds.top());
+    path.quadTo(bounds.right(), bounds.top(), bounds.right(), bounds.top() + radius);
+    path.lineTo(bounds.right(), bounds.bottom() - radius);
+    path.quadTo(bounds.right(), bounds.bottom(), bounds.right() - radius, bounds.bottom());
+    path.lineTo(bounds.left() + radius, bounds.bottom());
+    path.quadTo(bounds.left(), bounds.bottom(), bounds.left(), bounds.bottom() - radius);
+    path.closeSubpath();
+
+    painter.setRenderHint(QPainter::Antialiasing);
+    painter.fillPath(path, blendedBrush);
+    painter.restore();
+}
+
+void DolphinController::triggerItem(const KFileItem& item)
 {
-    emit itemTriggered(index);
+    emit itemTriggered(item);
 }
 
-void DolphinController::emitItemEntered(const QModelIndex& index)
+void DolphinController::emitItemEntered(const KFileItem& item)
 {
-    emit itemEntered(index);
+    emit itemEntered(item);
 }
 
 void DolphinController::emitViewportEntered()