┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-05-11 21:51:04 +0000
committerPeter Penz <[email protected]>2008-05-11 21:51:04 +0000
commit95ac842f2973b64380a93fbe5e46e94646bf5a38 (patch)
treefa0019d02e5212d05c903b03706e1ab6aa39fb47 /src
parent57e3503e2f7dc2528d7935226d1cd283d8278807 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp4
-rw-r--r--src/sidebarpage.h24
-rw-r--r--src/treeviewsidebarpage.cpp11
-rw-r--r--src/treeviewsidebarpage.h24
4 files changed, 36 insertions, 27 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 149f58b0f..51cb22e9d 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -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)),
diff --git a/src/sidebarpage.h b/src/sidebarpage.h
index 697e8de58..1c6b26be3 100644
--- a/src/sidebarpage.h
+++ b/src/sidebarpage.h
@@ -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;
diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp
index 84991bc43..d5f5f4053 100644
--- a/src/treeviewsidebarpage.cpp
+++ b/src/treeviewsidebarpage.cpp
@@ -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);
diff --git a/src/treeviewsidebarpage.h b/src/treeviewsidebarpage.h
index 336d2a6ca..ba820ff20 100644
--- a/src/treeviewsidebarpage.h
+++ b/src/treeviewsidebarpage.h
@@ -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;