A middle click on an item of the tree view panel should open the URL inside a new tab.

TODO: cleanup some obsolete signals/structure inside SidebarPage and TreeviewSidebarPage.

svn path=/trunk/KDE/kdebase/apps/; revision=806635
This commit is contained in:
Peter Penz 2008-05-11 21:51:04 +00:00
parent 57e3503e2f
commit 95ac842f29
4 changed files with 36 additions and 27 deletions

View file

@ -1046,8 +1046,8 @@ void DolphinMainWindow::setupDockWidgets()
addDockWidget(Qt::LeftDockWidgetArea, treeViewDock);
connect(this, SIGNAL(urlChanged(KUrl)),
treeWidget, SLOT(setUrl(KUrl)));
connect(treeWidget, SIGNAL(changeUrl(KUrl)),
this, SLOT(changeUrl(KUrl)));
connect(treeWidget, SIGNAL(changeUrl(KUrl, Qt::MouseButtons)),
this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons)));
connect(treeWidget, SIGNAL(changeSelection(KFileItemList)),
this, SLOT(changeSelection(KFileItemList)));
connect(treeWidget, SIGNAL(urlsDropped(KUrl::List, KUrl)),

View file

@ -54,30 +54,6 @@ public slots:
*/
virtual void setSelection(const KFileItemList& selection);
signals:
/**
* This signal is emitted when the sidebar requests an URL-change in the
* currently active file-management view. The view is not requested to
* accept this change, if it is accepted the sidebar will be informed via
* the setUrl() slot.
*/
void changeUrl(const KUrl& url);
/**
* This signal is emitted when the sidebar requests a change in the
* current selection. The file-management view recieving this signal is
* not required to select all listed files, limiting the selection to
* e.g. the current folder. The new selection will be reported via the
* setSelection slot.
*/
void changeSelection(const KFileItemList& selection);
/**
* This signal is emitted whenever a drop action on this widget needs the
* MainWindow's attention.
*/
void urlsDropped(const KUrl::List& urls, const KUrl& destination);
private:
KUrl m_url;
KFileItemList m_currentSelection;

View file

@ -31,6 +31,7 @@
#include <kdirlister.h>
#include <kfileitem.h>
#include <QApplication>
#include <QItemSelection>
#include <QTreeView>
#include <QBoxLayout>
@ -41,6 +42,7 @@
TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) :
SidebarPage(parent),
m_setLeafVisible(false),
m_mouseButtons(Qt::NoButton),
m_dirLister(0),
m_dolphinModel(0),
m_proxyModel(0),
@ -135,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);
@ -166,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);
}
}
@ -238,6 +242,11 @@ void TreeViewSidebarPage::scrollToLeaf()
}
}
void TreeViewSidebarPage::updateMouseButtons()
{
m_mouseButtons = QApplication::mouseButtons();
}
void TreeViewSidebarPage::loadTree(const KUrl& url)
{
Q_ASSERT(m_dirLister != 0);

View file

@ -51,6 +51,27 @@ public:
void setShowHiddenFiles(bool show);
bool showHiddenFiles() const;
signals:
/**
* Is emitted if the an URL change is requested.
*/
void changeUrl(const KUrl& url, Qt::MouseButtons buttons);
/**
* This signal is emitted when the sidebar requests a change in the
* current selection. The file-management view recieving this signal is
* not required to select all listed files, limiting the selection to
* e.g. the current folder. The new selection will be reported via the
* setSelection slot.
*/
void changeSelection(const KFileItemList& selection);
/**
* This signal is emitted whenever a drop action on this widget needs the
* MainWindow's attention.
*/
void urlsDropped(const KUrl::List& urls, const KUrl& destination);
public slots:
/**
* Changes the current selection inside the tree to \a url.
@ -107,6 +128,8 @@ private slots:
*/
void scrollToLeaf();
void updateMouseButtons();
private:
/**
* Initializes the base URL of the tree and expands all
@ -124,6 +147,7 @@ private:
private:
bool m_setLeafVisible;
Qt::MouseButtons m_mouseButtons;
KDirLister* m_dirLister;
DolphinModel* m_dolphinModel;
DolphinSortFilterProxyModel* m_proxyModel;