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:
@@ -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()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user