Overlay fix for default windows style and other light theme's. (#12573)

* Removing white spaces

* Fixes made by Kadet

I am cleaning up my previous PR because of the white space removal.
I now make a single commit with the white space stuff and one with Kadet fixes.

Co-Authored-By: Kacper Donat <kacper@kadet.net>

* Delete CMakeSettings.json

screwed it up

* added stylesheet for example code.

* added example to cmakelist

* Mouse over fix

This fixes the mouse over issue!

Co-Authored-By: Bas Ruigrok <14298143+Rexbas@users.noreply.github.com>

* Added more overlay stylesheet for all options

* Removed reddudant code!

* Fixed the code

Works great!

Co-Authored-By: Bas Ruigrok <14298143+Rexbas@users.noreply.github.com>

---------

Co-authored-by: Kacper Donat <kacper@kadet.net>
Co-authored-by: Bas Ruigrok <14298143+Rexbas@users.noreply.github.com>
This commit is contained in:
MisterMaker
2024-04-29 18:24:33 +02:00
committed by GitHub
parent 90842c9df6
commit 2d49fcefe2
6 changed files with 880 additions and 21 deletions

View File

@@ -638,7 +638,7 @@ void OverlayTabWidget::onRepaint()
void OverlayTabWidget::scheduleRepaint()
{
if(!repainting
&& isVisible()
&& isVisible()
&& _graphicsEffect)
{
repaintTimer.start(100);
@@ -1004,7 +1004,7 @@ bool OverlayTabWidget::checkAutoHide() const
}
if(autoMode == AutoMode::EditShow) {
return !Application::Instance->editDocument()
return !Application::Instance->editDocument()
&& (!Control().taskPanel() || Control().taskPanel()->isEmpty(false));
}
@@ -1294,6 +1294,7 @@ void OverlayTabWidget::setOverlayMode(bool enable)
} else {
option = enable?OverlayOption::Enable:OverlayOption::Disable;
}
setProperty("transparent", option != OverlayOption::Disable);
proxyWidget->setStyleSheet(stylesheet);
this->setStyleSheet(stylesheet);
@@ -1424,17 +1425,17 @@ void OverlayTabWidget::setRect(QRect rect)
startHide();
else if (count() && OverlayParams::getDockOverlayHintTabBar()) {
switch(dockArea) {
case Qt::LeftDockWidgetArea:
case Qt::RightDockWidgetArea:
case Qt::LeftDockWidgetArea:
case Qt::RightDockWidgetArea:
if (dockArea == Qt::LeftDockWidgetArea)
rect.setWidth(tabBar()->width());
else
rect.setLeft(rect.left() + rect.width() - tabBar()->width());
rect.setHeight(std::max(rect.height(),
rect.setHeight(std::max(rect.height(),
tabBar()->y() + tabBar()->sizeHint().height() + 5));
break;
case Qt::BottomDockWidgetArea:
case Qt::TopDockWidgetArea:
case Qt::BottomDockWidgetArea:
case Qt::TopDockWidgetArea:
if (dockArea == Qt::TopDockWidgetArea)
rect.setHeight(tabBar()->height());
else
@@ -1631,7 +1632,7 @@ void OverlayTabWidget::setupLayout()
void OverlayTabWidget::setCurrent(QDockWidget *widget)
{
int index = dockWidgetIndex(widget);
if(index >= 0)
if(index >= 0)
setCurrentIndex(index);
}
@@ -1671,7 +1672,7 @@ void OverlayTabWidget::onCurrentChanged(int index)
auto sizes = splitter->sizes();
int i=0;
int size = splitter->orientation()==Qt::Vertical ?
int size = splitter->orientation()==Qt::Vertical ?
height()-tabBar()->height() : width()-tabBar()->width();
for(auto &s : sizes) {
if(i++ == index)
@@ -1725,21 +1726,21 @@ QLayoutItem *OverlayTabWidget::prepareTitleWidget(QWidget *widget, const QList<Q
QBoxLayout *layout = nullptr;
auto tabWidget = qobject_cast<OverlayTabWidget*>(widget->parentWidget());
if(!tabWidget) {
layout = new QBoxLayout(QBoxLayout::LeftToRight, widget);
layout = new QBoxLayout(QBoxLayout::LeftToRight, widget);
} else {
switch(tabWidget->getDockArea()) {
case Qt::LeftDockWidgetArea:
layout = new QBoxLayout(QBoxLayout::LeftToRight, widget);
layout = new QBoxLayout(QBoxLayout::LeftToRight, widget);
break;
case Qt::RightDockWidgetArea:
layout = new QBoxLayout(QBoxLayout::RightToLeft, widget);
layout = new QBoxLayout(QBoxLayout::RightToLeft, widget);
break;
case Qt::TopDockWidgetArea:
layout = new QBoxLayout(QBoxLayout::TopToBottom, widget);
layout = new QBoxLayout(QBoxLayout::TopToBottom, widget);
vertical = true;
break;
case Qt::BottomDockWidgetArea:
layout = new QBoxLayout(QBoxLayout::BottomToTop, widget);
layout = new QBoxLayout(QBoxLayout::BottomToTop, widget);
vertical = true;
break;
default:
@@ -1772,7 +1773,7 @@ QLayoutItem *OverlayTabWidget::prepareTitleWidget(QWidget *widget, const QList<Q
// -----------------------------------------------------------
OverlayTitleBar::OverlayTitleBar(QWidget * parent)
:QWidget(parent)
:QWidget(parent)
{
setFocusPolicy(Qt::ClickFocus);
setMouseTracking(true);
@@ -2137,7 +2138,7 @@ void OverlaySplitterHandle::leaveEvent(QEvent *ev)
}
QSize OverlaySplitterHandle::sizeHint() const
{
{
QSize size = QSplitterHandle::sizeHint();
int minSize = widgetMinSize(this,true);
if (this->orientation() == Qt::Vertical)
@@ -2245,7 +2246,7 @@ void OverlaySplitterHandle::paintEvent(QPaintEvent *e)
QSplitterHandle::paintEvent(e);
return;
}
QPainter painter(this);
painter.fillRect(this->rect(), painter.background());
@@ -2359,7 +2360,7 @@ void OverlaySplitterHandle::mousePressEvent(QMouseEvent *me)
void OverlaySplitterHandle::mouseReleaseEvent(QMouseEvent *me)
{
if (OverlayTabWidget::_Dragging != this || me->button() != Qt::LeftButton)
if (OverlayTabWidget::_Dragging != this || me->button() != Qt::LeftButton)
return;
if (dragging == 1) {
@@ -2503,7 +2504,7 @@ void OverlayGraphicsEffect::draw(QPainter* painter)
for(auto w=edit->parentWidget(); w; w=w->parentWidget()) {
if (w == widget) {
QRect r = edit->cursorRect();
QRect rect(edit->viewport()->mapTo(widget, r.topLeft()),
QRect rect(edit->viewport()->mapTo(widget, r.topLeft()),
edit->viewport()->mapTo(widget, r.bottomRight()));
// painter->fillRect(rect, edit->textColor());
// painter->fillRect(rect, edit->currentCharFormat().foreground());
@@ -2523,8 +2524,8 @@ QRectF OverlayGraphicsEffect::boundingRectFor(const QRectF& rect) const
{
if (!_enabled)
return rect;
return rect.united(rect.adjusted(-_blurRadius - _size.width() + _offset.x(),
-_blurRadius - _size.height()+ _offset.y(),
return rect.united(rect.adjusted(-_blurRadius - _size.width() + _offset.x(),
-_blurRadius - _size.height()+ _offset.y(),
_blurRadius + _size.width() + _offset.x(),
_blurRadius + _size.height() + _offset.y()));
}