#include <QMimeData>
#include <QTimer>
-DolphinTabBar::DolphinTabBar(QWidget* parent) :
- QTabBar(parent),
- m_autoActivationIndex(-1),
- m_tabToBeClosedOnMiddleMouseButtonRelease(-1)
+DolphinTabBar::DolphinTabBar(QWidget *parent)
+ : QTabBar(parent)
+ , m_autoActivationIndex(-1)
+ , m_tabToBeClosedOnMiddleMouseButtonRelease(-1)
{
setAcceptDrops(true);
setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab);
m_autoActivationTimer = new QTimer(this);
m_autoActivationTimer->setSingleShot(true);
m_autoActivationTimer->setInterval(800);
- connect(m_autoActivationTimer, &QTimer::timeout,
- this, &DolphinTabBar::slotAutoActivationTimeout);
+ connect(m_autoActivationTimer, &QTimer::timeout, this, &DolphinTabBar::slotAutoActivationTimeout);
}
-void DolphinTabBar::dragEnterEvent(QDragEnterEvent* event)
+void DolphinTabBar::dragEnterEvent(QDragEnterEvent *event)
{
- const QMimeData* mimeData = event->mimeData();
- const int index = tabAt(event->pos());
+ const QMimeData *mimeData = event->mimeData();
+ const int index = tabAt(event->position().toPoint());
if (mimeData->hasUrls()) {
event->acceptProposedAction();
QTabBar::dragEnterEvent(event);
}
-void DolphinTabBar::dragLeaveEvent(QDragLeaveEvent* event)
+void DolphinTabBar::dragLeaveEvent(QDragLeaveEvent *event)
{
updateAutoActivationTimer(-1);
QTabBar::dragLeaveEvent(event);
}
-void DolphinTabBar::dragMoveEvent(QDragMoveEvent* event)
+void DolphinTabBar::dragMoveEvent(QDragMoveEvent *event)
{
- const QMimeData* mimeData = event->mimeData();
- const int index = tabAt(event->pos());
+ const QMimeData *mimeData = event->mimeData();
+ const int index = tabAt(event->position().toPoint());
if (mimeData->hasUrls()) {
updateAutoActivationTimer(index);
QTabBar::dragMoveEvent(event);
}
-void DolphinTabBar::dropEvent(QDropEvent* event)
+void DolphinTabBar::dropEvent(QDropEvent *event)
{
// Disable the auto activation timer
updateAutoActivationTimer(-1);
- const QMimeData* mimeData = event->mimeData();
- const int index = tabAt(event->pos());
+ const QMimeData *mimeData = event->mimeData();
+ const int index = tabAt(event->position().toPoint());
if (mimeData->hasUrls()) {
Q_EMIT tabDropEvent(index, event);
QTabBar::dropEvent(event);
}
-void DolphinTabBar::mousePressEvent(QMouseEvent* event)
+void DolphinTabBar::mousePressEvent(QMouseEvent *event)
{
const int index = tabAt(event->pos());
{
const int index = tabAt(event->pos());
- if (index >= 0 && index == m_tabToBeClosedOnMiddleMouseButtonRelease
- && event->button() == Qt::MiddleButton) {
+ if (index >= 0 && index == m_tabToBeClosedOnMiddleMouseButtonRelease && event->button() == Qt::MiddleButton) {
// Mouse middle click on a tab closes this tab.
Q_EMIT tabCloseRequested(index);
return;
QTabBar::mouseReleaseEvent(event);
}
-void DolphinTabBar::mouseDoubleClickEvent(QMouseEvent* event)
+void DolphinTabBar::mouseDoubleClickEvent(QMouseEvent *event)
{
const int index = tabAt(event->pos());
QTabBar::mouseDoubleClickEvent(event);
}
-void DolphinTabBar::contextMenuEvent(QContextMenuEvent* event)
+void DolphinTabBar::contextMenuEvent(QContextMenuEvent *event)
{
const int index = tabAt(event->pos());
// Tab context menu
QMenu menu(this);
- QAction* newTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-new")), i18nc("@action:inmenu", "New Tab"));
- QAction* detachTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-detach")), i18nc("@action:inmenu", "Detach Tab"));
- QAction* closeOtherTabsAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-close-other")), i18nc("@action:inmenu", "Close Other Tabs"));
- QAction* closeTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-close")), i18nc("@action:inmenu", "Close Tab"));
+ QAction *newTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-new")), i18nc("@action:inmenu", "New Tab"));
+ QAction *detachTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-detach")), i18nc("@action:inmenu", "Detach Tab"));
+ QAction *closeOtherTabsAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-close-other")), i18nc("@action:inmenu", "Close Other Tabs"));
+ QAction *closeTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("tab-close")), i18nc("@action:inmenu", "Close Tab"));
- QAction* selectedAction = menu.exec(event->globalPos());
+ QAction *selectedAction = menu.exec(event->globalPos());
if (selectedAction == newTabAction) {
Q_EMIT openNewActivatedTab(index);
} else if (selectedAction == detachTabAction) {