#include "dolphintabpage.h"
#include "dolphinviewcontainer.h"
-#include <QApplication>
-#include <QDropEvent>
#include <KConfigGroup>
+#include <KRun>
#include <KShell>
#include <kio/global.h>
-#include <KRun>
+
+#include <QApplication>
+#include <QDropEvent>
DolphinTabWidget::DolphinTabWidget(QWidget* parent) :
QTabWidget(parent),
m_placesSelectorVisible(true),
- m_previousTab(-1)
+ m_lastViewedTab(0)
{
connect(this, &DolphinTabWidget::tabCloseRequested,
this, static_cast<void (DolphinTabWidget::*)(int)>(&DolphinTabWidget::closeTab));
return tabPageAt(currentIndex());
}
+DolphinTabPage* DolphinTabWidget::nextTabPage() const
+{
+ const int index = currentIndex() + 1;
+ return tabPageAt(index < count() ? index : 0);
+}
+
+DolphinTabPage* DolphinTabWidget::prevTabPage() const
+{
+ const int index = currentIndex() - 1;
+ return tabPageAt(index >= 0 ? index : (count() - 1));
+}
+
DolphinTabPage* DolphinTabWidget::tabPageAt(const int index) const
{
return static_cast<DolphinTabPage*>(widget(index));
{
if (index >= 0) {
DolphinView* view = tabPageAt(index)->activeViewContainer()->view();
- view->dropUrls(view->url(), event);
+ view->dropUrls(view->url(), event, view);
}
}
void DolphinTabWidget::currentTabChanged(int index)
{
- DolphinViewContainer* viewContainer = tabPageAt(index)->activeViewContainer();
- viewContainer->setActive(true);
+ // last-viewed tab deactivation
+ if (DolphinTabPage* tabPage = tabPageAt(m_lastViewedTab)) {
+ tabPage->setActive(false);
+ }
+ DolphinTabPage* tabPage = tabPageAt(index);
+ DolphinViewContainer* viewContainer = tabPage->activeViewContainer();
emit activeViewChanged(viewContainer);
emit currentUrlChanged(viewContainer->url());
- viewContainer->view()->setFocus();
-
- if (tabPageAt(m_previousTab)) {
- tabPageAt(m_previousTab)->activeViewContainer()->setActive(false);
- }
- m_previousTab = index;
+ tabPage->setActive(true);
+ m_lastViewedTab = index;
}
void DolphinTabWidget::tabInserted(int index)