X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6816615900b3175ceccaa1b85f318d4a8f5f1230..8cb8b519099e2d8bc86a574e014fc3cd780acfa8:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index fdb4880bb..d87571c7e 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -57,6 +57,7 @@ #include "dolphin_generalsettings.h" #include "iconmanager.h" #include "renamedialog.h" +#include "tooltipmanager.h" #include "viewproperties.h" DolphinView::DolphinView(QWidget* parent, @@ -69,6 +70,7 @@ DolphinView::DolphinView(QWidget* parent, m_showPreview(false), m_loadingDirectory(false), m_storedCategorizedSorting(false), + m_isContextMenuOpen(false), m_mode(DolphinView::IconsView), m_topLayout(0), m_controller(0), @@ -80,7 +82,8 @@ DolphinView::DolphinView(QWidget* parent, m_dolphinModel(dolphinModel), m_dirLister(dirLister), m_proxyModel(proxyModel), - m_iconManager(0) + m_iconManager(0), + m_toolTipManager(0) { setFocusPolicy(Qt::StrongFocus); m_topLayout = new QVBoxLayout(this); @@ -111,6 +114,8 @@ DolphinView::DolphinView(QWidget* parent, this, SLOT(updateAdditionalInfo(const KFileItemDelegate::InformationList&))); connect(m_controller, SIGNAL(itemTriggered(const KFileItem&)), this, SLOT(triggerItem(const KFileItem&))); + connect(m_controller, SIGNAL(tabRequested(const KUrl&)), + this, SIGNAL(tabRequested(const KUrl&))); connect(m_controller, SIGNAL(activated()), this, SLOT(activate())); connect(m_controller, SIGNAL(itemEntered(const KFileItem&)), @@ -607,17 +612,14 @@ void DolphinView::copySelectedItems() void DolphinView::paste() { - QClipboard* clipboard = QApplication::clipboard(); - const QMimeData* mimeData = clipboard->mimeData(); + pasteToUrl(url()); +} - const KUrl::List sourceUrls = KUrl::List::fromMimeData(mimeData); - if (KonqMimeData::decodeIsCutSelection(mimeData)) { - KonqOperations::copy(this, KonqOperations::MOVE, sourceUrls, url()); - emit doingOperation(KonqFileUndoManager::MOVE); - clipboard->clear(); - } else { - KonqOperations::copy(this, KonqOperations::COPY, sourceUrls, url()); - emit doingOperation(KonqFileUndoManager::COPY); +void DolphinView::pasteIntoFolder() +{ + const KFileItemList items = selectedItems(); + if ((items.count() == 1) && items.first().isDir()) { + pasteToUrl(items.first().url()); } } @@ -746,10 +748,14 @@ void DolphinView::triggerItem(const KFileItem& item) return; } - if (item.isNull()) { + // TODO: the m_isContextMenuOpen check is a workaround for Qt-issue xxxxxx + if (item.isNull() || m_isContextMenuOpen) { return; } + if (m_toolTipManager != 0) { + m_toolTipManager->hideTip(); + } emit itemTriggered(item); // caught by DolphinViewContainer or DolphinPart } @@ -767,7 +773,13 @@ void DolphinView::openContextMenu(const QPoint& pos) item = fileItem(index); } + if (m_toolTipManager != 0) { + m_toolTipManager->hideTip(); + } + + m_isContextMenuOpen = true; // TODO: workaround for Qt-issue xxxxxx emit requestContextMenu(item, url()); + m_isContextMenuOpen = false; } void DolphinView::dropUrls(const KUrl::List& urls, @@ -1083,6 +1095,10 @@ void DolphinView::createView() m_iconManager = new IconManager(view, m_proxyModel); m_iconManager->setShowPreview(m_showPreview); + if (DolphinSettings::instance().generalSettings()->showToolTips()) { + m_toolTipManager = new ToolTipManager(view, m_proxyModel); + } + m_topLayout->insertWidget(1, view); connect(view->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), @@ -1106,6 +1122,7 @@ void DolphinView::deleteView() m_columnView = 0; m_fileItemDelegate = 0; m_iconManager = 0; + m_toolTipManager = 0; } } @@ -1138,4 +1155,20 @@ bool DolphinView::isCutItem(const KFileItem& item) const return false; } +void DolphinView::pasteToUrl(const KUrl& url) +{ + QClipboard* clipboard = QApplication::clipboard(); + const QMimeData* mimeData = clipboard->mimeData(); + + const KUrl::List sourceUrls = KUrl::List::fromMimeData(mimeData); + if (KonqMimeData::decodeIsCutSelection(mimeData)) { + KonqOperations::copy(this, KonqOperations::MOVE, sourceUrls, url); + emit doingOperation(KonqFileUndoManager::MOVE); + clipboard->clear(); + } else { + KonqOperations::copy(this, KonqOperations::COPY, sourceUrls, url); + emit doingOperation(KonqFileUndoManager::COPY); + } +} + #include "dolphinview.moc"