X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9d596ce883f676052f73f713e8ae2cd8bd743447..f28ee3152a05f09abd117df19bb99d0966947e6b:/src/treeviewsidebarpage.cpp diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index 84991bc43..8258fbfc8 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -24,13 +24,17 @@ #include "dolphinview.h" #include "dolphinsettings.h" #include "dolphin_folderspanelsettings.h" +#include "dolphin_generalsettings.h" +#include "renamedialog.h" #include "sidebartreeview.h" #include "treeviewcontextmenu.h" #include #include #include +#include +#include #include #include #include @@ -41,6 +45,7 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : SidebarPage(parent), m_setLeafVisible(false), + m_mouseButtons(Qt::NoButton), m_dirLister(0), m_dolphinModel(0), m_proxyModel(0), @@ -79,6 +84,28 @@ bool TreeViewSidebarPage::showHiddenFiles() const return FoldersPanelSettings::showHiddenFiles(); } + +void TreeViewSidebarPage::rename(const KFileItem& item) +{ + if (DolphinSettings::instance().generalSettings()->renameInline()) { + const QModelIndex dirIndex = m_dolphinModel->indexForItem(item); + const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex); + m_treeView->edit(proxyIndex); + } else { + KFileItemList items; + items.append(item); + RenameDialog dialog(this, items); + if (dialog.exec() == QDialog::Accepted) { + const QString& newName = dialog.newName(); + if (!newName.isEmpty()) { + KUrl newUrl = item.url(); + newUrl.setFileName(newName); + KonqOperations::rename(this, item.url(), newUrl); + } + } + } +} + void TreeViewSidebarPage::setUrl(const KUrl& url) { if (!url.isValid() || (url == SidebarPage::url())) { @@ -135,6 +162,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 +195,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 +267,11 @@ void TreeViewSidebarPage::scrollToLeaf() } } +void TreeViewSidebarPage::updateMouseButtons() +{ + m_mouseButtons = QApplication::mouseButtons(); +} + void TreeViewSidebarPage::loadTree(const KUrl& url) { Q_ASSERT(m_dirLister != 0);