#include "dolphin_generalsettings.h"
#include "dolphinviewcontainer.h"
-#include "global.h"
-#include <QVariantAnimation>
-#include <QSplitter>
#include <QGridLayout>
-#include <QWidgetAction>
#include <QStyle>
+#include <QVariantAnimation>
DolphinTabPage::DolphinTabPage(const QUrl &primaryUrl, const QUrl &secondaryUrl, QWidget* parent) :
QWidget(parent),
layout->setSpacing(0);
layout->setContentsMargins(0, 0, 0, 0);
- m_splitter = new QSplitter(Qt::Horizontal, this);
+ m_splitter = new DolphinTabPageSplitter(Qt::Horizontal, this);
m_splitter->setChildrenCollapsible(false);
connect(m_splitter, &QSplitter::splitterMoved,
this, &DolphinTabPage::splitterMoved);
view->setDisabled(true);
startExpandViewAnimation(m_primaryViewContainer);
}
+
+ m_primaryViewContainer->slotSplitTabDisabled();
}
}
}
}
m_expandViewAnimation->start(QAbstractAnimation::DeleteWhenStopped);
}
+
+DolphinTabPageSplitterHandle::DolphinTabPageSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
+ : QSplitterHandle(orientation, parent)
+ , m_mouseReleaseWasReceived(false)
+{}
+
+bool DolphinTabPageSplitterHandle::event(QEvent *event)
+{
+ switch (event->type()) {
+ case QEvent::MouseButtonPress:
+ m_mouseReleaseWasReceived = false;
+ break;
+ case QEvent::MouseButtonRelease:
+ if (m_mouseReleaseWasReceived) {
+ resetSplitterSizes();
+ }
+ m_mouseReleaseWasReceived = !m_mouseReleaseWasReceived;
+ break;
+ case QEvent::MouseButtonDblClick:
+ m_mouseReleaseWasReceived = false;
+ resetSplitterSizes();
+ break;
+ default:
+ break;
+ }
+
+ return QSplitterHandle::event(event);
+}
+
+void DolphinTabPageSplitterHandle::resetSplitterSizes()
+{
+ QList<int> splitterSizes = splitter()->sizes();
+ std::fill(splitterSizes.begin(), splitterSizes.end(), 0);
+ splitter()->setSizes(splitterSizes);
+}
+
+DolphinTabPageSplitter::DolphinTabPageSplitter(Qt::Orientation orientation, QWidget *parent)
+ : QSplitter(orientation, parent)
+{}
+
+QSplitterHandle* DolphinTabPageSplitter::createHandle()
+{
+ return new DolphinTabPageSplitterHandle(orientation(), this);
+}