diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-05-15 00:05:08 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2012-08-26 16:41:34 +0200 |
commit | b23ab6be04ec0677235ae56338f16693fc31205f (patch) | |
tree | a9b78cff98c7356e8b65160bbadfb9f8ccb49401 /kate/app/katefilelist.cpp | |
parent | c0fad10e85213f6a3cf4c64d388da44fddb0326f (diff) | |
download | tdebase-b23ab6be04ec0677235ae56338f16693fc31205f.tar.gz tdebase-b23ab6be04ec0677235ae56338f16693fc31205f.zip |
Add the ability to reorder documents in kate
(cherry picked from commit 46a657f7108284d4f02107d11fa407cbf95b86b9)
Diffstat (limited to 'kate/app/katefilelist.cpp')
-rw-r--r-- | kate/app/katefilelist.cpp | 70 |
1 files changed, 67 insertions, 3 deletions
diff --git a/kate/app/katefilelist.cpp b/kate/app/katefilelist.cpp index 8d34c3893..bc5b0a133 100644 --- a/kate/app/katefilelist.cpp +++ b/kate/app/katefilelist.cpp @@ -138,8 +138,14 @@ void KateFileList::setupActions () windowPrev = KStdAction::forward(TQT_TQOBJECT(this), TQT_SLOT(slotNextDocument()), m_main->actionCollection()); sortAction = new KSelectAction( i18n("Sort &By"), 0, m_main->actionCollection(), "filelist_sortby" ); + listMoveFileUp = new KAction( i18n("Move File Up"), 0, m_main->actionCollection(), "filelist_move_up" ); + listMoveFileUp->setShortcut(KShortcut(CTRL + SHIFT + Key_Comma)); + listMoveFileDown = new KAction( i18n("Move File Down"), 0, m_main->actionCollection(), "filelist_move_down" ); + listMoveFileDown->setShortcut(KShortcut(CTRL + SHIFT + Key_Period)); + connect( listMoveFileUp, TQT_SIGNAL(activated()), TQT_TQOBJECT(this), TQT_SLOT(moveFileUp()) ); + connect( listMoveFileDown, TQT_SIGNAL(activated()), TQT_TQOBJECT(this), TQT_SLOT(moveFileDown()) ); TQStringList l; - l << i18n("Opening Order") << i18n("Document Name") << i18n("URL"); + l << i18n("Opening Order") << i18n("Document Name") << i18n("URL") << i18n("Manual Placement"); sortAction->setItems( l ); connect( sortAction, TQT_SIGNAL(activated(int)), TQT_TQOBJECT(this), TQT_SLOT(setSortType(int)) ); } @@ -353,10 +359,25 @@ void KateFileList::slotMenu ( TQListViewItem *item, const TQPoint &p, int /*col* if (!item) return; + m_clickedMenuItem = item; + if (m_clickedMenuItem->itemAbove()) { + listMoveFileUp->setEnabled(true); + } + else { + listMoveFileUp->setEnabled(false); + } + if (m_clickedMenuItem->itemBelow()) { + listMoveFileDown->setEnabled(true); + } + else { + listMoveFileDown->setEnabled(false); + } + TQPopupMenu *menu = (TQPopupMenu*) ((viewManager->mainWindow())->factory()->container("filelist_popup", viewManager->mainWindow())); - if (menu) + if (menu) { menu->exec(p); + } } TQString KateFileList::tooltip( TQListViewItem *item, int ) @@ -385,7 +406,45 @@ TQString KateFileList::tooltip( TQListViewItem *item, int ) void KateFileList::setSortType (int s) { m_sort = s; - updateSort (); + if (m_sort == KateFileList::sortManual) { + setSorting( -1, true ); + } + else { + setSorting( 0, true ); + updateSort (); + } +} + +void KateFileList::moveFileUp() +{ + if (m_clickedMenuItem) { + sortAction->setCurrentItem(KateFileList::sortManual); + setSortType(KateFileList::sortManual); + TQListViewItem* nitemabove = m_clickedMenuItem->itemAbove(); + if (nitemabove) { + nitemabove = nitemabove->itemAbove(); + if (nitemabove) { + m_clickedMenuItem->moveItem(nitemabove); + } + else { + // Qt made this hard + nitemabove = m_clickedMenuItem->itemAbove(); + nitemabove->moveItem(m_clickedMenuItem); + } + } + } +} + +void KateFileList::moveFileDown() +{ + if (m_clickedMenuItem) { + sortAction->setCurrentItem(KateFileList::sortManual); + setSortType(KateFileList::sortManual); + TQListViewItem* nitemabove = m_clickedMenuItem->itemBelow(); + if (nitemabove) { + m_clickedMenuItem->moveItem(nitemabove); + } + } } void KateFileList::updateSort () @@ -441,6 +500,11 @@ KateFileListItem::KateFileListItem( TQListView* lv, m_edithistpos( 0 ), m_docNumber( _doc->documentNumber() ) { + // Move this document to the end of the list where it belongs + TQListViewItem* lastitem = lv->lastItem(); + if (lastitem) { + moveItem(lastitem); + } } KateFileListItem::~KateFileListItem() |