summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2013-11-09 01:32:09 +0100
committerSlávek Banko <[email protected]>2013-11-09 01:32:16 +0100
commitb42f6dbb134e3e1769b5483eaff511bb9103ad84 (patch)
tree1309c8c9f5e0c7a1f087913aab64dcae4e56376a
parent7d025dfef0cee534e3c973e01e98bae8fd73f41c (diff)
downloadtdebase-b42f6dbb134e3e1769b5483eaff511bb9103ad84.tar.gz
tdebase-b42f6dbb134e3e1769b5483eaff511bb9103ad84.zip
Enhance renaming in Konqueror listview
This resolves Bug 1677
-rw-r--r--konqueror/listview/konq_listview.cc26
-rw-r--r--konqueror/listview/konq_listview.h7
-rw-r--r--konqueror/listview/konq_listviewwidget.cc45
-rw-r--r--konqueror/listview/konq_listviewwidget.h2
4 files changed, 74 insertions, 6 deletions
diff --git a/konqueror/listview/konq_listview.cc b/konqueror/listview/konq_listview.cc
index 7d0a8d628..0e329f7e7 100644
--- a/konqueror/listview/konq_listview.cc
+++ b/konqueror/listview/konq_listview.cc
@@ -138,7 +138,7 @@ void ListViewBrowserExtension::updateActions()
emit enableAction( "del", canDel > 0 );
emit enableAction( "properties", lstItems.count() > 0 && KPropertiesDialog::canDisplay( lstItems ) );
emit enableAction( "editMimeType", ( lstItems.count() == 1 ) );
- emit enableAction( "rename", ( m_listView->listViewWidget()->currentItem() != 0 )&& !bInTrash );
+ emit enableAction( "rename", ( m_listView->listViewWidget()->currentItem() != 0 ) && !bInTrash );
}
void ListViewBrowserExtension::copySelection( bool move )
@@ -161,6 +161,14 @@ void ListViewBrowserExtension::rename()
{
TQListViewItem* item = m_listView->listViewWidget()->currentItem();
Q_ASSERT ( item );
+
+ // Update shurtcuts for the 'rename and move' actions. Must be done every time since the
+ // shortcuts may have been changed by the user in the meanwhile
+ const TDEShortcut moveNextSC=m_listView->m_paRenameMoveNext->shortcut();
+ const TDEShortcut movePrevSC=m_listView->m_paRenameMovePrev->shortcut();
+ m_listView->listViewWidget()->setRenameSettings(TDEListViewRenameSettings(
+ !(moveNextSC.isNull() && movePrevSC.isNull()), moveNextSC, movePrevSC));
+
m_listView->listViewWidget()->rename( item, 0 );
// Enhanced rename: Don't highlight the file extension.
@@ -671,6 +679,22 @@ void KonqListView::setupActions()
m_paUnselectAll = new TDEAction( i18n( "Unselect All" ), CTRL+Key_U, this, TQT_SLOT( slotUnselectAll() ), actionCollection(), "unselectall" );
m_paInvertSelection = new TDEAction( i18n( "&Invert Selection" ), CTRL+Key_Asterisk, this, TQT_SLOT( slotInvertSelection() ), actionCollection(), "invertselection" );
+ // These 2 actions are 'fake' actions. They are defined so that the keyboard shortcuts
+ // can be set from the 'Configure Shortcuts..." dialog.
+ // The real actions are performed in the TDEListViewLineEdit::keyPressEvent() in tdeui
+ m_paRenameMoveNext = new TDEAction(i18n( "&Rename and move to next item" ), Key_Tab,
+ NULL, NULL, actionCollection(), "renameMoveNext" );
+ m_paRenameMoveNext->setWhatsThis(i18n("Pressing this button completes the current rename operation,"
+ "moves to the next item and starts a new rename operation."));
+ m_paRenameMoveNext->setToolTip( i18n("Complete rename operation and move the next item"));
+ m_paRenameMoveNext->setEnabled(false);
+ m_paRenameMovePrev = new TDEAction( i18n( "&Rename and move to previous item" ), SHIFT+Key_BackTab,
+ NULL, NULL, actionCollection(), "renameMovePrev" );
+ m_paRenameMovePrev->setWhatsThis(i18n("Pressing this button completes the current rename operation,"
+ "moves to the previous item and starts a new rename operation."));
+ m_paRenameMovePrev->setToolTip( i18n("Complete rename operation and move the previous item"));
+ m_paRenameMovePrev->setEnabled(false);
+
m_paShowDot = new TDEToggleAction( i18n( "Show &Hidden Files" ), 0, this, TQT_SLOT( slotShowDot() ), actionCollection(), "show_dot" );
// m_paShowDot->setCheckedState(i18n("Hide &Hidden Files"));
m_paCaseInsensitive = new TDEToggleAction(i18n("Case Insensitive Sort"), 0, this, TQT_SLOT(slotCaseInsensitive()),actionCollection(), "sort_caseinsensitive" );
diff --git a/konqueror/listview/konq_listview.h b/konqueror/listview/konq_listview.h
index f7592d73f..4c3719bd0 100644
--- a/konqueror/listview/konq_listview.h
+++ b/konqueror/listview/konq_listview.h
@@ -62,6 +62,7 @@ private:
class KonqListView : public KonqDirPart
{
friend class KonqBaseListViewWidget;
+ friend class ListViewBrowserExtension;
Q_OBJECT
TQ_PROPERTY( bool supportsUndo READ supportsUndo )
public:
@@ -153,6 +154,12 @@ private:
TDEAction *m_paUnselectAll;
TDEAction *m_paInvertSelection;
+ // These 2 actions are 'fake' actions. They are defined so that the keyboard shortcuts
+ // can be set from the 'Configure Shortcuts..." dialog.
+ // The real actions are performed in the TDEListViewLineEdit::keyPressEvent() in tdeui
+ TDEAction *m_paRenameMoveNext;
+ TDEAction *m_paRenameMovePrev;
+
TDEToggleAction *m_paCaseInsensitive;
TDEToggleAction *m_paShowDot;
diff --git a/konqueror/listview/konq_listviewwidget.cc b/konqueror/listview/konq_listviewwidget.cc
index d07edcbd6..352552f2e 100644
--- a/konqueror/listview/konq_listviewwidget.cc
+++ b/konqueror/listview/konq_listviewwidget.cc
@@ -125,17 +125,20 @@ KonqBaseListViewWidget::KonqBaseListViewWidget( KonqListView *parent, TQWidget *
#endif
connect( this, TQT_SIGNAL(returnPressed( TQListViewItem * )),
this, TQT_SLOT(slotReturnPressed( TQListViewItem * )) );
- connect( this, TQT_SIGNAL( mouseButtonClicked( int, TQListViewItem *, const TQPoint&, int )),
- this, TQT_SLOT( slotMouseButtonClicked2( int, TQListViewItem *, const TQPoint&, int )) );
+ connect( this, TQT_SIGNAL(mouseButtonClicked( int, TQListViewItem *, const TQPoint&, int )),
+ this, TQT_SLOT(slotMouseButtonClicked2( int, TQListViewItem *, const TQPoint&, int )) );
connect( this, TQT_SIGNAL(executed( TQListViewItem * )),
this, TQT_SLOT(slotExecuted( TQListViewItem * )) );
-
connect( this, TQT_SIGNAL(currentChanged( TQListViewItem * )),
this, TQT_SLOT(slotCurrentChanged( TQListViewItem * )) );
connect( this, TQT_SIGNAL(itemRenamed( TQListViewItem *, const TQString &, int )),
this, TQT_SLOT(slotItemRenamed( TQListViewItem *, const TQString &, int )) );
connect( this, TQT_SIGNAL(contextMenuRequested( TQListViewItem *, const TQPoint&, int )),
this, TQT_SLOT(slotPopupMenu( TQListViewItem *, const TQPoint&, int )) );
+ connect( this, TQT_SIGNAL(renameNext( TQListViewItem *, int )),
+ this, TQT_SLOT(slotRenameNextItem( TQListViewItem*, int)) );
+ connect( this, TQT_SIGNAL(renamePrev( TQListViewItem *, int )),
+ this, TQT_SLOT(slotRenamePrevItem( TQListViewItem*, int)) );
connect( this, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()) );
connect( horizontalScrollBar(), TQT_SIGNAL(valueChanged( int )),
@@ -878,6 +881,38 @@ void KonqBaseListViewWidget::slotItemRenamed( TQListViewItem *item, const TQStri
setFocus();
}
+void KonqBaseListViewWidget::slotRenameNextItem(TQListViewItem *item, int)
+{
+ TQListViewItem *nextItem = item->itemBelow();
+ if (!nextItem)
+ {
+ nextItem=this->firstChild();
+ if (!nextItem)
+ return;
+ }
+
+ setCurrentItem(nextItem);
+ ListViewBrowserExtension *lvbe = dynamic_cast<ListViewBrowserExtension*>(m_pBrowserView->m_extension);
+ if (lvbe)
+ lvbe->rename();
+}
+
+void KonqBaseListViewWidget::slotRenamePrevItem(TQListViewItem *item, int)
+{
+ TQListViewItem *prevItem = item->itemAbove();
+ if (!prevItem)
+ {
+ prevItem=this->lastItem();
+ if (!prevItem)
+ return;
+ }
+
+ setCurrentItem(prevItem);
+ ListViewBrowserExtension *lvbe = dynamic_cast<ListViewBrowserExtension*>(m_pBrowserView->m_extension);
+ if (lvbe)
+ lvbe->rename();
+}
+
void KonqBaseListViewWidget::reportItemCounts()
{
KFileItemList lst = selectedFileItems();
@@ -1025,8 +1060,8 @@ void KonqBaseListViewWidget::slotReturnPressed( TQListViewItem *_item )
void KonqBaseListViewWidget::slotPopupMenu( TQListViewItem *i, const TQPoint &point, int c )
{
- kdDebug(1202) << "KonqBaseListViewWidget::slotPopupMenu" << endl;
- popupMenu( point, ( i != 0 && c == -1 ) ); // i != 0 && c == -1 when activated by keyboard
+ kdDebug(1202) << "KonqBaseListViewWidget::slotPopupMenu" << endl;
+ popupMenu( point, ( i != 0 && c == -1 ) ); // i != 0 && c == -1 when activated by keyboard
}
void KonqBaseListViewWidget::popupMenu( const TQPoint& _global, bool alwaysForSelectedFiles )
diff --git a/konqueror/listview/konq_listviewwidget.h b/konqueror/listview/konq_listviewwidget.h
index 2157b6643..ae79e5c03 100644
--- a/konqueror/listview/konq_listviewwidget.h
+++ b/konqueror/listview/konq_listviewwidget.h
@@ -158,6 +158,8 @@ public slots:
void slotMouseButtonClicked2( int _button, TQListViewItem *_item, const TQPoint& pos, int );
virtual void slotExecuted( TQListViewItem *_item );
void slotItemRenamed( TQListViewItem *, const TQString &, int );
+ void slotRenameNextItem(TQListViewItem *item, int col);
+ void slotRenamePrevItem(TQListViewItem *item, int col);
protected slots:
void slotAutoScroll();