diff options
| author | Peter Penz <[email protected]> | 2008-04-23 20:57:58 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-04-23 20:57:58 +0000 |
| commit | 2a4f4c4b9ca1953f5859898b4e6bfc44cddd02be (patch) | |
| tree | cb5ab26a7cc9ca6261289fc5060f634c141d5fe4 /src/dolphinpart.cpp | |
| parent | a593ad0b990a639a158908a8be8a645e270f4429 (diff) | |
provide middle-mouse-button support for Konqueror (= create new window or tab)
CCMAIL: [email protected]
svn path=/trunk/KDE/kdebase/apps/; revision=800298
Diffstat (limited to 'src/dolphinpart.cpp')
| -rw-r--r-- | src/dolphinpart.cpp | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index deee4af94..41c6ff3a3 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -85,6 +85,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL this, SLOT(slotErrorMessage(QString))); connect(m_view, SIGNAL(itemTriggered(KFileItem)), this, SLOT(slotItemTriggered(KFileItem))); + connect(m_view, SIGNAL(tabRequested(KUrl)), + this, SLOT(createNewWindow(KUrl))); connect(m_view, SIGNAL(requestContextMenu(KFileItem,KUrl)), this, SLOT(slotOpenContextMenu(KFileItem,KUrl))); connect(m_view, SIGNAL(selectionChanged(KFileItemList)), @@ -263,24 +265,18 @@ void DolphinPart::slotItemTriggered(const KFileItem& item) // since the idea was not to need BrowserArguments for non-browser stuff... KParts::BrowserArguments browserArgs; browserArgs.trustedSource = true; + emit m_extension->openUrlRequest(item.targetUrl(), args, browserArgs); +} - // MMB click support. - // TODO: this doesn't work, mouseButtons() is always 0. - // Issue N176832 for the missing QAIV signal; task 177399 - kDebug() << QApplication::mouseButtons(); - if (QApplication::mouseButtons() & Qt::MidButton) { - kDebug() << "MMB!!" << item.mimetype(); - if (item.mimeTypePtr()->is("inode/directory")) { - emit m_extension->createNewWindow(item.url(), args); - } else { - kDebug() << "run()"; - item.run(); - } - } else { - // Left button. [Right button goes to slotOpenContextMenu before triggered can be emitted] - kDebug() << "LMB"; - emit m_extension->openUrlRequest(item.targetUrl(), args, browserArgs); - } +void DolphinPart::createNewWindow(const KUrl& url) +{ + // TODO: Check issue N176832 for the missing QAIV signal; task 177399 - maybe this code + // should be moved into DolphinPart::slotItemTriggered() + KFileItem item(S_IFDIR, (mode_t)-1, url); + Q_ASSERT(item.mimeTypePtr()->is("inode/directory")); // the signal 'tabRequested' is only emitted for dirs + KParts::OpenUrlArguments args; + args.setMimeType(item.mimetype()); + emit m_extension->createNewWindow(url, args); } void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) |
