TODO: cleanup some obsolete signals/structure inside SidebarPage and TreeviewSidebarPage.
svn path=/trunk/KDE/kdebase/apps/; revision=806635
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)),
*/
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;
#include <kdirlister.h>
#include <kfileitem.h>
+#include <QApplication>
#include <QItemSelection>
#include <QTreeView>
#include <QBoxLayout>
TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) :
SidebarPage(parent),
m_setLeafVisible(false),
+ m_mouseButtons(Qt::NoButton),
m_dirLister(0),
m_dolphinModel(0),
m_proxyModel(0),
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);
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);
}
}
}
}
+void TreeViewSidebarPage::updateMouseButtons()
+{
+ m_mouseButtons = QApplication::mouseButtons();
+}
+
void TreeViewSidebarPage::loadTree(const KUrl& url)
{
Q_ASSERT(m_dirLister != 0);
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.
*/
void scrollToLeaf();
+ void updateMouseButtons();
+
private:
/**
* Initializes the base URL of the tree and expands all
private:
bool m_setLeafVisible;
+ Qt::MouseButtons m_mouseButtons;
KDirLister* m_dirLister;
DolphinModel* m_dolphinModel;
DolphinSortFilterProxyModel* m_proxyModel;