mirror of
https://invent.kde.org/system/dolphin
synced 2024-11-05 18:47:12 +00:00
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:
parent
57e3503e2f
commit
95ac842f29
4 changed files with 36 additions and 27 deletions
|
@ -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)),
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue