X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/99419d3d74b1aa6667dfb5132d0122779ebdb5aa..13b2fc55704fbc734cd4f9cbae56cfc2ef3ec0ce:/src/treeviewsidebarpage.cpp diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index c4a793cbd..d5f5f4053 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -41,7 +42,7 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : SidebarPage(parent), m_setLeafVisible(false), - m_horizontalPos(0), + m_mouseButtons(Qt::NoButton), m_dirLister(0), m_dolphinModel(0), m_proxyModel(0), @@ -136,6 +137,8 @@ void TreeViewSidebarPage::showEvent(QShowEvent* event) this, SLOT(updateActiveView(const QModelIndex&))); connect(m_treeView, SIGNAL(urlsDropped(const KUrl::List&, const QModelIndex&)), this, SLOT(dropUrls(const KUrl::List&, const QModelIndex&))); + connect(m_treeView, SIGNAL(pressed(const QModelIndex&)), + this, SLOT(updateMouseButtons())); QVBoxLayout* layout = new QVBoxLayout(this); layout->setMargin(0); @@ -167,7 +170,7 @@ void TreeViewSidebarPage::updateActiveView(const QModelIndex& index) const QModelIndex dirIndex = m_proxyModel->mapToSource(index); const KFileItem item = m_dolphinModel->itemForIndex(dirIndex); if (!item.isNull()) { - emit changeUrl(item.url()); + emit changeUrl(item.url(), m_mouseButtons); } } @@ -239,13 +242,16 @@ void TreeViewSidebarPage::scrollToLeaf() } } +void TreeViewSidebarPage::updateMouseButtons() +{ + m_mouseButtons = QApplication::mouseButtons(); +} + void TreeViewSidebarPage::loadTree(const KUrl& url) { Q_ASSERT(m_dirLister != 0); m_leafDir = url; - m_horizontalPos = m_treeView->horizontalScrollBar()->value(); - KUrl baseUrl = url; if (url.isLocalFile()) { // use the root directory as base for local URLs @@ -283,8 +289,6 @@ void TreeViewSidebarPage::selectLeafDirectory() QItemSelectionModel* selModel = m_treeView->selectionModel(); selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); - - m_treeView->horizontalScrollBar()->setValue(m_horizontalPos); } #include "treeviewsidebarpage.moc"