aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/advanceddockingsystem/dockoverlay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/advanceddockingsystem/dockoverlay.cpp')
-rw-r--r--src/libs/advanceddockingsystem/dockoverlay.cpp67
1 files changed, 32 insertions, 35 deletions
diff --git a/src/libs/advanceddockingsystem/dockoverlay.cpp b/src/libs/advanceddockingsystem/dockoverlay.cpp
index 64558e0d48..8eb85095c8 100644
--- a/src/libs/advanceddockingsystem/dockoverlay.cpp
+++ b/src/libs/advanceddockingsystem/dockoverlay.cpp
@@ -36,8 +36,10 @@
#include "dockoverlay.h"
#include "dockareawidget.h"
+#include "dockareatitlebar.h"
#include <utils/hostosinfo.h>
+#include <utils/porting.h>
#include <QCursor>
#include <QGridLayout>
@@ -151,12 +153,10 @@ namespace ADS {
*/
qreal dropIndicatiorWidth(QLabel *label) const
{
-#ifdef Q_OS_LINUX
- Q_UNUSED(label)
- return 40;
-#else
- return static_cast<qreal>(label->fontMetrics().height()) * 3.f;
-#endif
+ if (Utils::HostOsInfo::isLinuxHost())
+ return 40;
+ else
+ return static_cast<qreal>(label->fontMetrics().height()) * 3.f;
}
QWidget *createDropIndicatorWidget(DockWidgetArea dockWidgetArea, DockOverlay::eMode mode)
@@ -190,10 +190,10 @@ namespace ADS {
DockWidgetArea dockWidgetArea,
DockOverlay::eMode mode)
{
- QColor borderColor = iconColor(DockOverlayCross::FrameColor);
- QColor backgroundColor = iconColor(DockOverlayCross::WindowBackgroundColor);
- double devicePixelRatio = q->window()->devicePixelRatioF();
- QSizeF pixmapSize = size * devicePixelRatio;
+ const QColor borderColor = iconColor(DockOverlayCross::FrameColor);
+ const QColor backgroundColor = iconColor(DockOverlayCross::WindowBackgroundColor);
+ const double devicePixelRatio = q->window()->devicePixelRatioF();
+ const QSizeF pixmapSize = size * devicePixelRatio;
QPixmap pixmap(pixmapSize.toSize());
pixmap.fill(QColor(0, 0, 0, 0));
@@ -259,7 +259,7 @@ namespace ADS {
break;
}
- QSizeF baseSize = baseRect.size();
+ const QSizeF baseSize = baseRect.size();
if (DockOverlay::ModeContainerOverlay == mode && dockWidgetArea != CenterDockWidgetArea) {
baseRect = areaRect;
}
@@ -296,7 +296,7 @@ namespace ADS {
// draw window title bar
painter.setBrush(borderColor);
- QRectF frameRect(baseRect.topLeft(), QSizeF(baseRect.width(), baseSize.height() / 10));
+ const QRectF frameRect(baseRect.topLeft(), QSizeF(baseRect.width(), baseSize.height() / 10));
painter.drawRect(frameRect);
painter.restore();
@@ -370,6 +370,7 @@ namespace ADS {
{
if (areas == d->m_allowedAreas)
return;
+
d->m_allowedAreas = areas;
d->m_cross->reset();
}
@@ -382,19 +383,17 @@ namespace ADS {
DockWidgetArea DockOverlay::dropAreaUnderCursor() const
{
DockWidgetArea result = d->m_cross->cursorLocation();
- if (result != InvalidDockWidgetArea) {
+ if (result != InvalidDockWidgetArea)
return result;
- }
DockAreaWidget *dockArea = qobject_cast<DockAreaWidget *>(d->m_targetWidget.data());
- if (!dockArea) {
+ if (!dockArea)
return result;
- }
if (dockArea->allowedAreas().testFlag(CenterDockWidgetArea)
- && dockArea->titleBarGeometry().contains(dockArea->mapFromGlobal(QCursor::pos()))) {
+ && !dockArea->titleBar()->isHidden()
+ && dockArea->titleBarGeometry().contains(dockArea->mapFromGlobal(QCursor::pos())))
return CenterDockWidgetArea;
- }
return result;
}
@@ -518,9 +517,9 @@ namespace ADS {
bool DockOverlay::event(QEvent *event)
{
bool result = Super::event(event);
- if (event->type() == QEvent::Polish) {
+ if (event->type() == QEvent::Polish)
d->m_cross->setupOverlayCross(d->m_mode);
- }
+
return result;
}
@@ -622,13 +621,12 @@ namespace ADS {
void DockOverlayCross::updateOverlayIcons()
{
- if (windowHandle()->devicePixelRatio() == d->m_lastDevicePixelRatio) { // TODO
+ if (windowHandle()->devicePixelRatio() == d->m_lastDevicePixelRatio) // TODO
return;
- }
- for (auto Widget : d->m_dropIndicatorWidgets) {
- d->updateDropIndicatorIcon(Widget);
- }
+ for (auto widget : d->m_dropIndicatorWidgets)
+ d->updateDropIndicatorIcon(widget);
+
d->m_lastDevicePixelRatio = devicePixelRatioF();
}
@@ -661,7 +659,7 @@ namespace ADS {
for (constIt = areas.begin(); constIt != areas.end(); ++constIt) {
const DockWidgetArea area = constIt.key();
QWidget *widget = constIt.value();
- QPoint position = d->areaGridPosition(area);
+ const QPoint position = d->areaGridPosition(area);
d->m_gridLayout->addWidget(widget,
position.x(),
position.y(),
@@ -717,9 +715,9 @@ namespace ADS {
void DockOverlayCross::showEvent(QShowEvent *)
{
- if (d->m_updateRequired) {
+ if (d->m_updateRequired)
setupOverlayCross(d->m_mode);
- }
+
this->updatePosition();
}
@@ -744,12 +742,11 @@ namespace ADS {
// Update visibility of area widgets based on allowedAreas.
for (auto area : allAreas) {
- QPoint position = d->areaGridPosition(area);
+ const QPoint position = d->areaGridPosition(area);
QLayoutItem *item = d->m_gridLayout->itemAtPosition(position.x(), position.y());
QWidget *widget = nullptr;
- if (item && (widget = item->widget()) != nullptr) {
+ if (item && (widget = item->widget()) != nullptr)
widget->setVisible(allowedAreas.testFlag(area));
- }
}
}
@@ -762,13 +759,13 @@ namespace ADS {
{"Arrow", DockOverlayCross::ArrowColor},
{"Shadow", DockOverlayCross::ShadowColor}};
- auto colorList = colors.split(' ', QString::SkipEmptyParts);
+ auto colorList = colors.split(' ', Utils::SkipEmptyParts);
for (const auto &colorListEntry : colorList) {
- auto componentColor = colorListEntry.split('=', QString::SkipEmptyParts);
+ auto componentColor = colorListEntry.split('=', Utils::SkipEmptyParts);
int component = colorCompenentStringMap.value(componentColor[0], -1);
- if (component < 0) {
+ if (component < 0)
continue;
- }
+
d->m_iconColors[component] = QColor(componentColor[1]);
}