#include <QScrollBar>
SidebarTreeView::SidebarTreeView(QWidget* parent) :
- QTreeView(parent),
- m_dragging(false)
+ KTreeView(parent)
{
setAcceptDrops(true);
setUniformRowHeights(true);
setFrameStyle(QFrame::NoFrame);
setDragDropMode(QAbstractItemView::DragDrop);
setDropIndicatorShown(false);
- setAutoExpandDelay(300);
-// TODO: Remove this check when 4.3.2 is released and KDE requires it... this
-// check avoids a division by zero happening on versions before 4.3.1.
-// Right now KDE in theory can be shipped with Qt 4.3.0 and above.
-// ereslibre
-#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY))
setVerticalScrollMode(QListView::ScrollPerPixel);
setHorizontalScrollMode(QListView::ScrollPerPixel);
-#endif
viewport()->setAttribute(Qt::WA_Hover);
- QPalette palette = viewport()->palette();
- palette.setColor(viewport()->backgroundRole(), Qt::transparent);
- viewport()->setPalette(palette);
+ // make the background transparent and apply the window-text color
+ // to the text color, so that enough contrast is given for all color
+ // schemes
+ QPalette p = palette();
+ p.setColor(QPalette::Active, QPalette::Text, p.color(QPalette::Active, QPalette::WindowText));
+ p.setColor(QPalette::Inactive, QPalette::Text, p.color(QPalette::Inactive, QPalette::WindowText));
+ p.setColor(QPalette::Disabled, QPalette::Text, p.color(QPalette::Disabled, QPalette::WindowText));
+ setPalette(p);
+ viewport()->setAutoFillBackground(false);
KFileItemDelegate* delegate = new KFileItemDelegate(this);
setItemDelegate(delegate);
hideColumn(DolphinModel::Tags);
header()->hide();
}
-// TODO: Remove this check when 4.3.2 is released and KDE requires it... this
-// check avoids a division by zero happening on versions before 4.3.1.
-// Right now KDE in theory can be shipped with Qt 4.3.0 and above.
-// ereslibre
-#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY))
else if (event->type() == QEvent::UpdateRequest) {
// a wheel movement will scroll 1 item
if (model()->rowCount() > 0) {
verticalScrollBar()->setSingleStep(sizeHintForRow(0) / 3);
}
}
-#endif
- return QTreeView::event(event);
+ return KTreeView::event(event);
}
void SidebarTreeView::startDrag(Qt::DropActions supportedActions)
void SidebarTreeView::dragEnterEvent(QDragEnterEvent* event)
{
+ KTreeView::dragEnterEvent(event);
if (event->mimeData()->hasUrls()) {
event->acceptProposedAction();
}
- QTreeView::dragEnterEvent(event);
- m_dragging = true;
}
void SidebarTreeView::dragLeaveEvent(QDragLeaveEvent* event)
{
- QTreeView::dragLeaveEvent(event);
-
- // TODO: remove this code when the issue #160611 is solved in Qt 4.4
- m_dragging = false;
+ KTreeView::dragLeaveEvent(event);
setDirtyRegion(m_dropRect);
}
void SidebarTreeView::dragMoveEvent(QDragMoveEvent* event)
{
- QTreeView::dragMoveEvent(event);
+ KTreeView::dragMoveEvent(event);
// TODO: remove this code when the issue #160611 is solved in Qt 4.4
const QModelIndex index = indexAt(event->pos());
setDirtyRegion(m_dropRect);
m_dropRect = visualRect(index);
setDirtyRegion(m_dropRect);
+
+ if (event->mimeData()->hasUrls()) {
+ // accept url drops, independently from the destination item
+ event->acceptProposedAction();
+ }
}
void SidebarTreeView::dropEvent(QDropEvent* event)
{
const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
if (urls.isEmpty()) {
- QTreeView::dropEvent(event);
+ KTreeView::dropEvent(event);
} else {
event->acceptProposedAction();
const QModelIndex index = indexAt(event->pos());
emit urlsDropped(urls, index);
}
}
- m_dragging = false;
-}
-
-void SidebarTreeView::paintEvent(QPaintEvent* event)
-{
- QTreeView::paintEvent(event);
-
- // TODO: remove this code when the issue #160611 is solved in Qt 4.4
- if (m_dragging) {
- const QBrush& brush = palette().brush(QPalette::Normal, QPalette::Highlight);
- DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush);
- }
}
#include "sidebartreeview.moc"