#include <QApplication>
#include <QPainter>
#include <QPoint>
+#include <QScrollBar>
DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controller) :
KCategorizedView(parent),
const KFileItem item = itemForIndex(index);
if (!item.isNull() && item.isDir()) {
m_dropRect = visualRect(index);
+ } else {
+ m_dropRect.setSize(QSize()); // set as invalid
}
}
+ if (event->mimeData()->hasUrls()) {
+ // accept url drops, independently from the destination item
+ event->acceptProposedAction();
+ }
+
setDirtyRegion(m_dropRect);
}
// TODO: remove this code when the issue #160611 is solved in Qt 4.4
if (m_dragging) {
const QBrush& brush = viewOptions().palette.brush(QPalette::Normal, QPalette::Highlight);
- DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush);
+ DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush);
}
}
}
}
+void DolphinIconsView::wheelEvent(QWheelEvent* event)
+{
+ KCategorizedView::wheelEvent(event);
+
+ // if the icons are aligned left to right, the vertical wheel event should
+ // be applied to the horizontal scrollbar
+ const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+ const bool scrollHorizontal = (event->orientation() == Qt::Vertical) &&
+ (settings->arrangement() == QListView::LeftToRight);
+ if (scrollHorizontal) {
+ QWheelEvent horizEvent(event->pos(),
+ event->delta(),
+ event->buttons(),
+ event->modifiers(),
+ Qt::Horizontal);
+ QApplication::sendEvent(horizontalScrollBar(), &horizEvent);
+ }
+}
+
void DolphinIconsView::triggerItem(const QModelIndex& index)
{
m_controller->triggerItem(itemForIndex(index));
void DolphinIconsView::slotAdditionalInfoChanged(const KFileItemDelegate::InformationList& info)
{
- const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
- if (!settings->showAdditionalInfo()) {
- return;
- }
-
const bool showPreview = m_controller->dolphinView()->showPreview();
updateGridSize(showPreview, info.count());
}
int DolphinIconsView::additionalInfoCount() const
{
const DolphinView* view = m_controller->dolphinView();
- const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
- return settings->showAdditionalInfo() ? view->additionalInfo().count() : 0;
+ return view->additionalInfo().count();
}
#include "dolphiniconsview.moc"