]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontroller.cpp
fix crash when pressing F2 on startup
[dolphin.git] / src / dolphincontroller.cpp
index ea9c25211bdbdee895dfb44b1b985f2643c22683..58f6f681f5122ea6633a659dea13987c9ae1ba6d 100644 (file)
 
 #include "dolphincontroller.h"
 
-DolphinController::DolphinController(QObject* parent) :
-    QObject(parent),
-    m_showPreview(false),
+#include <QPainter>
+
+DolphinController::DolphinController(DolphinView* dolphinView) :
+    QObject(dolphinView),
     m_zoomInPossible(false),
-    m_zoomOutPossible(false)
+    m_zoomOutPossible(false),
+    m_url(),
+    m_dolphinView(dolphinView)
 {
 }
 
@@ -31,21 +34,37 @@ 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 QPoint& pos)
+                                            const KUrl& destPath,
+                                            const KFileItem& destItem)
 {
-    emit urlsDropped(urls, pos);
+    emit urlsDropped(urls, destPath, destItem);
 }
 
 
@@ -59,12 +78,14 @@ void DolphinController::indicateSortOrderChange(Qt::SortOrder order)
     emit sortOrderChanged(order);
 }
 
-void DolphinController::setShowPreview(bool showPreview)
+void DolphinController::indicateAdditionalInfoChange(const KFileItemDelegate::InformationList& info)
 {
-    if (m_showPreview != showPreview) {
-        m_showPreview = showPreview;
-        emit showPreviewChanged(showPreview);
-    }
+    emit additionalInfoChanged(info);
+}
+
+void DolphinController::indicateActivationChange(bool active)
+{
+    emit activationChanged(active);
 }
 
 void DolphinController::triggerZoomIn()
@@ -77,14 +98,46 @@ 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(item);
+}
+
+void DolphinController::emitItemEntered(const KFileItem& item)
 {
-    emit itemTriggered(index);
+    emit itemEntered(item);
 }
 
-void DolphinController::indicateSelectionChange()
+void DolphinController::emitViewportEntered()
 {
-    emit selectionChanged();
+    emit viewportEntered();
 }
 
 #include "dolphincontroller.moc"