summaryrefslogtreecommitdiffstats
path: root/kate/app/katefilelist.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-05-15 00:05:08 -0500
committerSlávek Banko <slavek.banko@axis.cz>2012-08-26 16:41:34 +0200
commitb23ab6be04ec0677235ae56338f16693fc31205f (patch)
treea9b78cff98c7356e8b65160bbadfb9f8ccb49401 /kate/app/katefilelist.cpp
parentc0fad10e85213f6a3cf4c64d388da44fddb0326f (diff)
downloadtdebase-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.cpp70
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()