From 3aa5fc08e534faf627981e5547b90ccab9eadac4 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Fri, 17 Jul 2015 15:52:46 +0900 Subject: Added new functionality to Konqueror. Double clicking on an empty area in the listview or iconview widget will navigate to the parent folder. Signed-off-by: Michele Calgaro --- konqueror/iconview/konq_iconview.cc | 16 ++++++++++++++++ konqueror/iconview/konq_iconview.h | 1 + konqueror/listview/konq_listviewwidget.cc | 26 ++++++++++++++++++++++++++ konqueror/listview/konq_listviewwidget.h | 1 + 4 files changed, 44 insertions(+) (limited to 'konqueror') diff --git a/konqueror/iconview/konq_iconview.cc b/konqueror/iconview/konq_iconview.cc index d90fe5290..595c02948 100644 --- a/konqueror/iconview/konq_iconview.cc +++ b/konqueror/iconview/konq_iconview.cc @@ -348,6 +348,8 @@ KonqKfmIconView::KonqKfmIconView( TQWidget *parentWidget, TQObject *parent, cons this, TQT_SLOT( slotMouseButtonClicked(int, TQIconViewItem*, const TQPoint&)) ); connect( m_pIconView, TQT_SIGNAL( contextMenuRequested(TQIconViewItem*, const TQPoint&)), this, TQT_SLOT( slotContextMenuRequested(TQIconViewItem*, const TQPoint&)) ); + connect( m_pIconView, TQT_SIGNAL( mouseDoubleClicked(TQIconViewItem*)), + this, TQT_SLOT( slotDoubleClicked(TQIconViewItem*)) ); // Signals needed to implement the spring loading folders behavior connect( m_pIconView, TQT_SIGNAL( held( TQIconViewItem * ) ), @@ -861,6 +863,20 @@ void KonqKfmIconView::slotMouseButtonClicked(int _button, TQIconViewItem* _item, mmbClicked( _item ? static_cast(_item)->item() : 0L ); } +void KonqKfmIconView::slotDoubleClicked(TQIconViewItem *_item) +{ + if (!_item) + { + KParts::URLArgs args; + args.trustedSource = true; + KURL upURL = m_dirLister->url().upURL(); + if (!upURL.isEmpty()) + { + m_extension->openURLRequest(upURL, args); + } + } +} + void KonqKfmIconView::slotStarted() { // Only emit started if this comes after openURL, i.e. it's not for an update. diff --git a/konqueror/iconview/konq_iconview.h b/konqueror/iconview/konq_iconview.h index 5a5f0a1ac..5c1584efc 100644 --- a/konqueror/iconview/konq_iconview.h +++ b/konqueror/iconview/konq_iconview.h @@ -97,6 +97,7 @@ protected slots: void slotReturnPressed( TQIconViewItem *item ); void slotMouseButtonPressed(int, TQIconViewItem*, const TQPoint&); void slotMouseButtonClicked(int, TQIconViewItem*, const TQPoint&); + void slotDoubleClicked(TQIconViewItem*); void slotContextMenuRequested(TQIconViewItem*, const TQPoint&); void slotOnItem( TQIconViewItem *item ); void slotOnViewport(); diff --git a/konqueror/listview/konq_listviewwidget.cc b/konqueror/listview/konq_listviewwidget.cc index ad7ada2c4..b7dd24c4b 100644 --- a/konqueror/listview/konq_listviewwidget.cc +++ b/konqueror/listview/konq_listviewwidget.cc @@ -522,6 +522,32 @@ void KonqBaseListViewWidget::contentsWheelEvent( TQWheelEvent *e ) TDEListView::contentsWheelEvent( e ); } +void KonqBaseListViewWidget::contentsMouseDoubleClickEvent(TQMouseEvent *e) +{ + if (m_rubber) { + TQRect r(m_rubber->normalize()); + delete m_rubber; + m_rubber = NULL; + repaintContents(r, false); + } + + TQPoint vp = contentsToViewport(e->pos()); + KonqBaseListViewItem* item = isExecuteArea(vp) ? + static_cast(itemAt(vp)) : NULL; + + if (item) { + TDEListView::contentsMouseDoubleClickEvent(e); + } + else { + KParts::URLArgs args; + args.trustedSource = true; + KURL upURL = m_dirLister->url().upURL(); + if (!upURL.isEmpty()) { + m_pBrowserView->extension()->openURLRequest(upURL, args); + } + } +} + void KonqBaseListViewWidget::leaveEvent( TQEvent *e ) { if ( m_activeItem != 0 ) diff --git a/konqueror/listview/konq_listviewwidget.h b/konqueror/listview/konq_listviewwidget.h index ae79e5c03..613f012b3 100644 --- a/konqueror/listview/konq_listviewwidget.h +++ b/konqueror/listview/konq_listviewwidget.h @@ -214,6 +214,7 @@ protected: virtual void contentsMouseReleaseEvent( TQMouseEvent *e ); virtual void contentsMouseMoveEvent( TQMouseEvent *e ); virtual void contentsWheelEvent( TQWheelEvent * e ); + virtual void contentsMouseDoubleClickEvent( TQMouseEvent *e ); virtual void leaveEvent( TQEvent *e ); -- cgit v1.2.3