]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontainer.cpp
Reverted resortAllItems() in favor of a group comparator for lessThan. Minor bug...
[dolphin.git] / src / kitemviews / kitemlistcontainer.cpp
index 1d62c9620400dd90f6ea7b8b6d589f765e719218..2f9f5d401b78de2df8b5472e9107c603672421dc 100644 (file)
@@ -138,6 +138,21 @@ void KItemListContainer::keyPressEvent(QKeyEvent *event)
     }
 }
 
+void KItemListContainer::contextMenuEvent(QContextMenuEvent *event)
+{
+    // Note copied from the keyPressEvent() method above because the same reasons probably also apply here.
+    // TODO: We should find a better way to handle the context menu events in the view.
+    // The reasons why we need this hack are:
+    // 1. Without reimplementing contextMenuEvent() here, the event would not reach the QGraphicsView.
+    // 2. By default, the KItemListView does not have the keyboard focus in the QGraphicsScene, so
+    //    simply sending the event to the QGraphicsView which is the KItemListContainer's viewport
+    //    does not work.
+    KItemListView *view = m_controller->view();
+    if (view) {
+        QApplication::sendEvent(view, event);
+    }
+}
+
 void KItemListContainer::showEvent(QShowEvent *event)
 {
     QAbstractScrollArea::showEvent(event);
@@ -175,6 +190,22 @@ void KItemListContainer::wheelEvent(QWheelEvent *event)
     smoothScroller->handleWheelEvent(event);
 }
 
+void KItemListContainer::focusInEvent(QFocusEvent *event)
+{
+    KItemListView *view = m_controller->view();
+    if (view) {
+        QApplication::sendEvent(view, event);
+    }
+}
+
+void KItemListContainer::focusOutEvent(QFocusEvent *event)
+{
+    KItemListView *view = m_controller->view();
+    if (view) {
+        QApplication::sendEvent(view, event);
+    }
+}
+
 void KItemListContainer::slotScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous)
 {
     Q_UNUSED(previous)
@@ -368,6 +399,11 @@ void KItemListContainer::updateSmoothScrollers(Qt::Orientation orientation)
         m_horizontalSmoothScroller->setPropertyName("scrollOffset");
         m_verticalSmoothScroller->setPropertyName("itemOffset");
     }
+
+    const bool isRightToLeft = m_controller->view()->layoutDirection() == Qt::RightToLeft;
+    QScrollBar *hScrollBar = horizontalScrollBar();
+    hScrollBar->setInvertedAppearance(isRightToLeft && orientation == Qt::Vertical);
+    hScrollBar->setInvertedControls(!isRightToLeft || orientation == Qt::Vertical);
 }
 
 void KItemListContainer::updateScrollOffsetScrollBarPolicy()
@@ -396,3 +432,4 @@ void KItemListContainer::updateScrollOffsetScrollBarPolicy()
 }
 
 #include "kitemlistcontainer.moc"
+#include "moc_kitemlistcontainer.cpp"