diff options
Diffstat (limited to 'src/tabwidget.cpp')
-rw-r--r-- | src/tabwidget.cpp | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index e1c079f..d024b07 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -147,16 +147,35 @@ void TabWidget::setTitle( const TQString &title , TQWidget* sender) void TabWidget::contextMenu(int i, const TQPoint &p) { + currentItemId = i; currentItem = page(i); TDEPopupMenu popup; - int closeTab = popup.insertItem( SmallIcon("tab_remove"), i18n("Close Tab"), this, SLOT( slotCloseTab() ) ); - if(indexOf(currentItem) == 0) { // you can't detach or close articles tab.. - popup.setItemEnabled(closeTab, false); - } + int moveTabLeft = popup.insertItem( SmallIcon("back"), i18n("Move Tab &Left"), this, SLOT(slotMoveTabLeft()) ); + int moveTabRight = popup.insertItem( SmallIcon("forward"), i18n("Move Tab &Right"), this, SLOT(slotMoveTabRight()) ); + popup.insertSeparator(); + int closeTab = popup.insertItem( SmallIcon("tab_remove"), i18n("Close Tab"), this, SLOT(slotCloseTab()) ); + + if(currentItemId == 0) + popup.setItemEnabled(moveTabLeft, false); + + if(currentItemId == count() - 1) + popup.setItemEnabled(moveTabRight, false); + popup.exec(p); } + +void TabWidget::slotMoveTabLeft() { + if( currentItemId > 0 ) + moveTab(currentItemId, currentItemId-1); +} + +void TabWidget::slotMoveTabRight() { + if( currentItemId < count() - 1 ) + moveTab(currentItemId, currentItemId+1); +} + void TabWidget::slotCloseTab() { if(!currentItem) return; |