diff options
| -rw-r--r-- | src/dolphinnavigatorswidgetaction.cpp | 17 | ||||
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 3 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/dolphinnavigatorswidgetaction.cpp b/src/dolphinnavigatorswidgetaction.cpp index 984e1f35c..e0ae3132a 100644 --- a/src/dolphinnavigatorswidgetaction.cpp +++ b/src/dolphinnavigatorswidgetaction.cpp @@ -13,6 +13,7 @@ #include <KXMLGUIFactory> #include <KXmlGuiWindow> +#include <QApplication> #include <QDomDocument> #include <QHBoxLayout> #include <QPushButton> @@ -90,10 +91,20 @@ void DolphinNavigatorsWidgetAction::followViewContainersGeometry( int globalXOfPrimary, int widthOfPrimary, int globalXOfSecondary, int widthOfSecondary) { - m_globalXOfSplitter = m_splitter->mapToGlobal(QPoint(0,0)).x(); - m_globalXOfPrimary = globalXOfPrimary; + if (QApplication::layoutDirection() == Qt::LeftToRight) { + m_globalXOfSplitter = m_splitter->mapToGlobal(QPoint(0,0)).x(); + m_globalXOfPrimary = globalXOfPrimary; + m_globalXOfSecondary = globalXOfSecondary; + } else { + // When the direction is reversed, globalX does not change. + // For the adjustSpacing() code to work we need globalX to measure from right to left + // and to measure up to the rightmost point of a widget instead of the leftmost. + m_globalXOfSplitter = (-1) * (m_splitter->mapToGlobal(QPoint(0,0)).x() + m_splitter->width()); + m_globalXOfPrimary = (-1) * (globalXOfPrimary + widthOfPrimary); + m_globalXOfSecondary = (globalXOfSecondary == INT_MIN) ? INT_MIN : + (-1) * (globalXOfSecondary + widthOfSecondary); + } m_widthOfPrimary = widthOfPrimary; - m_globalXOfSecondary = globalXOfSecondary; m_widthOfSecondary = widthOfSecondary; adjustSpacing(); } diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 83dc0394d..73744b385 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -1488,7 +1488,8 @@ QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStrin if (icon.isNull()) { icon = QIcon(name); } - if (icon.isNull()) { + if (icon.isNull() + || icon.pixmap(size / qApp->devicePixelRatio(), size / qApp->devicePixelRatio(), mode).isNull()) { icon = fallbackIcon; } |
