From f733c87902927d967bd67397de843bac44d86c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Althaus?= Date: Thu, 30 May 2024 15:06:08 +0200 Subject: [PATCH 01/54] Account for margin in visibility icon click check --- src/Gui/Tree.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 1833a75523..3432e8ad63 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -1608,15 +1608,19 @@ void TreeWidget::mousePressEvent(QMouseEvent* event) // Rect occupied by the item relative to viewport auto iconRect = visualItemRect(objitem); + auto style = this->style(); + // If the checkboxes are visible, these are displayed before the icon // and we have to compensate for its width. if (isSelectionCheckBoxesEnabled()) { - auto style = this->style(); int checkboxWidth = style->pixelMetric(QStyle::PM_IndicatorWidth) + style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); iconRect.adjust(checkboxWidth, 0, 0, 0); } + int const margin = style->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; + iconRect.adjust(margin, 0, 0, 0); + // We are interested in the first icon (visibility icon) iconRect.setWidth(iconSize()); From 9c9f1b0a5db447ba09fda81af5f13f7a5b0fc838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Althaus?= Date: Sun, 2 Jun 2024 14:22:41 +0200 Subject: [PATCH 02/54] Increase space between visibility icon and normal icon Adds PM_LayoutHorizontalSpacing betweenthe visibility icon and the normal icon. --- src/Gui/Tree.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 3432e8ad63..03b088e422 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -5335,17 +5335,19 @@ void DocumentObjectItem::testStatus(bool resetStatus, QIcon& icon1, QIcon& icon2 // Prepend the visibility pixmap to the final icon pixmaps and use these as the icon. QIcon new_icon; + auto style = this->getTree()->style(); + int const spacing = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); for (auto state: {QIcon::On, QIcon::Off}) { QPixmap px_org = icon.pixmap(0xFFFF, 0xFFFF, QIcon::Normal, state); - QPixmap px(2*px_org.width(), px_org.height()); + QPixmap px(2*px_org.width() + spacing, px_org.height()); px.fill(Qt::transparent); QPainter pt; pt.begin(&px); pt.setPen(Qt::NoPen); pt.drawPixmap(0, 0, px_org.width(), px_org.height(), (currentStatus & Status::Visible) ? pxVisible : pxInvisible); - pt.drawPixmap(px_org.width(), 0, px_org.width(), px_org.height(), px_org); + pt.drawPixmap(px_org.width() + spacing, 0, px_org.width(), px_org.height(), px_org); pt.end(); new_icon.addPixmap(px, QIcon::Normal, state); From 198c29b816716258e7d5a46bc4c60e948f98ec74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Althaus?= Date: Thu, 30 May 2024 15:08:45 +0200 Subject: [PATCH 03/54] Gray out hidden items regardless of the visibility icon setting --- src/Gui/Tree.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 03b088e422..c05aed9ad8 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -5217,7 +5217,7 @@ void DocumentObjectItem::testStatus(bool resetStatus, QIcon& icon1, QIcon& icon2 previousStatus = currentStatus; QIcon::Mode mode = QIcon::Normal; - if (isVisibilityIconEnabled() || (currentStatus & Status::Visible)) { + if (currentStatus & Status::Visible) { // Note: By default the foreground, i.e. text color is invalid // to make use of the default color of the tree widget's palette. // If we temporarily set this color to dark and reset to an invalid From 5e21c4cd0c5db425f35c51a295169ef1fd5e2974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Althaus?= Date: Thu, 30 May 2024 15:29:06 +0200 Subject: [PATCH 04/54] Use a gray invisible icon for the tree --- src/Gui/Icons/TreeItemInvisible.svg | 46 +++++++++++++++++------------ 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/Gui/Icons/TreeItemInvisible.svg b/src/Gui/Icons/TreeItemInvisible.svg index 69b78db09a..fc8c703321 100644 --- a/src/Gui/Icons/TreeItemInvisible.svg +++ b/src/Gui/Icons/TreeItemInvisible.svg @@ -2,20 +2,20 @@ + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + sodipodi:docname="TreeItemInvisible.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-global="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + snapvisiblegridlinesonly="true" + originx="0" + originy="0" + spacingy="1" + spacingx="1" + units="px" /> @@ -587,7 +595,7 @@ style="opacity:0.8479996;fill:#ffffff;stroke:none;stroke-width:0.18025407;stroke-opacity:1" /> Date: Sun, 2 Jun 2024 14:24:20 +0200 Subject: [PATCH 05/54] Change visibility icon default to enabled --- src/Gui/TreeParams.cpp | 6 +++--- src/Gui/TreeParams.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Gui/TreeParams.cpp b/src/Gui/TreeParams.cpp index acbe950640..81421cea17 100644 --- a/src/Gui/TreeParams.cpp +++ b/src/Gui/TreeParams.cpp @@ -157,7 +157,7 @@ public: funcs["ColumnSize2"] = &TreeParamsP::updateColumnSize2; TreeToolTipIcon = handle->GetBool("TreeToolTipIcon", false); funcs["TreeToolTipIcon"] = &TreeParamsP::updateTreeToolTipIcon; - VisibilityIcon = handle->GetBool("VisibilityIcon", false); + VisibilityIcon = handle->GetBool("VisibilityIcon", true); funcs["VisibilityIcon"] = &TreeParamsP::updateVisibilityIcon; } @@ -395,7 +395,7 @@ public: } // Auto generated code (Tools/params_utils.py:296) static void updateVisibilityIcon(TreeParamsP *self) { - auto v = self->handle->GetBool("VisibilityIcon", false); + auto v = self->handle->GetBool("VisibilityIcon", true); if (self->VisibilityIcon != v) { self->VisibilityIcon = v; TreeParams::onVisibilityIconChanged(); @@ -1407,7 +1407,7 @@ const bool & TreeParams::getVisibilityIcon() { // Auto generated code (Tools/params_utils.py:366) const bool & TreeParams::defaultVisibilityIcon() { - const static bool def = false; + const static bool def = true; return def; } diff --git a/src/Gui/TreeParams.py b/src/Gui/TreeParams.py index a640753ca8..6db88a1e7a 100644 --- a/src/Gui/TreeParams.py +++ b/src/Gui/TreeParams.py @@ -80,7 +80,7 @@ Params = [ ParamInt('ColumnSize1', 0), ParamInt('ColumnSize2', 0), ParamBool('TreeToolTipIcon', False, title='Show icon in tool tip'), - ParamBool('VisibilityIcon', False, on_change=True, title='Show visibility icon', + ParamBool('VisibilityIcon', True, on_change=True, title='Show visibility icon', doc = "If enabled, show an eye icon before the tree view items, showing the items visibility status. When clicked the visibility is toggled"), ] From 8d4f095a02ee298e24fc3a81372a8ea3dd504db8 Mon Sep 17 00:00:00 2001 From: mosfet80 Date: Tue, 11 Jun 2024 19:31:10 +0200 Subject: [PATCH 06/54] [MOD] clean Finite.cpp (#14476) removed dead code --- src/Mod/CAM/libarea/kurve/Finite.cpp | 86 +--------------------------- 1 file changed, 1 insertion(+), 85 deletions(-) diff --git a/src/Mod/CAM/libarea/kurve/Finite.cpp b/src/Mod/CAM/libarea/kurve/Finite.cpp index bc37792f45..48549e59b0 100644 --- a/src/Mod/CAM/libarea/kurve/Finite.cpp +++ b/src/Mod/CAM/libarea/kurve/Finite.cpp @@ -132,27 +132,10 @@ namespace geoff_geometry { FAILURE(L"OnSpan - properties no set, incorrect calling code"); } #endif -#if 0 - if(NullSpan) { - *t = 0.0; - return (p == p0); - } - if(p == p0) { - *t = 0.0; - return true; - } - - if(p == p1) { - *t = 1.0; - return true; - } -#endif bool ret; -// if(p == this->p0 || p == this->p1) return true; if(dir == LINEAR) { -#if 1 #if _DEBUG // check p is on line CLine cl(*this); @@ -160,19 +143,15 @@ namespace geoff_geometry { if( d > geoff_geometry::TOLERANCE) { FAILURE(L"OnSpan - point not on linear span, incorrect calling code"); } -#endif #endif Vector2d v0(p0, p); *t = vs * v0; -// ret = (*t > - geoff_geometry::TOLERANCE && *t < length + geoff_geometry::TOLERANCE); - *t = *t / length; ret = (*t >= 0 && *t <= 1.0 ); } else { // true if p lies on arc span sp (p must be on circle of span) -#if 1 #if _DEBUG // check that p lies on the arc double d = p.Dist(pc); @@ -180,7 +159,6 @@ namespace geoff_geometry { FAILURE(L"OnSpan - point not on circular span, incorrect calling code"); } -#endif #endif #if 0 // alt method (faster, but doesn't provide t) Vector2d v0(p0, p); @@ -390,14 +368,6 @@ namespace geoff_geometry { Vector3d vcp = *vl ^ v; double d = vcp.magnitude(); // l * sina return d; -#if 0 - // slower method requires 2 sqrts - Vector3d v(*p, *pf); - double magv = v.normalise(); - Vector3d cp = *vl ^ v; - double d = magv * cp.magnitude(); - return d; // l * sina -#endif } double Dist(const Span& sp, const Point& p , Point& pnear ) { @@ -431,12 +401,7 @@ namespace geoff_geometry { // check if projected point is on the arc if(sp.OnSpan(pnear)) return fabs(radiusp - sp.radius); - // double h1 = pnear.x - sp.p0.x ; - // double v1 = pnear.y - sp.p0.y ; - // double h2 = sp.p1.x - pnear.x ; - // double v2 = sp.p1.y - pnear.y ; - // if ( sp.dir * ( h1 * v2 - h2 * v1 ) >= 0 )return fabs(radiusp - sp.radius); - + // point not on arc so calc nearest end-point double ndist = p.Dist(sp.p0); double dist = p.Dist(sp.p1); @@ -609,55 +574,6 @@ namespace geoff_geometry { return true; return false; } -#if 0 - Span3d IsPtsSpan3d(const double* a, int n, double tolerance, double* deviation) { - // returns a span3d if all points are within tolerance - int np = n / 3; // number of points - if(np < 2) // Invalid span3d - return Span3d(); - Point3d sp = Point3d(&a[0]); - Point3d ep = Point3d(&a[n-3]); - Line line = IsPtsLine(a, n, tolerance, deviation); - if(line.ok) // it's a line - return Span3d(sp, ep); - - *deviation = 0; // cumulative deviation - Point3d mp = Point3d(&a[np / 2 * 3]); // mid point - Plane plane(sp, mp, ep); - if(plane.ok) { - // plane of the arc is ok - // calculate centre point - Vector3d vs(mp, sp); - vs.normalise(); - Vector3d ve(mp, ep); - ve.normalise(); - Vector3d rs = vs ^ plane.normal; - Vector3d re = ve ^ plane.normal; - - Line rsl(sp.Mid(mp), rs, false); - Line rel(ep.Mid(mp), re, false); - - Point3d pc; - Intof(rsl, rel, pc); - double radius = pc.Dist(sp); - - // check other points on circle - for(int i = 2; i < np - 1; i++) { - Point3d p(&a[i*3]); - double dp = fabs(plane.Dist(p)); - double dr = fabs(p.Dist(pc) - radius); -double tolerance = 10.0 * 1.0e-6; - if(dp > tolerance || dr > tolerance) { - return Span3d(); - } - - } - return Span3d(CW, plane.normal, sp, ep, pc); - - } - return Span3d(); - } -#endif Line IsPtsLine(const double* a, int n, double tolerance, double* deviation) { // returns a Line if all points are within tolerance From 39aee7354920799b6946eb749a7f6daeb775390f Mon Sep 17 00:00:00 2001 From: mosfet80 Date: Wed, 12 Jun 2024 01:26:38 +0200 Subject: [PATCH 07/54] [Main] MainPy.cpp clean remove unused code --- src/Main/MainPy.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Main/MainPy.cpp b/src/Main/MainPy.cpp index 5463ee63b3..ca72d00ea4 100644 --- a/src/Main/MainPy.cpp +++ b/src/Main/MainPy.cpp @@ -155,8 +155,8 @@ PyMOD_INIT_FUNC(FreeCAD) path += upDir; break; } - } // end for (i = PyList_Size(pySysPath) - 1; i >= 0 ; --i) { - } // end if ( PyList_Check(pySysPath) ) { + } + } if (path.isEmpty()) { PyErr_SetString(PyExc_ImportError, "Cannot get path of the FreeCAD module!"); @@ -192,7 +192,6 @@ PyMOD_INIT_FUNC(FreeCAD) std::clog.rdbuf(&stdclog); std::cerr.rdbuf(&stdcerr); - // PyObject* module = _PyImport_FindBuiltin("FreeCAD"); PyObject* modules = PyImport_GetModuleDict(); PyObject* module = PyDict_GetItemString(modules, "FreeCAD"); if (!module) { From 238fd6a5fc3ec4088d1ed2192c86f7ec7239c8c3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 23:28:47 +0000 Subject: [PATCH 08/54] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/Main/MainPy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Main/MainPy.cpp b/src/Main/MainPy.cpp index ca72d00ea4..a09c20f303 100644 --- a/src/Main/MainPy.cpp +++ b/src/Main/MainPy.cpp @@ -155,7 +155,7 @@ PyMOD_INIT_FUNC(FreeCAD) path += upDir; break; } - } + } } if (path.isEmpty()) { From 636fa43c9912fb07f13cb558737c0cf652da879e Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 12 Jun 2024 08:38:49 +0200 Subject: [PATCH 09/54] MSVC: Fix warnings and build failure --- src/Gui/DlgExpressionInput.cpp | 2 +- src/Gui/SoDatumLabel.cpp | 2 +- src/Mod/Fem/App/PreCompiled.h | 1 + src/Mod/PartDesign/App/FeatureLoft.cpp | 2 +- src/Mod/PartDesign/App/FeaturePrimitive.cpp | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Gui/DlgExpressionInput.cpp b/src/Gui/DlgExpressionInput.cpp index 37a08305d2..632f1a29df 100644 --- a/src/Gui/DlgExpressionInput.cpp +++ b/src/Gui/DlgExpressionInput.cpp @@ -732,7 +732,7 @@ void DlgExpressionInput::updateVarSetInfo(bool checkExpr) checkExpression(ui->expression->text()); ui->okBtn->setEnabled(true); } - catch (Base::Exception& e) { + catch (Base::Exception&) { ui->okBtn->setDisabled(true); } } diff --git a/src/Gui/SoDatumLabel.cpp b/src/Gui/SoDatumLabel.cpp index 256e9d14cd..b0fb49f666 100644 --- a/src/Gui/SoDatumLabel.cpp +++ b/src/Gui/SoDatumLabel.cpp @@ -1496,7 +1496,7 @@ void SoDatumLabel::drawArcLength(const SbVec3f* points, float& angle, SbVec3f& t float startangle = atan2f(vc1[1], vc1[0]); float endangle = atan2f(vc2[1], vc2[0]); if (endangle < startangle) { - endangle += 2. * M_PI; + endangle += 2. * (float)M_PI; } float radius = vc1.length(); diff --git a/src/Mod/Fem/App/PreCompiled.h b/src/Mod/Fem/App/PreCompiled.h index 6985462aab..1adfb01bb4 100644 --- a/src/Mod/Fem/App/PreCompiled.h +++ b/src/Mod/Fem/App/PreCompiled.h @@ -125,6 +125,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Mod/PartDesign/App/FeatureLoft.cpp b/src/Mod/PartDesign/App/FeatureLoft.cpp index 2a3612d3ba..f77482a1ad 100644 --- a/src/Mod/PartDesign/App/FeatureLoft.cpp +++ b/src/Mod/PartDesign/App/FeatureLoft.cpp @@ -523,7 +523,7 @@ App::DocumentObjectExecReturn *Loft::execute(void) try { boolOp.makeElementBoolean(maker, {base,result}); } - catch(Standard_Failure &e) { + catch(Standard_Failure&) { return new App::DocumentObjectExecReturn(QT_TRANSLATE_NOOP("Exception", "Failed to perform boolean operation")); } boolOp = this->getSolid(boolOp); diff --git a/src/Mod/PartDesign/App/FeaturePrimitive.cpp b/src/Mod/PartDesign/App/FeaturePrimitive.cpp index a0b07ba9b1..24a51b3836 100644 --- a/src/Mod/PartDesign/App/FeaturePrimitive.cpp +++ b/src/Mod/PartDesign/App/FeaturePrimitive.cpp @@ -126,7 +126,7 @@ App::DocumentObjectExecReturn* FeaturePrimitive::execute(const TopoDS_Shape& pri try { boolOp.makeElementBoolean(maker, {base, primitiveShape}); } - catch (Standard_Failure& e) { + catch (Standard_Failure&) { return new App::DocumentObjectExecReturn( QT_TRANSLATE_NOOP("Exception", "Failed to perform boolean operation")); } From e96ec07f8edc0add669d29b75c53df161308197e Mon Sep 17 00:00:00 2001 From: James Waples Date: Wed, 12 Jun 2024 16:48:57 +0100 Subject: [PATCH 10/54] CAM: Rename CW/CCW to Climb/Conventional for consistency (#14364) * Find and replace CW/CCW with Climb/Conventional * Find and replace CCW/CW in CAM tests * Find and replace in some UI files --- .../Gui/Resources/panels/PageOpDeburrEdit.ui | 832 +++++++++--------- .../Gui/Resources/panels/PageOpHelixEdit.ui | 334 +++---- src/Mod/CAM/Path/Base/Generator/helix.py | 6 +- src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py | 8 +- src/Mod/CAM/Path/Geom.py | 8 +- src/Mod/CAM/Path/Op/Area.py | 2 +- src/Mod/CAM/Path/Op/Deburr.py | 10 +- src/Mod/CAM/Path/Op/Helix.py | 6 +- src/Mod/CAM/Path/Op/PocketBase.py | 2 +- src/Mod/CAM/Path/Op/Profile.py | 14 +- .../CAM/Path/Post/scripts/heidenhain_post.py | 6 +- src/Mod/CAM/Tests/PathTestUtils.py | 4 +- src/Mod/CAM/Tests/TestPathDressupDogbone.py | 14 +- src/Mod/CAM/Tests/TestPathGeom.py | 44 +- src/Mod/CAM/Tests/TestPathHelixGenerator.py | 2 +- src/Mod/CAM/Tests/TestPathProfile.py | 11 +- 16 files changed, 651 insertions(+), 652 deletions(-) diff --git a/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui b/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui index b10d7c6c19..be4182f4f8 100644 --- a/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui +++ b/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui @@ -1,422 +1,422 @@ - Form - - - - 0 - 0 - 350 - 450 - - - - Form - - - - - - - 0 - 0 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - 0 - 0 - + Form + + + + 0 + 0 + 350 + 450 + - - - 125 - 0 - + + Form - - - 16777215 - 16777215 - - - - Tool Controller - - - - - - - The tool and its settings to be used for this operation. - - - - - - - - 0 - 0 - - - - - 125 - 0 - - - - - 16777215 - 16777215 - - - - Coolant Mode - - - - - - - The tool and its settings to be used for this operation. - - - - + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 0 + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + Tool Controller + + + + + + + The tool and its settings to be used for this operation. + + + + + + + + 0 + 0 + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + Coolant Mode + + + + + + + The tool and its settings to be used for this operation. + + + + + + + + + + 6 + + + 12 + + + 12 + + + + + + 0 + 0 + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + Direction + + + + + + + The direction in which the profile is performed, clockwise or counterclockwise. + + + Climb + + + 0 + + + + Climb + + + + + Conventional + + + + + + + + + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + + 50 + 0 + + + + W = + + + + + + + Width of chamfer cut. + + + mm + + + + + + + + + + + + 50 + 0 + + + + h = + + + + + + + Extra depth of tool immersion. + + + mm + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 13 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 6 + + + 0 + + + 3 + + + 3 + + + + + + + + 50 + 0 + + + + Join: + + + + + + + Round joint + + + + + + true + + + true + + + true + + + + + + + Miter joint + + + + + + true + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 150 + 150 + + + + + 150 + 150 + + + + TextLabel + + + true + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + - - - - - 6 - - - 12 - - - 12 - - - - - - 0 - 0 - - - - - 125 - 0 - - - - - 16777215 - 16777215 - - - - Direction - - - - - - - The direction in which the profile is performed, clockwise or counterclockwise. - - - CW - - - 0 - - - - CW - - - - - CCW - - - - - - - - - - - - - 125 - 0 - - - - - 16777215 - 16777215 - - - - - - - - - - 50 - 0 - - - - W = - - - - - - - Width of chamfer cut. - - - mm - - - - - - - - - - - - 50 - 0 - - - - h = - - - - - - - Extra depth of tool immersion. - - - mm - - - - - - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 13 - - - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 0 - - - 6 - - - 0 - - - 3 - - - 3 - - - - - - - - 50 - 0 - - - - Join: - - - - - - - Round joint - - - - - - true - - - true - - - true - - - - - - - Miter joint - - - - - - true - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 154 - - - - - - - - - - - - - - - - - 0 - 0 - - - - - 150 - 150 - - - - - 150 - 150 - - - - TextLabel - - - true - - - Qt::AlignCenter - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - - Gui::InputField - QLineEdit -
Gui/InputField.h
-
-
- - + + + Gui::InputField + QLineEdit +
Gui/InputField.h
+
+
+ +
diff --git a/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui b/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui index cdc8f842d8..69d4ee8e72 100644 --- a/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui +++ b/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui @@ -1,175 +1,175 @@ - Form - - - - 0 - 0 - 400 - 365 - - - - Form - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - + Form + + + + 0 + 0 + 400 + 365 + + + + Form + + - - - Tool Controller - - - - - - - The tool and its settings to be used for this operation. - - + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + Tool Controller + + + + + + + The tool and its settings to be used for this operation. + + + + + + + Coolant + + + + + + + The tool and its settings to be used for this operation. + + + + + - - - Coolant - - + + + + + + Start from + + + + + + + Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. + + + + Inside + + + + + Outside + + + + + + + + Direction + + + + + + + The direction for the helix, clockwise or counterclockwise. + + + + Climb + + + + + Conventional + + + + + + + + Step over percent + + + + + + + Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. + + + 1 + + + 100 + + + 10 + + + 100 + + + + + + + Extra Offset + + + + + + + + + + + + - - - - The tool and its settings to be used for this operation. - - + + + + Qt::Vertical + + + + 20 + 40 + + + - - - - - - - - - - Start from - - - - - - - Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. - - - - Inside - - - - - Outside - - - - - - - - Direction - - - - - - - The direction for the helix, clockwise or counterclockwise. - - - - CW - - - - - CCW - - - - - - - - Step over percent - - - - - - - Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. - - - 1 - - - 100 - - - 10 - - - 100 - - - - - - - Extra Offset - - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Gui::InputField - QLineEdit -
Gui/InputField.h
-
-
- - + + + + + Gui::InputField + QLineEdit +
Gui/InputField.h
+
+
+ +
diff --git a/src/Mod/CAM/Path/Base/Generator/helix.py b/src/Mod/CAM/Path/Base/Generator/helix.py index 1ea355c518..982ce3957a 100644 --- a/src/Mod/CAM/Path/Base/Generator/helix.py +++ b/src/Mod/CAM/Path/Base/Generator/helix.py @@ -45,7 +45,7 @@ def generate( step_over, tool_diameter, inner_radius=0.0, - direction="CW", + direction="Climb", startAt="Outside", ): """generate(edge, hole_radius, inner_radius, step_over) ... generate helix commands. @@ -96,7 +96,7 @@ def generate( elif startAt not in ["Inside", "Outside"]: raise ValueError("Invalid value for parameter 'startAt'") - elif direction not in ["CW", "CCW"]: + elif direction not in ["Climb", "Conventional"]: raise ValueError("Invalid value for parameter 'direction'") if type(step_over) not in [float, int]: @@ -145,7 +145,7 @@ def generate( def helix_cut_r(r): commandlist = [] - arc_cmd = "G2" if direction == "CW" else "G3" + arc_cmd = "G2" if direction == "Climb" else "G3" commandlist.append( Path.Command("G0", {"X": startPoint.x + r, "Y": startPoint.y}) ) diff --git a/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py b/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py index f44b8b6b1f..ba7f389d3d 100644 --- a/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py +++ b/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py @@ -182,12 +182,12 @@ class ObjectDressup: def getDirectionOfPath(self, obj): op = PathDressup.baseOp(obj.Base) side = op.Side if hasattr(op, "Side") else "Inside" - direction = op.Direction if hasattr(op, "Direction") else "CCW" + direction = op.Direction if hasattr(op, "Direction") else "Conventional" if side == "Outside": - return "left" if direction == "CW" else "right" + return "left" if direction == "Climb" else "right" else: - return "right" if direction == "CW" else "left" + return "right" if direction == "Climb" else "left" def getArcDirection(self, obj): direction = self.getDirectionOfPath(obj) @@ -328,7 +328,7 @@ class ObjectDressup: else: # obj.StyleOff == "Perpendicular" append(self.createStraightMove(obj, end, end + normal)) - extend = obj.ExtendLeadOut.Value + extend = obj.ExtendLeadOut.Value if extend != 0: # append extension extendend = end + normal / length * extend diff --git a/src/Mod/CAM/Path/Geom.py b/src/Mod/CAM/Path/Geom.py index 1ad92a6f65..eeb00973dd 100644 --- a/src/Mod/CAM/Path/Geom.py +++ b/src/Mod/CAM/Path/Geom.py @@ -147,10 +147,10 @@ def getAngle(vector): return a -def diffAngle(a1, a2, direction="CW"): - """diffAngle(a1, a2, [direction='CW']) +def diffAngle(a1, a2, direction="Climb"): + """diffAngle(a1, a2, [direction='Climb']) Returns the difference between two angles (a1 -> a2) into a given direction.""" - if direction == "CW": + if direction == "Climb": while a1 < a2: a1 += 2 * math.pi a = a1 - a2 @@ -466,7 +466,7 @@ def edgeForCmd(cmd, startPoint): cw = True else: cw = False - angle = diffAngle(getAngle(A), getAngle(B), "CW" if cw else "CCW") + angle = diffAngle(getAngle(A), getAngle(B), "Climb" if cw else "CCW") height = endPoint.z - startPoint.z pitch = height * math.fabs(2 * math.pi / angle) if angle > 0: diff --git a/src/Mod/CAM/Path/Op/Area.py b/src/Mod/CAM/Path/Op/Area.py index c887839b64..541fc19d6f 100644 --- a/src/Mod/CAM/Path/Op/Area.py +++ b/src/Mod/CAM/Path/Op/Area.py @@ -340,7 +340,7 @@ class ObjectOp(PathOp.ObjectOp): verts = hWire.Wires[0].Vertexes idx = 0 - if obj.Direction == "CCW": + if obj.Direction == "Conventional": idx = len(verts) - 1 x = verts[idx].X y = verts[idx].Y diff --git a/src/Mod/CAM/Path/Op/Deburr.py b/src/Mod/CAM/Path/Op/Deburr.py index 2bc04aed44..68860da4d2 100644 --- a/src/Mod/CAM/Path/Op/Deburr.py +++ b/src/Mod/CAM/Path/Op/Deburr.py @@ -144,7 +144,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): "Deburr", QT_TRANSLATE_NOOP("App::Property", "Direction of toolpath"), ) - # obj.Direction = ["CW", "CCW"] + # obj.Direction = ["Climb", "Conventional"] obj.addProperty( "App::PropertyEnumeration", "Side", @@ -181,8 +181,8 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): # Enumeration lists for App::PropertyEnumeration properties enums = { "Direction": [ - (translate("Path", "CW"), "CW"), - (translate("Path", "CCW"), "CCW"), + (translate("Path", "Climb"), "Climb"), + (translate("Path", "Conventional"), "Conventional"), ], # this is the direction that the profile runs "Join": [ (translate("PathDeburr", "Round"), "Round"), @@ -414,7 +414,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): wires.append(wire) # Set direction of op - forward = obj.Direction == "CW" + forward = obj.Direction == "Climb" # Set value of side obj.Side = side[0] @@ -449,7 +449,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): obj.Join = "Round" obj.setExpression("StepDown", "0 mm") obj.StepDown = "0 mm" - obj.Direction = "CW" + obj.Direction = "Climb" obj.Side = "Outside" obj.EntryPoint = 0 diff --git a/src/Mod/CAM/Path/Op/Helix.py b/src/Mod/CAM/Path/Op/Helix.py index 60026814f2..dbc1cdc0e5 100644 --- a/src/Mod/CAM/Path/Op/Helix.py +++ b/src/Mod/CAM/Path/Op/Helix.py @@ -68,8 +68,8 @@ class ObjectHelix(PathCircularHoleBase.ObjectOp): # Enumeration lists for App::PropertyEnumeration properties enums = { "Direction": [ - (translate("CAM_Helix", "CW"), "CW"), - (translate("CAM_Helix", "CCW"), "CCW"), + (translate("CAM_Helix", "Climb"), "Climb"), + (translate("CAM_Helix", "Conventional"), "Conventional"), ], # this is the direction that the profile runs "StartSide": [ (translate("PathProfile", "Outside"), "Outside"), @@ -105,7 +105,7 @@ class ObjectHelix(PathCircularHoleBase.ObjectOp): "Helix Drill", QT_TRANSLATE_NOOP( "App::Property", - "The direction of the circular cuts, ClockWise (CW), or CounterClockWise (CCW)", + "The direction of the circular cuts, ClockWise (Climb), or CounterClockWise (Conventional)", ), ) diff --git a/src/Mod/CAM/Path/Op/PocketBase.py b/src/Mod/CAM/Path/Op/PocketBase.py index 2c303e731c..e22ef75c89 100644 --- a/src/Mod/CAM/Path/Op/PocketBase.py +++ b/src/Mod/CAM/Path/Op/PocketBase.py @@ -124,7 +124,7 @@ class ObjectPocket(PathAreaOp.ObjectOp): "Pocket", QT_TRANSLATE_NOOP( "App::Property", - "The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW)", + "The direction that the toolpath should go around the part ClockWise (Climb) or CounterClockWise (Conventional)", ), ) obj.addProperty( diff --git a/src/Mod/CAM/Path/Op/Profile.py b/src/Mod/CAM/Path/Op/Profile.py index 00105ef1f2..5b7c0fc86c 100644 --- a/src/Mod/CAM/Path/Op/Profile.py +++ b/src/Mod/CAM/Path/Op/Profile.py @@ -104,7 +104,7 @@ class ObjectProfile(PathAreaOp.ObjectOp): "Profile", QT_TRANSLATE_NOOP( "App::Property", - "The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW)", + "The direction that the toolpath should go around the part ClockWise (Climb) or CounterClockWise (Conventional)", ), ), ( @@ -193,8 +193,8 @@ class ObjectProfile(PathAreaOp.ObjectOp): # Enumeration lists for App::PropertyEnumeration properties enums = { "Direction": [ - (translate("PathProfile", "CW"), "CW"), - (translate("PathProfile", "CCW"), "CCW"), + (translate("PathProfile", "Climb"), "Climb"), + (translate("PathProfile", "Conventional"), "Conventional"), ], # this is the direction that the profile runs "HandleMultipleFeatures": [ (translate("PathProfile", "Collectively"), "Collectively"), @@ -230,7 +230,7 @@ class ObjectProfile(PathAreaOp.ObjectOp): """areaOpPropertyDefaults(obj, job) ... returns a dictionary of default values for the operation's properties.""" return { - "Direction": "CW", + "Direction": "Climb", "HandleMultipleFeatures": "Collectively", "JoinType": "Round", "MiterLimit": 0.1, @@ -343,11 +343,11 @@ class ObjectProfile(PathAreaOp.ObjectOp): # Reverse the direction for holes if isHole: - direction = "CW" if obj.Direction == "CCW" else "CCW" + direction = "Climb" if obj.Direction == "Conventional" else "Conventional" else: direction = obj.Direction - if direction == "CCW": + if direction == "Conventional": params["orientation"] = 0 else: params["orientation"] = 1 @@ -356,7 +356,7 @@ class ObjectProfile(PathAreaOp.ObjectOp): if obj.UseComp: offset = self.radius + obj.OffsetExtra.Value if offset == 0.0: - if direction == "CCW": + if direction == "Conventional": params["orientation"] = 1 else: params["orientation"] = 0 diff --git a/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py b/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py index 570ad54f08..8cce063d03 100644 --- a/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py +++ b/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py @@ -378,11 +378,11 @@ def export(objectslist, filename, argstring): STORED_COMPENSATED_OBJ = commands # Find mill compensation if hasattr(obj, "Side") and hasattr(obj, "Direction"): - if obj.Side == "Outside" and obj.Direction == "CW": + if obj.Side == "Outside" and obj.Direction == "Climb": Compensation = "L" - elif obj.Side == "Outside" and obj.Direction == "CCW": + elif obj.Side == "Outside" and obj.Direction == "Conventional": Compensation = "R" - elif obj.Side != "Outside" and obj.Direction == "CW": + elif obj.Side != "Outside" and obj.Direction == "Climb": Compensation = "R" else: Compensation = "L" diff --git a/src/Mod/CAM/Tests/PathTestUtils.py b/src/Mod/CAM/Tests/PathTestUtils.py index 5df774fd71..91749180dd 100644 --- a/src/Mod/CAM/Tests/PathTestUtils.py +++ b/src/Mod/CAM/Tests/PathTestUtils.py @@ -67,14 +67,14 @@ class PathTestBase(unittest.TestCase): for i in range(0, len(edges)): self.assertLine(edges[i], points[i], points[i + 1]) - def assertArc(self, edge, pt1, pt2, direction="CW"): + def assertArc(self, edge, pt1, pt2, direction="Climb"): """Verify that edge is an arc between pt1 and pt2 with the given direction.""" self.assertIs(type(edge.Curve), Part.Circle) self.assertCoincide(edge.valueAt(edge.FirstParameter), pt1) self.assertCoincide(edge.valueAt(edge.LastParameter), pt2) ptm = edge.valueAt((edge.LastParameter + edge.FirstParameter) / 2) side = Path.Geom.Side.of(pt2 - pt1, ptm - pt1) - if "CW" == direction: + if "Climb" == direction: self.assertEqual(side, Path.Geom.Side.Left) else: self.assertEqual(side, Path.Geom.Side.Right) diff --git a/src/Mod/CAM/Tests/TestPathDressupDogbone.py b/src/Mod/CAM/Tests/TestPathDressupDogbone.py index 8302966902..a7f8fd61d0 100644 --- a/src/Mod/CAM/Tests/TestPathDressupDogbone.py +++ b/src/Mod/CAM/Tests/TestPathDressupDogbone.py @@ -59,7 +59,7 @@ class TestDressupDogbone(PathTestBase): """Verify bones are inserted for simple moves.""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -84,7 +84,7 @@ class TestDressupDogbone(PathTestBase): """Verify bones are inserted if hole ends with rapid move out.""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -177,7 +177,7 @@ class TestDressupDogbone(PathTestBase): """Verify no bone is inserted for straight move interrupted by plunge.""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -199,7 +199,7 @@ class TestDressupDogbone(PathTestBase): """Verify can handle comments between moves""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -222,7 +222,7 @@ class TestDressupDogbone(PathTestBase): base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -248,7 +248,7 @@ class TestDressupDogbone(PathTestBase): """Verify can handle noops between moves""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -271,7 +271,7 @@ class TestDressupDogbone(PathTestBase): base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 diff --git a/src/Mod/CAM/Tests/TestPathGeom.py b/src/Mod/CAM/Tests/TestPathGeom.py index 93a37353d3..303b53d3a6 100644 --- a/src/Mod/CAM/Tests/TestPathGeom.py +++ b/src/Mod/CAM/Tests/TestPathGeom.py @@ -45,71 +45,71 @@ class TestPathGeom(PathTestBase): def test01(self): """Verify diffAngle functionality.""" self.assertRoughly( - Path.Geom.diffAngle(0, +0 * math.pi / 4, "CW") / math.pi, 0 / 4.0 + Path.Geom.diffAngle(0, +0 * math.pi / 4, "Climb") / math.pi, 0 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +3 * math.pi / 4, "CW") / math.pi, 5 / 4.0 + Path.Geom.diffAngle(0, +3 * math.pi / 4, "Climb") / math.pi, 5 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, -3 * math.pi / 4, "CW") / math.pi, 3 / 4.0 + Path.Geom.diffAngle(0, -3 * math.pi / 4, "Climb") / math.pi, 3 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +4 * math.pi / 4, "CW") / math.pi, 4 / 4.0 + Path.Geom.diffAngle(0, +4 * math.pi / 4, "Climb") / math.pi, 4 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +0 * math.pi / 4, "CCW") / math.pi, 0 / 4.0 + Path.Geom.diffAngle(0, +0 * math.pi / 4, "Conventional") / math.pi, 0 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +3 * math.pi / 4, "CCW") / math.pi, 3 / 4.0 + Path.Geom.diffAngle(0, +3 * math.pi / 4, "Conventional") / math.pi, 3 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, -3 * math.pi / 4, "CCW") / math.pi, 5 / 4.0 + Path.Geom.diffAngle(0, -3 * math.pi / 4, "Conventional") / math.pi, 5 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +4 * math.pi / 4, "CCW") / math.pi, 4 / 4.0 + Path.Geom.diffAngle(0, +4 * math.pi / 4, "Conventional") / math.pi, 4 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "CW") / math.pi, 1 / 4.0 + Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "Climb") / math.pi, 1 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "CW") / math.pi, 6 / 4.0 + Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "Climb") / math.pi, 6 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "CW") / math.pi, 2 / 4.0 + Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "Climb") / math.pi, 2 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "CW") / math.pi, 7 / 4.0 + Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "Climb") / math.pi, 7 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "CW") / math.pi, 4 / 4.0 + Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "Climb") / math.pi, 4 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "CW") / math.pi, 0 / 4.0 + Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "Climb") / math.pi, 0 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "Conventional") / math.pi, 7 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "Conventional") / math.pi, 2 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "Conventional") / math.pi, 6 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "Conventional") / math.pi, 1 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "Conventional") / math.pi, 4 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "Conventional") / math.pi, 0 / 4.0, ) @@ -499,7 +499,7 @@ class TestPathGeom(PathTestBase): ), p1, p2, - "CW", + "Climb", ) self.assertArc( Path.Geom.edgeForCmd( @@ -510,7 +510,7 @@ class TestPathGeom(PathTestBase): ), p2, p1, - "CCW", + "Conventional", ) def test30(self): diff --git a/src/Mod/CAM/Tests/TestPathHelixGenerator.py b/src/Mod/CAM/Tests/TestPathHelixGenerator.py index e3022ff36f..b2b3a380c0 100644 --- a/src/Mod/CAM/Tests/TestPathHelixGenerator.py +++ b/src/Mod/CAM/Tests/TestPathHelixGenerator.py @@ -44,7 +44,7 @@ def _resetArgs(): "step_over": 0.5, "tool_diameter": 5.0, "inner_radius": 0.0, - "direction": "CW", + "direction": "Climb", "startAt": "Inside", } diff --git a/src/Mod/CAM/Tests/TestPathProfile.py b/src/Mod/CAM/Tests/TestPathProfile.py index 8da8f2a9a9..c7549b91ec 100644 --- a/src/Mod/CAM/Tests/TestPathProfile.py +++ b/src/Mod/CAM/Tests/TestPathProfile.py @@ -121,7 +121,7 @@ class TestPathProfile(PathTestBase): profile.processCircles = True profile.processHoles = True profile.UseComp = True - profile.Direction = "CW" + profile.Direction = "Climb" _addViewProvider(profile) self.doc.recompute() @@ -158,7 +158,7 @@ class TestPathProfile(PathTestBase): profile.processCircles = True profile.processHoles = True profile.UseComp = False - profile.Direction = "CW" + profile.Direction = "Climb" _addViewProvider(profile) self.doc.recompute() @@ -179,9 +179,9 @@ class TestPathProfile(PathTestBase): self.assertTrue(expected_moves == operationMoves, "expected_moves: {}\noperationMoves: {}".format(expected_moves, operationMoves)) - + def test03(self): - """test03() Verify path generated on Face18, outside, + """test03() Verify path generated on Face18, outside, with compensation and extra offset -radius.""" # Instantiate a Profile operation and set Base Geometry @@ -196,7 +196,7 @@ class TestPathProfile(PathTestBase): profile.processCircles = True profile.processHoles = True profile.UseComp = True - profile.Direction = "CW" + profile.Direction = "Climb" profile.OffsetExtra = -profile.OpToolDiameter / 2.0 _addViewProvider(profile) self.doc.recompute() @@ -227,4 +227,3 @@ def _addViewProvider(profileOp): profileOp.ViewObject.Proxy = PathOpGui.ViewProvider( profileOp.ViewObject, cmdRes ) - From f4f694e79329660769c1923b1e4741ae4bad117f Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 12 Jun 2024 14:05:56 +0200 Subject: [PATCH 11/54] Test: make test for STEP import independent of user settings If the option 'Enable STEP compound merge' is active the test would fail --- src/Mod/Import/TestImportGui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/Import/TestImportGui.py b/src/Mod/Import/TestImportGui.py index 9393c104e7..8f2d3f7d48 100644 --- a/src/Mod/Import/TestImportGui.py +++ b/src/Mod/Import/TestImportGui.py @@ -56,7 +56,7 @@ class ExportImportTest(unittest.TestCase): ImportGui.export([part], self.fileName) self.doc.clearDocument() - ImportGui.insert(name=self.fileName, docName=self.doc.Name, useLinkGroup=True) + ImportGui.insert(name=self.fileName, docName=self.doc.Name, merge=False, useLinkGroup=True) part_features = list(filter(lambda x: x.isDerivedFrom("Part::Feature"), self.doc.Objects)) self.assertEqual(len(part_features), 1) From 1780ea4760923edfa7a7b14d89729c2075bc854b Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:18:23 +0200 Subject: [PATCH 12/54] BIM: Fix move BuildingPart error (#14539) Fixes #14524. --- src/Mod/BIM/ArchBuildingPart.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/BIM/ArchBuildingPart.py b/src/Mod/BIM/ArchBuildingPart.py index 90eec6eb44..1ed2fdd242 100644 --- a/src/Mod/BIM/ArchBuildingPart.py +++ b/src/Mod/BIM/ArchBuildingPart.py @@ -299,7 +299,8 @@ class BuildingPart(ArchIFC.IfcProduct): def execute(self,obj): - # gather all the child shapes into a compound + "gather all the child shapes into a compound" + pl = obj.Placement shapes,materialstable = self.getShapes(obj) if shapes: @@ -322,12 +323,13 @@ class BuildingPart(ArchIFC.IfcProduct): obj.ViewObject.Proxy.onChanged(obj.ViewObject,"AutoGroupBox") def getMovableChildren(self, obj): + "recursively get movable children" result = [] for child in obj.Group: - if isinstance(child, "App::DocumentObjectGroup"): - result.extend(getMovableChildren(child)) + if child.isDerivedFrom("App::DocumentObjectGroup"): + result.extend(self.getMovableChildren(child)) if not hasattr(child,"MoveWithHost") or child.MoveWithHost: if hasattr(child,"Placement"): result.append(child) From 4f37e3738da63da1d9e7bf817325ec249d391774 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:20:25 +0200 Subject: [PATCH 13/54] BIM: Fix handling of Wall normal (#14540) The `Part.makeLine()` code is unnecessary and also risky as length can be zero. See first image in #14524. --- src/Mod/BIM/ArchWall.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Mod/BIM/ArchWall.py b/src/Mod/BIM/ArchWall.py index e6e3bccbec..b096682d26 100644 --- a/src/Mod/BIM/ArchWall.py +++ b/src/Mod/BIM/ArchWall.py @@ -718,11 +718,10 @@ class _Wall(ArchComponent.Component): return None if obj.Normal == Vector(0,0,0): if obj.Base: - baseshape = obj.Base.Shape + normal = DraftGeomUtils.get_shape_normal(obj.Base.Shape) + if normal is None: + normal = Vector(0,0,1) else: - baseshape = Part.makeLine((0,0,0),(length,0,0)) - normal = DraftGeomUtils.get_shape_normal(baseshape) - if normal == None: normal = Vector(0,0,1) else: normal = Vector(obj.Normal) From ebbe9a15e036e81b6e4938bbdd2cc3ed3a3be1c5 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:22:08 +0200 Subject: [PATCH 14/54] BIM: minor icon cleanup (#14560) * BIM: minor icon cleanup * Removed icons used for 'experimental' tools. They are obsolete. * Updated warning.svg to match .../src/Gui/Icons/Warning.svg * Renamed Image_CreateImagePlane.svg to BIM_ImagePlane.svg to avoid overwriting the first icon in the Wiki. * Removed ArchWorkbench.svg and preferences-arch.svg as they are also obsolete. * To resolve a Wiki name conflict renamed BIM_Project.svg to BIM_ProjectManager.svg, and Arch_Project_IFC.svg to BIM_Project.svg. --- src/Mod/BIM/Resources/Arch.qrc | 10 +- src/Mod/BIM/Resources/icons/ArchWorkbench.svg | 452 ------------ .../icons/Arch_Opening_Experimental.svg | 241 ------ .../BIM/Resources/icons/Arch_Project_IFC.svg | 148 ---- .../icons/Arch_Wall_Experimental.svg | 404 ---------- .../icons/Arch_Window_Experimental.svg | 687 ------------------ .../Resources/icons/BIM_Door_Experimental.svg | 576 --------------- ...reateImagePlane.svg => BIM_ImagePlane.svg} | 2 +- src/Mod/BIM/Resources/icons/BIM_Project.svg | 237 +++--- .../Resources/icons/BIM_ProjectManager.svg | 125 ++++ .../BIM/Resources/icons/preferences-arch.svg | 666 ----------------- src/Mod/BIM/Resources/icons/warning.svg | 62 +- src/Mod/BIM/bimcommands/BimImagePlane.py | 2 +- src/Mod/BIM/bimcommands/BimProject.py | 2 +- src/Mod/BIM/bimcommands/BimProjectManager.py | 4 +- 15 files changed, 292 insertions(+), 3326 deletions(-) delete mode 100755 src/Mod/BIM/Resources/icons/ArchWorkbench.svg delete mode 100644 src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg delete mode 100644 src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg delete mode 100644 src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg delete mode 100644 src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg delete mode 100644 src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg rename src/Mod/BIM/Resources/icons/{Image_CreateImagePlane.svg => BIM_ImagePlane.svg} (99%) create mode 100644 src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg delete mode 100755 src/Mod/BIM/Resources/icons/preferences-arch.svg diff --git a/src/Mod/BIM/Resources/Arch.qrc b/src/Mod/BIM/Resources/Arch.qrc index 1e004311a9..417015ba01 100644 --- a/src/Mod/BIM/Resources/Arch.qrc +++ b/src/Mod/BIM/Resources/Arch.qrc @@ -1,6 +1,5 @@ - icons/ArchWorkbench.svg icons/Arch_3Views.svg icons/Arch_Add.svg icons/Arch_Axis.svg @@ -40,7 +39,6 @@ icons/Arch_MeshToShape.svg icons/Arch_MultipleStructures.svg icons/Arch_Nest.svg - icons/Arch_Opening_Experimental.svg icons/Arch_Panel.svg icons/Arch_Panel_Clone.svg icons/Arch_Panel_Cut.svg @@ -52,7 +50,6 @@ icons/Arch_Pipe_Tree.svg icons/Arch_Profile.svg icons/Arch_Project.svg - icons/Arch_Project_IFC.svg icons/Arch_Project_Tree.svg icons/Arch_Rebar.svg icons/Arch_Rebar_Tree.svg @@ -86,12 +83,10 @@ icons/Arch_Truss_Tree.svg icons/Arch_Wall.svg icons/Arch_Wall_Clone.svg - icons/Arch_Wall_Experimental.svg icons/Arch_Wall_Tree.svg icons/Arch_Wall_Tree_Assembly.svg icons/Arch_Window.svg icons/Arch_Window_Clone.svg - icons/Arch_Window_Experimental.svg icons/Arch_Window_Tree.svg icons/BIMWorkbench.svg icons/BIM_Background.svg @@ -106,13 +101,13 @@ icons/BIM_DimensionHorizontal.svg icons/BIM_DimensionVertical.svg icons/BIM_Door.svg - icons/BIM_Door_Experimental.svg icons/BIM_Glue.svg icons/BIM_Hatch.svg icons/BIM_Help.svg icons/BIM_IfcElements.svg icons/BIM_IfcProperties.svg icons/BIM_IfcQuantities.svg + icons/BIM_ImagePlane.svg icons/BIM_Layers.svg icons/BIM_Leader.svg icons/BIM_Levels.svg @@ -123,6 +118,7 @@ icons/BIM_Phases.svg icons/BIM_Preflight.svg icons/BIM_Project.svg + icons/BIM_ProjectManager.svg icons/BIM_Reextrude.svg icons/BIM_Reorder.svg icons/BIM_ResetCloneColors.svg @@ -141,12 +137,10 @@ icons/IFC_document.svg icons/IFC_mesh.svg icons/IFC_object.svg - icons/Image_CreateImagePlane.svg icons/Part_document.svg icons/Sketch.svg icons/Tree_Part.svg icons/banner.png - icons/preferences-arch.svg icons/preferences-bim.svg icons/techdraw-ArchView.svg icons/techdraw-PageDefault.svg diff --git a/src/Mod/BIM/Resources/icons/ArchWorkbench.svg b/src/Mod/BIM/Resources/icons/ArchWorkbench.svg deleted file mode 100755 index 2bd4ee58a3..0000000000 --- a/src/Mod/BIM/Resources/icons/ArchWorkbench.svg +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [triplus] - - - ArchWorkbench - 2016-02-26 - https://www.freecad.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/ArchWorkbench.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg b/src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg deleted file mode 100644 index c7f5d44fa2..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Window - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Window.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg b/src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg deleted file mode 100644 index dfeabb73bd..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - FreeCAD LGPL2+ - - - - - FreeCAD - - - https://www.freecad.org/wiki/index.php?title=Artwork - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg b/src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg deleted file mode 100644 index b44f3358aa..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Wall - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Wall.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg b/src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg deleted file mode 100644 index a839b76e7d..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg +++ /dev/null @@ -1,687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Window - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Window.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg b/src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg deleted file mode 100644 index d2d1310810..0000000000 --- a/src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Window - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Window.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Image_CreateImagePlane.svg b/src/Mod/BIM/Resources/icons/BIM_ImagePlane.svg similarity index 99% rename from src/Mod/BIM/Resources/icons/Image_CreateImagePlane.svg rename to src/Mod/BIM/Resources/icons/BIM_ImagePlane.svg index 4f9e24faad..5e113dcba6 100644 --- a/src/Mod/BIM/Resources/icons/Image_CreateImagePlane.svg +++ b/src/Mod/BIM/Resources/icons/BIM_ImagePlane.svg @@ -13,7 +13,7 @@ id="svg3612" version="1.1" inkscape:version="1.0.2 (e86c870879, 2021-01-15)" - sodipodi:docname="Image_CreateImagePlane.svg"> + sodipodi:docname="BIM_ImagePlane.svg"> - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + image/svg+xml - - - - - [yorikvanhavre] - - - Arch_Building_Tree - 2011-12-06 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Building_Tree.svg + FreeCAD LGPL2+ - https://www.gnu.org/copyleft/lesser.html - + - [agryson] Alexander Gryson + FreeCAD - + + https://www.freecad.org/wiki/index.php?title=Artwork + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg b/src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg new file mode 100644 index 0000000000..c6903c7c7d --- /dev/null +++ b/src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + [yorikvanhavre] + + + Arch_Building_Tree + 2011-12-06 + http://www.freecadweb.org/wiki/index.php?title=Artwork + + + FreeCAD + + + FreeCAD/src/Mod/Arch/Resources/icons/Arch_Building_Tree.svg + + + FreeCAD LGPL2+ + + + https://www.gnu.org/copyleft/lesser.html + + + [agryson] Alexander Gryson + + + + + + + + + + + + + + + + + diff --git a/src/Mod/BIM/Resources/icons/preferences-arch.svg b/src/Mod/BIM/Resources/icons/preferences-arch.svg deleted file mode 100755 index 3efef7b927..0000000000 --- a/src/Mod/BIM/Resources/icons/preferences-arch.svg +++ /dev/null @@ -1,666 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [triplus] - - - ArchWorkbench - 2016-02-26 - https://www.freecad.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/ArchWorkbench.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/warning.svg b/src/Mod/BIM/Resources/icons/warning.svg index f0bb851706..9aab3a965a 100644 --- a/src/Mod/BIM/Resources/icons/warning.svg +++ b/src/Mod/BIM/Resources/icons/warning.svg @@ -2,22 +2,22 @@ + version="1.1" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:window-width="1920" + inkscape:window-height="986" + inkscape:window-x="0" + inkscape:window-y="32" + inkscape:window-maximized="1" + inkscape:pagecheckerboard="0"> image/svg+xml -
@@ -106,18 +106,16 @@ id="path2644-3" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" /> - + + style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" + id="path91" + cx="31.970903" + cy="48.55901" + r="2" />
diff --git a/src/Mod/BIM/bimcommands/BimImagePlane.py b/src/Mod/BIM/bimcommands/BimImagePlane.py index 04b0eb785d..f171639c09 100644 --- a/src/Mod/BIM/bimcommands/BimImagePlane.py +++ b/src/Mod/BIM/bimcommands/BimImagePlane.py @@ -35,7 +35,7 @@ translate = FreeCAD.Qt.translate class BIM_ImagePlane: def GetResources(self): return { - "Pixmap": "Image_CreateImagePlane.svg", + "Pixmap": "BIM_ImagePlane.svg", "MenuText": QT_TRANSLATE_NOOP("BIM_ImagePlane", "Image plane"), "ToolTip": QT_TRANSLATE_NOOP( "BIM_ImagePlane", "Creates a plane from an image" diff --git a/src/Mod/BIM/bimcommands/BimProject.py b/src/Mod/BIM/bimcommands/BimProject.py index b12c2cb214..348091fecd 100644 --- a/src/Mod/BIM/bimcommands/BimProject.py +++ b/src/Mod/BIM/bimcommands/BimProject.py @@ -35,7 +35,7 @@ class BIM_Project: def GetResources(self): return { - "Pixmap": "Arch_Project_IFC", + "Pixmap": "BIM_Project", "MenuText": QT_TRANSLATE_NOOP("BIM_Project", "Project"), "ToolTip": QT_TRANSLATE_NOOP("BIM_Project", "Create an empty NativeIFC project"), diff --git a/src/Mod/BIM/bimcommands/BimProjectManager.py b/src/Mod/BIM/bimcommands/BimProjectManager.py index 6e17092c4f..39c68a5426 100644 --- a/src/Mod/BIM/bimcommands/BimProjectManager.py +++ b/src/Mod/BIM/bimcommands/BimProjectManager.py @@ -35,7 +35,7 @@ translate = FreeCAD.Qt.translate class BIM_ProjectManager: def GetResources(self): return { - "Pixmap": "BIM_Project", + "Pixmap": "BIM_ProjectManager", "MenuText": QT_TRANSLATE_NOOP("BIM_ProjectManager", "Manage project..."), "ToolTip": QT_TRANSLATE_NOOP( "BIM_ProjectManager", "Setup your BIM project" @@ -62,7 +62,7 @@ class BIM_ProjectManager: import ArchBuildingPart self.form.buildingUse.addItems(ArchBuildingPart.BuildingTypes) - self.form.setWindowIcon(QtGui.QIcon(":/icons/BIM_Project.svg")) + self.form.setWindowIcon(QtGui.QIcon(":/icons/BIM_ProjectManager.svg")) QtCore.QObject.connect( self.form.buttonAdd, QtCore.SIGNAL("clicked()"), self.addGroup ) From 78c36a22d91294822c02a1748c4cf0417b7067f3 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:26:06 +0200 Subject: [PATCH 15/54] BIM: Fix Arch Panel imports (#14644) Fixes #14585. --- src/Mod/BIM/ArchPanel.py | 14 -------------- src/Mod/BIM/bimcommands/BimPanel.py | 29 ++++++++++++++++++++++------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/Mod/BIM/ArchPanel.py b/src/Mod/BIM/ArchPanel.py index 4d62a04dc0..1bf0e85b88 100644 --- a/src/Mod/BIM/ArchPanel.py +++ b/src/Mod/BIM/ArchPanel.py @@ -35,7 +35,6 @@ if FreeCAD.GuiUp: from PySide import QtCore, QtGui from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP - import draftguitools.gui_trackers as DraftTrackers else: # \cond def translate(ctxt,txt): @@ -56,19 +55,6 @@ __title__ = "FreeCAD Panel" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" -# Description l w t - -Presets = [None, - ["Plywood 12mm, 1220 x 2440",1220,2440,12], - ["Plywood 15mm, 1220 x 2440",1220,2440,15], - ["Plywood 18mm, 1220 x 2440",1220,2440,18], - ["Plywood 25mm, 1220 x 2440",1220,2440,25], - ["MDF 3mm, 900 x 600", 900, 600, 3], - ["MDF 6mm, 900 x 600", 900, 600, 6], - ["OSB 18mm, 1220 x 2440", 1220,2440,18], - ] - - class _Panel(ArchComponent.Component): diff --git a/src/Mod/BIM/bimcommands/BimPanel.py b/src/Mod/BIM/bimcommands/BimPanel.py index 4c50c63ae0..c0cbb7352f 100644 --- a/src/Mod/BIM/bimcommands/BimPanel.py +++ b/src/Mod/BIM/bimcommands/BimPanel.py @@ -29,7 +29,19 @@ import FreeCADGui QT_TRANSLATE_NOOP = FreeCAD.Qt.QT_TRANSLATE_NOOP translate = FreeCAD.Qt.translate -PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") + + +# Description l w t + +Presets = [None, + ["Plywood 12mm, 1220 x 2440",1220,2440,12], + ["Plywood 15mm, 1220 x 2440",1220,2440,15], + ["Plywood 18mm, 1220 x 2440",1220,2440,18], + ["Plywood 25mm, 1220 x 2440",1220,2440,25], + ["MDF 3mm, 900 x 600", 900, 600, 3], + ["MDF 6mm, 900 x 600", 900, 600, 6], + ["OSB 18mm, 1220 x 2440", 1220,2440,18], + ] class Arch_Panel: @@ -52,6 +64,7 @@ class Arch_Panel: import WorkingPlane import Draft + import draftguitools.gui_trackers as DraftTrackers from draftutils import params self.Length = params.get_param_arch("PanelLength") self.Width = params.get_param_arch("PanelWidth") @@ -89,6 +102,7 @@ class Arch_Panel: "this function is called by the snapper when it has a 3D point" + import DraftVecUtils self.tracker.finalize() if point is None: return @@ -113,6 +127,7 @@ class Arch_Panel: "sets up a taskbox widget" + from draftutils import params from PySide import QtCore, QtGui w = QtGui.QWidget() ui = FreeCADGui.UiLoader() @@ -191,19 +206,19 @@ class Arch_Panel: def setWidth(self,d): from draftutils import params - self.Width = d + self.Width = d.Value params.set_param_arch("PanelWidth",d) def setThickness(self,d): from draftutils import params - self.Thickness = d + self.Thickness = d.Value params.set_param_arch("PanelThickness",d) def setLength(self,d): from draftutils import params - self.Length = d + self.Length = d.Value params.set_param_arch("PanelLength",d) def setContinue(self,i): @@ -415,7 +430,7 @@ class NestTaskPanel: self.form.progressBar.setValue(value) def start(self): - + from PySide import QtGui import ArchNesting self.clearTemps() @@ -465,12 +480,12 @@ class Arch_PanelGroup: def GetCommands(self): return tuple(['Arch_Panel','Arch_Panel_Cut','Arch_Panel_Sheet','Arch_Nest']) - + def GetResources(self): return { 'MenuText': QT_TRANSLATE_NOOP("Arch_PanelTools",'Panel tools'), 'ToolTip': QT_TRANSLATE_NOOP("Arch_PanelTools",'Panel tools') } - + def IsActive(self): v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph") return v From eaa67e1bfea3947f6eb0ce3bc5504e682ac00fac Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:27:47 +0200 Subject: [PATCH 16/54] Draft: _get_shapes in shape2dview.py did not handle null shapes (#14646) Null shapes do not have a ShapeType (strange IMO). The function did not take that into account. Forum topic: https://forum.freecad.org/viewtopic.php?t=88397 --- src/Mod/Draft/draftobjects/shape2dview.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Mod/Draft/draftobjects/shape2dview.py b/src/Mod/Draft/draftobjects/shape2dview.py index 8b7c9a363d..faed945a8c 100644 --- a/src/Mod/Draft/draftobjects/shape2dview.py +++ b/src/Mod/Draft/draftobjects/shape2dview.py @@ -198,6 +198,8 @@ class Shape2DView(DraftObject): def _get_shapes(self, shape, onlysolids=False): if onlysolids: return shape.Solids + if shape.isNull(): + return [] if shape.ShapeType == "Compound": return shape.SubShapes return [shape.copy()] From 1c865c0f95a6bcead79f3c73f188e44989d70b44 Mon Sep 17 00:00:00 2001 From: Furgo <148809153+furgo16@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:31:29 +0200 Subject: [PATCH 17/54] Draft toggle grid as a toggle button to indicate grid visibility (#14452) Makes the button for the Draft_ToggleGrid command act as a real toggle button to provide visual feedback of the grid visibility state. --------- Co-authored-by: Syres916 <46537884+Syres916@users.noreply.github.com> --- src/Mod/BIM/InitGui.py | 44 ++++---- src/Mod/Draft/CMakeLists.txt | 1 + src/Mod/Draft/InitGui.py | 4 + src/Mod/Draft/draftutils/grid_observer.py | 117 ++++++++++++++++++++++ 4 files changed, 145 insertions(+), 21 deletions(-) create mode 100644 src/Mod/Draft/draftutils/grid_observer.py diff --git a/src/Mod/BIM/InitGui.py b/src/Mod/BIM/InitGui.py index 98e23d4487..cab80aaca2 100644 --- a/src/Mod/BIM/InitGui.py +++ b/src/Mod/BIM/InitGui.py @@ -30,10 +30,10 @@ import Arch_rc class BIMWorkbench(Workbench): def __init__(self): - + def QT_TRANSLATE_NOOP(context, text): return text - + bdir = os.path.join(FreeCAD.getResourceDir(), "Mod", "BIM") tt = QT_TRANSLATE_NOOP("BIM","The BIM workbench is used to model buildings") self.__class__.MenuText = QT_TRANSLATE_NOOP("BIM", "BIM") @@ -46,10 +46,10 @@ class BIMWorkbench(Workbench): # add translations and icon paths FreeCADGui.addIconPath(":/icons") FreeCADGui.addLanguagePath(":/translations") - + # Create menus and toolbars self.createTools() - + # Load Arch & Draft preference pages self.loadPreferences() @@ -58,7 +58,7 @@ class BIMWorkbench(Workbench): def createTools(self): - + "Create tolbars and menus" def QT_TRANSLATE_NOOP(context, text): @@ -130,7 +130,7 @@ class BIMWorkbench(Workbench): "Arch_Equipment", "Arch_Rebar", ] - + self.generictools = [ "Arch_Profile", "BIM_Box", @@ -237,9 +237,9 @@ class BIMWorkbench(Workbench): "BIM_Nudge_Extend", "BIM_Nudge_Shrink", ] - + # append BIM snaps - + from draftutils import init_tools self.snapbar = init_tools.get_draft_snap_commands() self.snapmenu = self.snapbar + [ @@ -247,9 +247,9 @@ class BIMWorkbench(Workbench): "BIM_SetWPFront", "BIM_SetWPSide", ] - + # create generic tools command - + class BIM_GenericTools: def __init__(self, tools): self.tools = tools @@ -392,7 +392,7 @@ class BIMWorkbench(Workbench): for c in FastenerBase.FSGetCommands("screws") if not isinstance(c, tuple) ] - + # load nativeifc tools ifctools = ifc_commands.get_commands() @@ -493,15 +493,17 @@ class BIMWorkbench(Workbench): from DraftGui import todo import BimStatusBar from nativeifc import ifc_observer - + from draftutils import grid_observer + PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") if hasattr(FreeCADGui, "draftToolBar"): FreeCADGui.draftToolBar.Activated() if hasattr(FreeCADGui, "Snapper"): FreeCADGui.Snapper.show() - if hasattr(WorkingPlane, "_view_observer_start"): - WorkingPlane._view_observer_start() + WorkingPlane._view_observer_start() + grid_observer._view_observer_setup() + if PARAMS.GetBool("FirstTime", True) and (not hasattr(FreeCAD, "TestEnvironment")): todo.delay(FreeCADGui.runCommand, "BIM_Welcome") todo.delay(BimStatusBar.setStatusIcons, True) @@ -543,10 +545,10 @@ class BIMWorkbench(Workbench): w.toggleViewAction().setVisible(True) self.setupMultipleObjectSelection() - + # add NativeIFC document observer ifc_observer.add_observer() - + # adding a Help menu manipulator # https://github.com/FreeCAD/FreeCAD/pull/10933 class BIM_WBManipulator: @@ -565,13 +567,14 @@ class BIMWorkbench(Workbench): def Deactivated(self): - + from DraftGui import todo import BimStatusBar from bimcommands import BimViews import WorkingPlane from nativeifc import ifc_observer - + from draftutils import grid_observer + PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") if hasattr(self, "BimSelectObserver"): @@ -582,9 +585,8 @@ class BIMWorkbench(Workbench): FreeCADGui.draftToolBar.Deactivated() if hasattr(FreeCADGui, "Snapper"): FreeCADGui.Snapper.hide() - - if hasattr(WorkingPlane, "_view_observer_stop"): - WorkingPlane._view_observer_stop() + WorkingPlane._view_observer_stop() + grid_observer._view_observer_setup() # print("Deactivating status icon") todo.delay(BimStatusBar.setStatusIcons, False) diff --git a/src/Mod/Draft/CMakeLists.txt b/src/Mod/Draft/CMakeLists.txt index ec4d748304..3a70b64b33 100644 --- a/src/Mod/Draft/CMakeLists.txt +++ b/src/Mod/Draft/CMakeLists.txt @@ -79,6 +79,7 @@ SET(Draft_utilities draftutils/translate.py draftutils/messages.py draftutils/README.md + draftutils/grid_observer.py ) SET(Draft_functions diff --git a/src/Mod/Draft/InitGui.py b/src/Mod/Draft/InitGui.py index 8ed333f87a..72b2b09e0f 100644 --- a/src/Mod/Draft/InitGui.py +++ b/src/Mod/Draft/InitGui.py @@ -155,6 +155,8 @@ class DraftWorkbench(FreeCADGui.Workbench): dsb.show_draft_statusbar() import WorkingPlane WorkingPlane._view_observer_start() # Updates the draftToolBar when switching views. + from draftutils import grid_observer + grid_observer._view_observer_setup() FreeCAD.Console.PrintLog("Draft workbench activated.\n") def Deactivated(self): @@ -167,6 +169,8 @@ class DraftWorkbench(FreeCADGui.Workbench): dsb.hide_draft_statusbar() import WorkingPlane WorkingPlane._view_observer_stop() + from draftutils import grid_observer + grid_observer._view_observer_setup() FreeCAD.Console.PrintLog("Draft workbench deactivated.\n") def ContextMenu(self, recipient): diff --git a/src/Mod/Draft/draftutils/grid_observer.py b/src/Mod/Draft/draftutils/grid_observer.py new file mode 100644 index 0000000000..b873810393 --- /dev/null +++ b/src/Mod/Draft/draftutils/grid_observer.py @@ -0,0 +1,117 @@ +# *************************************************************************** +# * * +# * Copyright (c) 2024 Syres * +# * Copyright (c) 2024 Furgo * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +"""Provide the grid observer for the Draft and BIM workbenches. +""" + +import FreeCAD + + +# View observer code to update the Draft_ToggleGrid command button to reflect +# the grid's visibility status. +# Based on view observer code to update the Draft Tray. +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtWidgets + from draftutils import gui_utils + from draftutils.todo import ToDo + + def _update_grid_gui(): + """Update function executed by the callback to refresh the Toggle Grid + button state on all toolbars and menus. + """ + + try: + # Get the active view. + view = gui_utils.get_3d_view() + + # If the active view is not a 3D view, uncheck the button. + if view is None: + _set_grid_button_state(False) + return + + # Otherwise, if there is a view, update the button's checked state. + + # Retrieve the associated grid for each MDI document. + # [1] is the index where the grid is stored in the + # trackers list. See setTrackers(). + view_idx = FreeCADGui.Snapper.trackers[0].index(view) + grid = FreeCADGui.Snapper.trackers[1][view_idx] + if grid.Visible: + _set_grid_button_state(True) + else: + _set_grid_button_state(False) + + except Exception: + pass + + def _view_observer_callback(): + """Callback function to update the Toggle Grid button. + + The update will only happen if either the Draft or BIM + workbenches are active. + """ + + ToDo.delay(_update_grid_gui, None) + + _view_observer_active = False + + def _view_observer_setup(): + """Start or stop the grid observer. + + Start: it is intended to happen when either the Draft or BIM workbench + are activated. The _view_observer_callback is connected to Qt's + subWindowActivated signal. The MDI area emits the subWindowActivated() + signal when the active window changes. + + Stop: This happens when either the Draft or BIM workbenches are + deactivated and is the reverse of the start operation. + """ + + mw = FreeCADGui.getMainWindow() + mdi = mw.findChild(QtWidgets.QMdiArea) + global _view_observer_active + if not _view_observer_active: + # Connect callback to subWindowActivated signal + mdi.subWindowActivated.connect(_view_observer_callback) + _view_observer_active = True + # Trigger initial grid button update + _view_observer_callback() + else: + mdi.subWindowActivated.disconnect(_view_observer_callback) + _view_observer_active = False + + def _set_grid_button_state(button_check): + """Sets the checked state of the Draft_ToggleGrid command. + This is then reflected on the associated "Toggle Grid" buttons of every + toolbar and menu. + + Args: + button_check (bool): if True, check the grid button. + + Returns: + None + """ + + action = FreeCADGui.Command.get("Draft_ToggleGrid").getAction()[0] + action.setCheckable(True) + action.setChecked(button_check) From b6f7fe892347d98438d700f05743014b3cdcfa66 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 13 Jun 2024 10:58:05 +0200 Subject: [PATCH 18/54] Sketcher: - Give focus to the MDI so that keyboard events are caught after starting edit. Else pressing ESC right after starting edit will not be caught to exit edit mode. - After tool handler is purged, give back focus to MDI to make sure VPSketch receive the keyboard event. Else if user start a tool, dismiss it with ESC, then press ESC again to exit edit mode it won't be detected. --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 2a2282fa91..404309ae82 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -632,8 +632,7 @@ void ViewProviderSketch::activateHandler(DrawSketchHandler* newHandler) // make sure receiver has focus so immediately pressing Escape will be handled by // ViewProviderSketch::keyPressed() and dismiss the active handler, and not the entire // sketcher editor - Gui::MDIView* mdi = Gui::Application::Instance->activeDocument()->getActiveView(); - mdi->setFocus(); + ensureFocus(); } void ViewProviderSketch::deactivateHandler() @@ -660,6 +659,9 @@ void ViewProviderSketch::purgeHandler() viewer = static_cast(view)->getViewer(); viewer->setSelectionEnabled(false); } + + // Give back the focus to the MDI to make sure VPSketch receive keyboard events. + ensureFocus(); } void ViewProviderSketch::setAxisPickStyle(bool on) @@ -700,9 +702,8 @@ void ViewProviderSketch::moveCursorToSketchPoint(Base::Vector2d point) void ViewProviderSketch::ensureFocus() { - Gui::MDIView* mdi = Gui::Application::Instance->activeDocument()->getActiveView(); - mdi->setFocus(); + mdi->setFocus(); } void ViewProviderSketch::preselectAtPoint(Base::Vector2d point) @@ -3140,6 +3141,10 @@ bool ViewProviderSketch::setEdit(int ModNum) Workbench::enterEditMode(); + // Give focus to the MDI so that keyboard events are caught after starting edit. + // Else pressing ESC right after starting edit will not be caught to exit edit mode. + ensureFocus(); + return true; } From 0830360e1f1908a946b9542c5ea4174e380513b0 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 13 Jun 2024 10:13:59 +0200 Subject: [PATCH 19/54] Sketcher: Fix circle diameter OVP --- .../Sketcher/Gui/DrawSketchHandlerCircle.h | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h index c9028a13cf..e7a5310acc 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h @@ -511,22 +511,22 @@ void DSHCircleController::adaptParameters(Base::Vector2d onSketchPos) case SelectMode::SeekSecond: { if (handler->constructionMethod() == DrawSketchHandlerCircle::ConstructionMethod::Center) { - if (!onViewParameters[OnViewParameter::Third]->isSet) { - ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( - "User parameter:BaseApp/Preferences/Mod/Sketcher/dimensioning"); - bool dimensioningDiameter = hGrp->GetBool("DimensioningDiameter", true); - bool dimensioningRadius = hGrp->GetBool("DimensioningRadius", true); + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Mod/Sketcher/dimensioning"); + bool dimDiameter = hGrp->GetBool("DimensioningDiameter", true); + bool dimRadius = hGrp->GetBool("DimensioningRadius", true); + bool useRadius = dimRadius && !dimDiameter; - if (dimensioningRadius && !dimensioningDiameter) { - setOnViewParameterValue(OnViewParameter::Third, handler->radius); - } - else { - setOnViewParameterValue(OnViewParameter::Third, handler->radius * 2); - } + if (!onViewParameters[OnViewParameter::Third]->isSet) { + double val = handler->radius * (useRadius ? 1 : 2); + setOnViewParameterValue(OnViewParameter::Third, val); } Base::Vector3d start = toVector3d(handler->centerPoint); Base::Vector3d end = toVector3d(onSketchPos); + if (!useRadius) { + start = toVector3d(handler->centerPoint - (onSketchPos - handler->centerPoint)); + } onViewParameters[OnViewParameter::Third]->setPoints(start, end); } From 526e6c5a62ea0aecd74931160fc366142dfa74f8 Mon Sep 17 00:00:00 2001 From: wandererfan Date: Wed, 12 Jun 2024 18:25:59 -0400 Subject: [PATCH 20/54] [TD]remove spurious error messages --- src/Mod/TechDraw/App/DrawViewPart.cpp | 7 ++++++- src/Mod/TechDraw/App/Geometry.cpp | 16 ++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewPart.cpp b/src/Mod/TechDraw/App/DrawViewPart.cpp index 9e39ce5af5..544ef9837f 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.cpp +++ b/src/Mod/TechDraw/App/DrawViewPart.cpp @@ -387,7 +387,12 @@ void DrawViewPart::onHlrFinished() m_tempGeometryObject = nullptr; //superfluous? } if (!geometryObject) { - throw Base::RuntimeError("DrawViewPart has lost its geometry"); + throw Base::RuntimeError("DrawViewPart has lost its geometry object"); + } + + if (!hasGeometry()) { + Base::Console().Error("TechDraw did not retrieve any geometry for %s/%s\n", + getNameInDocument(), Label.getValue()); } //the last hlr related task is to make a bbox of the results diff --git a/src/Mod/TechDraw/App/Geometry.cpp b/src/Mod/TechDraw/App/Geometry.cpp index d8fe538f30..749ba0d4ee 100644 --- a/src/Mod/TechDraw/App/Geometry.cpp +++ b/src/Mod/TechDraw/App/Geometry.cpp @@ -532,7 +532,7 @@ BaseGeomPtr BaseGeom::baseFactory(TopoDS_Edge edge) BSplinePtr bspline = std::make_shared(edge); if (bspline->isLine()) { result = std::make_shared(edge); - } else { + } else if (bspline->isCircle()) { circEdge = bspline->asCircle(isArc); if (!circEdge.IsNull()) { if (isArc) { @@ -540,20 +540,20 @@ BaseGeomPtr BaseGeom::baseFactory(TopoDS_Edge edge) } else { result = std::make_shared(circEdge); } - } else { -// Base::Console().Message("Geom::baseFactory - circEdge is Null\n"); - result = bspline; - } + } + } else { +// Base::Console().Message("Geom::baseFactory - circEdge is Null\n"); + result = bspline; } break; } catch (const Standard_Failure& e) { - Base::Console().Error("Geom::baseFactory - OCC error - %s - while making spline\n", + Base::Console().Log("Geom::baseFactory - OCC error - %s - while making spline\n", e.GetMessageString()); break; } catch (...) { - Base::Console().Error("Geom::baseFactory - unknown error occurred while making spline\n"); + Base::Console().Log("Geom::baseFactory - unknown error occurred while making spline\n"); break; } break; } // end bspline case @@ -1593,7 +1593,7 @@ bool GeometryUtils::getCircleParms(TopoDS_Edge occEdge, double& radius, Base::Ve sumCenter += DrawUtil::toVector3d(curveCenter); } catch (Standard_Failure&) { - Base::Console().Error("OCC error. Could not interpret BSpline as Circle\n"); + // Base::Console().Error("OCC error. Could not interpret BSpline as Circle\n"); return false; } Base::Vector3d avgCenter = sumCenter/testCount; From 9aeeeb61fd354e25431bcc9c15eb8c1b8bcdd0eb Mon Sep 17 00:00:00 2001 From: wandererfan Date: Thu, 13 Jun 2024 09:54:57 -0400 Subject: [PATCH 21/54] [TD]disable crop fields if crop not checked --- src/Mod/TechDraw/Gui/TaskActiveView.cpp | 14 ++++++++++++++ src/Mod/TechDraw/Gui/TaskActiveView.h | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/src/Mod/TechDraw/Gui/TaskActiveView.cpp b/src/Mod/TechDraw/Gui/TaskActiveView.cpp index bcd2c7b657..e0a438706e 100644 --- a/src/Mod/TechDraw/Gui/TaskActiveView.cpp +++ b/src/Mod/TechDraw/Gui/TaskActiveView.cpp @@ -62,6 +62,7 @@ TaskActiveView::TaskActiveView(TechDraw::DrawPage* pageFeat) ui->qsbHeight->setUnit(Base::Unit::Length); setUiPrimary(); + connect(ui->cbCrop, &QCheckBox::clicked, this, &TaskActiveView::onCropChanged); } TaskActiveView::~TaskActiveView() {} @@ -84,6 +85,8 @@ void TaskActiveView::setUiPrimary() { // Base::Console().Message("TAV::setUiPrimary()\n"); setWindowTitle(QObject::tr("ActiveView to TD View")); + ui->cbCrop->setChecked(false); + enableCrop(false); } void TaskActiveView::blockButtons(bool b) { Q_UNUSED(b); } @@ -220,6 +223,17 @@ TechDraw::DrawViewImage* TaskActiveView::createActiveView() return newImg; } +void TaskActiveView::onCropChanged() +{ + enableCrop(ui->cbCrop->isChecked()); +} + +void TaskActiveView::enableCrop(bool state) +{ + ui->qsbHeight->setEnabled(state); + ui->qsbWidth->setEnabled(state); +} + //****************************************************************************** void TaskActiveView::saveButtons(QPushButton* btnOK, QPushButton* btnCancel) diff --git a/src/Mod/TechDraw/Gui/TaskActiveView.h b/src/Mod/TechDraw/Gui/TaskActiveView.h index b07bff267d..556598440b 100644 --- a/src/Mod/TechDraw/Gui/TaskActiveView.h +++ b/src/Mod/TechDraw/Gui/TaskActiveView.h @@ -70,6 +70,10 @@ protected: void setUiPrimary(void); TechDraw::DrawViewImage* createActiveView(); + void enableCrop(bool state); + +private Q_SLOTS: + void onCropChanged(); private: std::unique_ptr ui; @@ -80,6 +84,7 @@ private: QPushButton* m_btnOK; QPushButton* m_btnCancel; + }; From 5594d23b5aa2d95187a7294660dbc57f1732018d Mon Sep 17 00:00:00 2001 From: wandererfan Date: Thu, 13 Jun 2024 11:36:13 -0400 Subject: [PATCH 22/54] [TD]fix ActiveView image size --- src/Mod/TechDraw/Gui/Grabber3d.cpp | 8 +------- src/Mod/TechDraw/Gui/TaskActiveView.cpp | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/Mod/TechDraw/Gui/Grabber3d.cpp b/src/Mod/TechDraw/Gui/Grabber3d.cpp index 85c8139352..d370c70bfb 100644 --- a/src/Mod/TechDraw/Gui/Grabber3d.cpp +++ b/src/Mod/TechDraw/Gui/Grabber3d.cpp @@ -55,14 +55,8 @@ void Grabber3d::quickView(View3DInventor* view3d, Base::Console().Warning("G3d::quickView - could not create viewer - returning\n"); return; } - //figure out the size of the active MdiView - SbViewportRegion vport(viewer->getSoRenderManager()->getViewportRegion()); - SbVec2s vpSize = vport.getViewportSizePixels(); - short width; - short height; - vpSize.getValue(width, height); int samples = 8; //magic number from Gui::View3DInventorViewer - viewer->savePicture(width, height, samples, bgColor, image); + viewer->savePicture(image.width(), image.height(), samples, bgColor, image); } diff --git a/src/Mod/TechDraw/Gui/TaskActiveView.cpp b/src/Mod/TechDraw/Gui/TaskActiveView.cpp index e0a438706e..75147a4d14 100644 --- a/src/Mod/TechDraw/Gui/TaskActiveView.cpp +++ b/src/Mod/TechDraw/Gui/TaskActiveView.cpp @@ -45,12 +45,16 @@ #include "ui_TaskActiveView.h" #include "Grabber3d.h" #include "ViewProviderImage.h" +#include "Rez.h" using namespace Gui; using namespace TechDraw; using namespace TechDrawGui; +constexpr int SXGAWidth{1280}; +constexpr int SXGAHeight{1024}; + //ctor for creation TaskActiveView::TaskActiveView(TechDraw::DrawPage* pageFeat) : ui(new Ui_TaskActiveView), m_pageFeat(pageFeat), m_imageFeat(nullptr), m_btnOK(nullptr), @@ -87,6 +91,9 @@ void TaskActiveView::setUiPrimary() setWindowTitle(QObject::tr("ActiveView to TD View")); ui->cbCrop->setChecked(false); enableCrop(false); + // cropping is in mm, but image size is in pixels/scene units + ui->qsbWidth->setValue(Rez::appX(SXGAWidth)); + ui->qsbHeight->setValue(Rez::appX(SXGAHeight)); } void TaskActiveView::blockButtons(bool b) { Q_UNUSED(b); } @@ -183,9 +190,15 @@ TechDraw::DrawViewImage* TaskActiveView::createActiveView() bg = QColor(Qt::transparent); } - QImage image(100, 100, - QImage::Format_RGB32); //arbitrary initial image size. quickView will use - //MdiView size in pixels + int imageWidth{SXGAWidth}; + int imageHeight{SXGAHeight}; + if (ui->cbCrop->isChecked()) { + imageWidth = Rez::guiX(ui->qsbWidth->rawValue()); + imageHeight = Rez::guiX(ui->qsbHeight->rawValue()); + } + + QImage image(imageWidth, imageHeight, + QImage::Format_RGB32); //arbitrary initial image size. image.fill(QColor(Qt::transparent)); Grabber3d::quickView(view3d, bg, image); bool success = image.save(Base::Tools::fromStdString(tempName)); From 7a80632a4e6326d3507a985626f0fdaef1dee66e Mon Sep 17 00:00:00 2001 From: MisterMaker Date: Fri, 14 Jun 2024 05:13:05 +0200 Subject: [PATCH 23/54] Default stylesheets revision + clean-up (#13772) * Added the new QSS file with images Added the new QSS file with images * fixed some disabled colors to be the same everywhere. * update * big update fixed the scrollbars and lots more. * small tweaks * small fixes * fixed groupbox in qsint * Added light classic This light theme is basicallyt exactly no-stylesheet. * fixed the tabs * fixed background reportview * updated overlay stylesheets * Added preference settings from Opentheme @obelisk79 * tabbar tweaks * forgot the gradients on dark * Overlay stylesheets clean-up +move icon to folder. * removing old stylesheets removing old stylesheets * it was icons not icon, fixed it. * updated cmake and package.xml * to many spaces * removing old theme's * updated default overlay qss * removed my settings files * updated cfg files * Bunch of fixes I compiled it and didn't see any issues anymore. Could be some discussions about the new startpage thumbnails. * fixed up double arrows and the correct logo! * updated the work file for the icons * Sets no-stylesheet overlay to a stylesheet. * type in cmakelist * type in filename * oeps did set the dark theme * Update OverlayManager.cpp I removed a bit to much reverting this line * fixed text color issue in Qsint on the light theme and dark background * Update Light Theme + Dark Background.qss Fine tuning the treeview it now works good for ligth theme and dark brackgrounds. * removed prodark added back Behave dark overlay @Syres916 I deleted the overlay qss behave dark by accident. But you might want to check this PR out since it changes a lot. I deleted Pro-dark since it was not updated and is outdated and it looks also a lot like the default dark. * Update Light Theme + Light Background.qss Fixes * small fixes small fixes * remove ProDark * Update CMakeLists.txt * changed the thumbnails Also removed teh dimensions in the filename since that got annoying real fast :) * Updated other overlay stylesheets * missing extension * cleanup and some fixes to the overlay. * Update Dark Theme + Light Background.qss udpated the dark theme overaly with light background for all you maniacs who use this. * Title bar fix for windows This makes it so that it uses black title bar in windows if you have dark mode * updated white background and some colors * I think I fix merge issue now. * Some cleanup on the thumbnails * Create CMakePresets.json * idk * trying to fix conflicts * removing old themes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Some fixes for Qsint sketcher toolbars icons * fixed merge issue with maingui * trying to fix merge conflicts * and removing again. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- src/Gui/CommandView.cpp | 34 +- src/Gui/OverlayManager.cpp | 109 +- src/Gui/OverlayWidgets.cpp | 16 +- src/Gui/PreferencePacks/CMakeLists.txt | 9 +- .../Dark contrast/Dark contrast.cfg | 96 - .../Dark modern/Dark modern.cfg | 97 - .../PreferencePacks/Dark theme/Dark theme.cfg | 188 + src/Gui/PreferencePacks/Dark/Dark.cfg | 97 - src/Gui/PreferencePacks/Darker/Darker.cfg | 97 - .../Light modern/Light modern.cfg | 63 - .../Light theme/Light theme.cfg | 217 + src/Gui/PreferencePacks/Light/Light.cfg | 63 - src/Gui/PreferencePacks/ProDark/ProDark.cfg | 96 - src/Gui/PreferencePacks/package.xml | 80 +- src/Gui/Stylesheets/CMakeLists.txt | 79 +- .../{Darker.qss => Dark theme.qss} | 1285 +++--- src/Gui/Stylesheets/Dark-contrast.qss | 2369 ----------- src/Gui/Stylesheets/Dark-modern.qss | 2742 ------------ .../Stylesheets/{Dark.qss => Light theme.qss} | 1461 ++++--- src/Gui/Stylesheets/Light-modern.qss | 2692 ------------ src/Gui/Stylesheets/Light.qss | 2674 ------------ src/Gui/Stylesheets/ProDark.qss | 2583 ----------- .../Arrow-double-LeftRight-black.png | Bin 0 -> 1447 bytes .../Arrow-double-LeftRight-blue.png | Bin 0 -> 1386 bytes .../Arrow-double-LeftRight-darkgray.png | Bin 0 -> 1680 bytes .../Arrow-double-LeftRight-lightgray.png | Bin 0 -> 1207 bytes .../Arrow-double-LeftRight-white.png | Bin 0 -> 1169 bytes .../Arrow-double-UpDown-black.png | Bin 0 -> 1012 bytes .../Arrow-double-UpDown-blue.png | Bin 0 -> 942 bytes .../Arrow-double-UpDown-darkgray.png | Bin 0 -> 1015 bytes .../Arrow-double-UpDown-lightgray.png | Bin 0 -> 930 bytes .../Arrow-double-UpDown-white.png | Bin 0 -> 921 bytes .../images_classic/Arrow-down-black.png | Bin 0 -> 581 bytes .../images_classic/Arrow-down-blue.png | Bin 0 -> 593 bytes .../images_classic/Arrow-down-darkgray.png | Bin 0 -> 585 bytes .../images_classic/Arrow-down-lightgray.png | Bin 0 -> 590 bytes .../images_classic/Arrow-down-white.png | Bin 0 -> 578 bytes .../images_classic/Arrow-left-black.png | Bin 0 -> 650 bytes .../images_classic/Arrow-left-blue.png | Bin 0 -> 672 bytes .../images_classic/Arrow-left-darkgray.png | Bin 0 -> 659 bytes .../images_classic/Arrow-left-lightgray.png | Bin 0 -> 656 bytes .../images_classic/Arrow-left-white.png | Bin 0 -> 662 bytes .../images_classic/Arrow-leftDown-blue.png | Bin 0 -> 527 bytes .../Arrow-leftDown-darkgray.png | Bin 0 -> 523 bytes .../Arrow-leftDown-lightgray.png | Bin 0 -> 535 bytes .../images_classic/Arrow-leftDown-white.png | Bin 0 -> 520 bytes .../images_classic/Arrow-leftDown.png | Bin 0 -> 521 bytes .../images_classic/Arrow-right-black.png | Bin 0 -> 616 bytes .../images_classic/Arrow-right-blue.png | Bin 0 -> 629 bytes .../images_classic/Arrow-right-darkgray.png | Bin 0 -> 619 bytes .../images_classic/Arrow-right-lightgray.png | Bin 0 -> 633 bytes .../images_classic/Arrow-right-white.png | Bin 0 -> 612 bytes .../images_classic/Arrow-rightDown-black.png | Bin 0 -> 524 bytes .../images_classic/Arrow-rightDown-blue.png | Bin 0 -> 529 bytes .../Arrow-rightDown-darkgray.png | Bin 0 -> 526 bytes .../Arrow-rightDown-lightgray.png | Bin 0 -> 524 bytes .../images_classic/Arrow-rightDown-white.png | Bin 0 -> 538 bytes .../images_classic/Arrow-up-black.png | Bin 0 -> 534 bytes .../images_classic/Arrow-up-blue.png | Bin 0 -> 539 bytes .../images_classic/Arrow-up-darkgray.png | Bin 0 -> 536 bytes .../images_classic/Arrow-up-lightgray.png | Bin 0 -> 535 bytes .../images_classic/Arrow-up-white.png | Bin 0 -> 534 bytes .../images_classic/Check-Checked-black.png | Bin 0 -> 851 bytes .../images_classic/Check-Checked-blue.png | Bin 0 -> 864 bytes .../images_classic/Check-Checked-darkgray.png | Bin 0 -> 856 bytes .../Check-Checked-lightgray.png | Bin 0 -> 859 bytes .../images_classic/Check-Checked-white.png | Bin 0 -> 846 bytes .../Check-indeterminate-mark-black.png | Bin 0 -> 209 bytes .../Check-indeterminate-mark-darkgray.png | Bin 0 -> 211 bytes .../Check-indeterminate-mark-lightgray.png | Bin 0 -> 210 bytes .../Check-indeterminate-mark-white.png | Bin 0 -> 209 bytes .../Check-indeterminate-mark.png | Bin 0 -> 213 bytes .../images_classic/Close-DarkRed.png | Bin 0 -> 904 bytes .../images_classic/Close-lightgray.png | Bin 0 -> 1144 bytes .../images_classic/FoldOver_Blue1.png | Bin 0 -> 1755 bytes .../images_classic/FoldOver_Blue2-dark.png | Bin 0 -> 1787 bytes .../images_classic/FoldOver_Blue2.png | Bin 0 -> 1770 bytes .../Stylesheets/images_classic/Fold_Blue1.png | Bin 0 -> 1781 bytes .../images_classic/Fold_Blue2-dark.png | Bin 0 -> 1773 bytes .../Stylesheets/images_classic/Fold_Blue2.png | Bin 0 -> 1770 bytes .../images_classic/Hmovetoolbar-black.png | Bin 0 -> 1397 bytes .../images_classic/Hmovetoolbar-blue.png | Bin 0 -> 1421 bytes .../images_classic/Hmovetoolbar-darkgray.png | Bin 0 -> 1407 bytes .../images_classic/Hmovetoolbar-lightgray.png | Bin 0 -> 1406 bytes .../images_classic/Hmovetoolbar-white.png | Bin 0 -> 1402 bytes .../images_classic/Hsepartoolbar-black.png | Bin 0 -> 249 bytes .../images_classic/Hsepartoolbar-blue.png | Bin 0 -> 255 bytes .../images_classic/Hsepartoolbar-darkgray.png | Bin 0 -> 249 bytes .../Hsepartoolbar-lightgray.png | Bin 0 -> 251 bytes .../images_classic/Hsepartoolbar-white.png | Bin 0 -> 249 bytes .../images_classic/Radio-checked-black.png | Bin 0 -> 1898 bytes .../images_classic/Radio-checked-blue.png | Bin 0 -> 1912 bytes .../images_classic/Radio-checked-darkgray.png | Bin 0 -> 1911 bytes .../Radio-checked-lightgray.png | Bin 0 -> 1910 bytes .../images_classic/Radio-checked-white.png | Bin 0 -> 1871 bytes .../images_classic/Radio-unchecked-black.png | Bin 0 -> 1596 bytes .../images_classic/Radio-unchecked-blue.png | Bin 0 -> 1614 bytes .../Radio-unchecked-darkgray.png | Bin 0 -> 1600 bytes .../Radio-unchecked-lightgray.png | Bin 0 -> 1622 bytes .../images_classic/Radio-unchecked-white.png | Bin 0 -> 1589 bytes .../images_classic/UnFoldOver_Blue1.png | Bin 0 -> 1749 bytes .../images_classic/UnfoldOver_Blue2.png | Bin 0 -> 1765 bytes .../UnfoldOver_Blue2_copy_1.png | Bin 0 -> 1780 bytes .../images_classic/Unfold_Blue1.png | Bin 0 -> 1782 bytes .../images_classic/Unfold_Blue2-dark.png | Bin 0 -> 1813 bytes .../images_classic/Unfold_Blue2.png | Bin 0 -> 1805 bytes .../images_classic/Vmovetoolbar-black.png | Bin 0 -> 922 bytes .../images_classic/Vmovetoolbar-blue.png | Bin 0 -> 935 bytes .../images_classic/Vmovetoolbar-darkgray.png | Bin 0 -> 927 bytes .../images_classic/Vmovetoolbar-lightgray.png | Bin 0 -> 926 bytes .../images_classic/Vmovetoolbar-white.png | Bin 0 -> 916 bytes .../images_classic/Vsepartoolbar-black.png | Bin 0 -> 233 bytes .../images_classic/Vsepartoolbar-blue.png | Bin 0 -> 239 bytes .../images_classic/Vsepartoolbar-darkgray.png | Bin 0 -> 235 bytes .../Vsepartoolbar-lightgray.png | Bin 0 -> 234 bytes .../images_classic/Vsepartoolbar-white.png | Bin 0 -> 233 bytes .../images_classic/background_freecad.png | Bin 0 -> 17064 bytes .../background_freecad_dark.png | Bin 0 -> 13433 bytes .../background_freecad_light.png | Bin 0 -> 13092 bytes .../images_classic/checkbox-Empty-black.png | Bin 0 -> 593 bytes .../images_classic/checkbox-Empty-blue.png | Bin 0 -> 607 bytes .../checkbox-Empty-darkgray.png | Bin 0 -> 598 bytes .../checkbox-Empty-lightgray.png | Bin 0 -> 601 bytes .../images_classic/checkbox-Empty-white.png | Bin 0 -> 591 bytes .../images_classic/checkbox-checked-black.png | Bin 0 -> 1109 bytes .../images_classic/checkbox-checked-blue.png | Bin 0 -> 1128 bytes .../checkbox-checked-darkgray.png | Bin 0 -> 1118 bytes .../checkbox-checked-lightgray.png | Bin 0 -> 1117 bytes .../images_classic/checkbox-checked-white.png | Bin 0 -> 1104 bytes .../checkbox-indeterminate-black.png | Bin 0 -> 612 bytes .../checkbox-indeterminate-blue.png | Bin 0 -> 628 bytes .../checkbox-indeterminate-darkgray.png | Bin 0 -> 618 bytes .../checkbox-indeterminate-lightgray.png | Bin 0 -> 622 bytes .../checkbox-indeterminate-white.png | Bin 0 -> 608 bytes .../images_classic/close-black.png | Bin 0 -> 900 bytes .../Stylesheets/images_classic/close-blue.png | Bin 0 -> 905 bytes .../images_classic/close-darkerred.png | Bin 0 -> 904 bytes .../images_classic/close-darkgray.png | Bin 0 -> 910 bytes .../images_classic/close-lightred.png | Bin 0 -> 898 bytes .../Stylesheets/images_classic/close-red.png | Bin 0 -> 906 bytes .../images_classic/close-white.png | Bin 0 -> 883 bytes .../images_classic/icons classic.svg | 3758 +++++++++++++++++ .../images_classic/more-black-lightgray.png | Bin 0 -> 701 bytes .../Stylesheets/images_classic/more-black.png | Bin 0 -> 681 bytes .../Stylesheets/images_classic/more-blue.png | Bin 0 -> 693 bytes .../images_classic/more-darkgray.png | Bin 0 -> 683 bytes .../Stylesheets/images_classic/more-white.png | Bin 0 -> 688 bytes .../images_classic/sizegrip-black.png | Bin 0 -> 581 bytes .../images_classic/sizegrip-blue.png | Bin 0 -> 595 bytes .../images_classic/sizegrip-darkgray.png | Bin 0 -> 585 bytes .../images_classic/sizegrip-lightgray.png | Bin 0 -> 584 bytes .../images_classic/sizegrip-white.png | Bin 0 -> 608 bytes .../splitter_horizontal-black.png | Bin 0 -> 432 bytes .../splitter_horizontal-blue.png | Bin 0 -> 444 bytes .../splitter_horizontal-darkgray.png | Bin 0 -> 436 bytes .../splitter_horizontal-lightgray.png | Bin 0 -> 434 bytes .../splitter_horizontal-white.png | Bin 0 -> 429 bytes .../splitter_vertical-black.png | Bin 0 -> 894 bytes .../images_classic/splitter_vertical-blue.png | Bin 0 -> 905 bytes .../splitter_vertical-darkgray.png | Bin 0 -> 898 bytes .../splitter_vertical-lightgray.png | Bin 0 -> 897 bytes .../splitter_vertical-white.png | Bin 0 -> 893 bytes .../images_classic/transparent.png | Bin 0 -> 281 bytes .../images_classic/undock-black-lightgray.png | Bin 0 -> 795 bytes .../images_classic/undock-black.png | Bin 0 -> 788 bytes .../images_classic/undock-blue.png | Bin 0 -> 807 bytes .../images_classic/undock-darkgray.png | Bin 0 -> 796 bytes .../images_classic/undock-white.png | Bin 0 -> 787 bytes .../overlay/Dark Theme + Dark Background.qss | 152 + .../overlay/Dark Theme + Light Background.qss | 195 + .../overlay/Dark-Modern_overlay.qss | 102 - src/Gui/Stylesheets/overlay/Dark-Outline.qss | 190 - src/Gui/Stylesheets/overlay/Dark-off.qss | 34 - src/Gui/Stylesheets/overlay/Dark.qss | 158 - ...ker_overlay.qss => DarkBehave_overlay.qss} | 0 src/Gui/Stylesheets/overlay/Dark_overlay.qss | 102 - .../Default_Dark-theme_Light-background.qss | 209 - .../Default_Dark-theme_dark-background.qss | 209 - .../Default_Light-theme_dark-background.qss | 209 - .../Default_Light-theme_light-background.qss | 227 - .../overlay/Light Theme + Dark Background.qss | 205 + .../Light Theme + Light Background.qss | 151 + .../overlay/Light-Modern_overlay.qss | 107 - src/Gui/Stylesheets/overlay/Light-Outline.qss | 183 - src/Gui/Stylesheets/overlay/Light-off.qss | 33 - src/Gui/Stylesheets/overlay/Light.qss | 155 - src/Gui/Stylesheets/overlay/Light_overlay.qss | 107 - .../overlay/{ => icons}/autohide.svg | 0 .../Stylesheets/overlay/{ => icons}/close.svg | 0 .../overlay/{ => icons}/close_light.svg | 0 .../overlay/{ => icons}/close_lighter.svg | 0 .../overlay/{ => icons}/close_red.svg | 0 .../overlay/{ => icons}/edithide.svg | 0 .../overlay/{ => icons}/editshow.svg | 0 .../Stylesheets/overlay/{ => icons}/float.svg | 0 .../overlay/{ => icons}/float_light.svg | 0 .../overlay/{ => icons}/float_lighter.svg | 0 .../Stylesheets/overlay/{ => icons}/mode.svg | 0 .../overlay/{ => icons}/mode_light.svg | 0 .../overlay/{ => icons}/mode_lighter.svg | 0 .../overlay/{ => icons}/overlay.svg | 0 .../overlay/{ => icons}/overlay_light.svg | 0 .../overlay/{ => icons}/overlay_lighter.svg | 0 .../overlay/{ => icons}/taskshow.svg | 0 .../overlay/{ => icons}/taskshow_light.svg | 0 .../overlay/{ => icons}/transparent.svg | 0 .../overlay/{ => icons}/transparent_light.svg | 0 .../{ => icons}/transparent_lighter.svg | 0 src/Main/MainGui.cpp | 3 + src/Mod/Start/Gui/CMakeLists.txt | 6 +- src/Mod/Start/Gui/Resources/Start.qrc | 6 +- .../Gui/Resources/thumbnails/Classic512.png | Bin 44994 -> 0 bytes .../Gui/Resources/thumbnails/OpenDark512.png | Bin 52140 -> 0 bytes .../Gui/Resources/thumbnails/OpenLight512.png | Bin 57237 -> 0 bytes .../thumbnails/Theme_thumbnail_classic.png | Bin 0 -> 17565 bytes .../thumbnails/Theme_thumbnail_dark.png | Bin 0 -> 7192 bytes .../thumbnails/Theme_thumbnail_light.png | Bin 0 -> 8523 bytes .../thumbnails/Thumbnails_themes.svg | 2845 +++++++++++++ src/Mod/Start/Gui/ThemeSelectorWidget.cpp | 22 +- src/Mod/Start/Gui/ThemeSelectorWidget.h | 4 +- 220 files changed, 9327 insertions(+), 17192 deletions(-) delete mode 100644 src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg delete mode 100644 src/Gui/PreferencePacks/Dark modern/Dark modern.cfg create mode 100644 src/Gui/PreferencePacks/Dark theme/Dark theme.cfg delete mode 100644 src/Gui/PreferencePacks/Dark/Dark.cfg delete mode 100644 src/Gui/PreferencePacks/Darker/Darker.cfg delete mode 100644 src/Gui/PreferencePacks/Light modern/Light modern.cfg create mode 100644 src/Gui/PreferencePacks/Light theme/Light theme.cfg delete mode 100644 src/Gui/PreferencePacks/Light/Light.cfg delete mode 100644 src/Gui/PreferencePacks/ProDark/ProDark.cfg rename src/Gui/Stylesheets/{Darker.qss => Dark theme.qss} (68%) delete mode 100644 src/Gui/Stylesheets/Dark-contrast.qss delete mode 100644 src/Gui/Stylesheets/Dark-modern.qss rename src/Gui/Stylesheets/{Dark.qss => Light theme.qss} (66%) delete mode 100644 src/Gui/Stylesheets/Light-modern.qss delete mode 100644 src/Gui/Stylesheets/Light.qss delete mode 100644 src/Gui/Stylesheets/ProDark.qss create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-down-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-down-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-down-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-left-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-left-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-left-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-left-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-leftDown-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-leftDown-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-leftDown.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-right-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-right-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-right-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-right-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-rightDown-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-rightDown-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-rightDown-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-rightDown-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-rightDown-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-up-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-up-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-up-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-up-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Arrow-up-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-Checked-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-Checked-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-Checked-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-Checked-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-Checked-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Check-indeterminate-mark.png create mode 100644 src/Gui/Stylesheets/images_classic/Close-DarkRed.png create mode 100644 src/Gui/Stylesheets/images_classic/Close-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/FoldOver_Blue1.png create mode 100644 src/Gui/Stylesheets/images_classic/FoldOver_Blue2-dark.png create mode 100644 src/Gui/Stylesheets/images_classic/FoldOver_Blue2.png create mode 100644 src/Gui/Stylesheets/images_classic/Fold_Blue1.png create mode 100644 src/Gui/Stylesheets/images_classic/Fold_Blue2-dark.png create mode 100644 src/Gui/Stylesheets/images_classic/Fold_Blue2.png create mode 100644 src/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Hmovetoolbar-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Hmovetoolbar-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Hsepartoolbar-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Hsepartoolbar-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Hsepartoolbar-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-checked-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-checked-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-checked-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-checked-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-checked-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-unchecked-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-unchecked-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-unchecked-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Radio-unchecked-white.png create mode 100644 src/Gui/Stylesheets/images_classic/UnFoldOver_Blue1.png create mode 100644 src/Gui/Stylesheets/images_classic/UnfoldOver_Blue2.png create mode 100644 src/Gui/Stylesheets/images_classic/UnfoldOver_Blue2_copy_1.png create mode 100644 src/Gui/Stylesheets/images_classic/Unfold_Blue1.png create mode 100644 src/Gui/Stylesheets/images_classic/Unfold_Blue2-dark.png create mode 100644 src/Gui/Stylesheets/images_classic/Unfold_Blue2.png create mode 100644 src/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Vmovetoolbar-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Vmovetoolbar-white.png create mode 100644 src/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png create mode 100644 src/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Vsepartoolbar-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/Vsepartoolbar-white.png create mode 100644 src/Gui/Stylesheets/images_classic/background_freecad.png create mode 100644 src/Gui/Stylesheets/images_classic/background_freecad_dark.png create mode 100644 src/Gui/Stylesheets/images_classic/background_freecad_light.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-Empty-black.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-Empty-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-Empty-white.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-checked-black.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-checked-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-checked-white.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-indeterminate-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png create mode 100644 src/Gui/Stylesheets/images_classic/close-black.png create mode 100644 src/Gui/Stylesheets/images_classic/close-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/close-darkerred.png create mode 100644 src/Gui/Stylesheets/images_classic/close-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/close-lightred.png create mode 100644 src/Gui/Stylesheets/images_classic/close-red.png create mode 100644 src/Gui/Stylesheets/images_classic/close-white.png create mode 100644 src/Gui/Stylesheets/images_classic/icons classic.svg create mode 100644 src/Gui/Stylesheets/images_classic/more-black-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/more-black.png create mode 100644 src/Gui/Stylesheets/images_classic/more-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/more-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/more-white.png create mode 100644 src/Gui/Stylesheets/images_classic/sizegrip-black.png create mode 100644 src/Gui/Stylesheets/images_classic/sizegrip-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/sizegrip-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/sizegrip-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/sizegrip-white.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_horizontal-black.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_horizontal-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_horizontal-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_horizontal-white.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_vertical-black.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_vertical-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/splitter_vertical-white.png create mode 100644 src/Gui/Stylesheets/images_classic/transparent.png create mode 100644 src/Gui/Stylesheets/images_classic/undock-black-lightgray.png create mode 100644 src/Gui/Stylesheets/images_classic/undock-black.png create mode 100644 src/Gui/Stylesheets/images_classic/undock-blue.png create mode 100644 src/Gui/Stylesheets/images_classic/undock-darkgray.png create mode 100644 src/Gui/Stylesheets/images_classic/undock-white.png create mode 100644 src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss create mode 100644 src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss delete mode 100644 src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss delete mode 100644 src/Gui/Stylesheets/overlay/Dark-Outline.qss delete mode 100644 src/Gui/Stylesheets/overlay/Dark-off.qss delete mode 100644 src/Gui/Stylesheets/overlay/Dark.qss rename src/Gui/Stylesheets/overlay/{Darker_overlay.qss => DarkBehave_overlay.qss} (100%) delete mode 100644 src/Gui/Stylesheets/overlay/Dark_overlay.qss delete mode 100644 src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss delete mode 100644 src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss delete mode 100644 src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss delete mode 100644 src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss create mode 100644 src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss create mode 100644 src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss delete mode 100644 src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss delete mode 100644 src/Gui/Stylesheets/overlay/Light-Outline.qss delete mode 100644 src/Gui/Stylesheets/overlay/Light-off.qss delete mode 100644 src/Gui/Stylesheets/overlay/Light.qss delete mode 100644 src/Gui/Stylesheets/overlay/Light_overlay.qss rename src/Gui/Stylesheets/overlay/{ => icons}/autohide.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/close.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/close_light.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/close_lighter.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/close_red.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/edithide.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/editshow.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/float.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/float_light.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/float_lighter.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/mode.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/mode_light.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/mode_lighter.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/overlay.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/overlay_light.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/overlay_lighter.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/taskshow.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/taskshow_light.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/transparent.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/transparent_light.svg (100%) rename src/Gui/Stylesheets/overlay/{ => icons}/transparent_lighter.svg (100%) delete mode 100644 src/Mod/Start/Gui/Resources/thumbnails/Classic512.png delete mode 100644 src/Mod/Start/Gui/Resources/thumbnails/OpenDark512.png delete mode 100644 src/Mod/Start/Gui/Resources/thumbnails/OpenLight512.png create mode 100644 src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_classic.png create mode 100644 src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_dark.png create mode 100644 src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_light.png create mode 100644 src/Mod/Start/Gui/Resources/thumbnails/Thumbnails_themes.svg diff --git a/src/Gui/CommandView.cpp b/src/Gui/CommandView.cpp index 1355ef7c2a..f94c85f23d 100644 --- a/src/Gui/CommandView.cpp +++ b/src/Gui/CommandView.cpp @@ -926,7 +926,7 @@ void StdCmdToggleTransparency::activated(int iMsg) if (!obj) continue; - bool isGroup = dynamic_cast(obj) + bool isGroup = dynamic_cast(obj) || dynamic_cast(obj) || dynamic_cast(obj); @@ -2605,9 +2605,9 @@ private: bool prevSelectionEn; public: - // Creates a selection handler used to implement the common behaviour of BoxZoom, BoxSelection and BoxElementSelection. + // Creates a selection handler used to implement the common behaviour of BoxZoom, BoxSelection and BoxElementSelection. // Takes the viewer, a selection mode, a cursor, a function pointer to be called on success and a void pointer for user data to be passed to the given function. - // The selection handler class stores all necessary previous states, registers a event callback and starts the selection in the given mode. + // The selection handler class stores all necessary previous states, registers a event callback and starts the selection in the given mode. // If there is still a selection handler active, this call will generate a message and returns. static void Create(View3DInventorViewer* viewer, View3DInventorViewer::SelectionMode selectionMode, const QCursor& cursor, FnCb doFunction= nullptr, void* ud=nullptr) @@ -2637,8 +2637,8 @@ public: return userData; } - // Implements the event handler. In the normal case the provided function is called. - // Also supports aborting the selection mode by pressing (releasing) the Escape key. + // Implements the event handler. In the normal case the provided function is called. + // Also supports aborting the selection mode by pressing (releasing) the Escape key. static void selectionCallback(void * ud, SoEventCallback * n) { auto selectionHandler = static_cast(ud); @@ -3708,7 +3708,7 @@ StdCmdDockOverlayAll::StdCmdDockOverlayAll() void StdCmdDockOverlayAll::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleAll); } @@ -3733,7 +3733,7 @@ StdCmdDockOverlayTransparentAll::StdCmdDockOverlayTransparentAll() void StdCmdDockOverlayTransparentAll::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleTransparentAll); } @@ -3757,7 +3757,7 @@ StdCmdDockOverlayToggle::StdCmdDockOverlayToggle() void StdCmdDockOverlayToggle::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleActive); } @@ -3782,7 +3782,7 @@ StdCmdDockOverlayToggleTransparent::StdCmdDockOverlayToggleTransparent() void StdCmdDockOverlayToggleTransparent::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleTransparent); } @@ -3801,13 +3801,13 @@ StdCmdDockOverlayToggleLeft::StdCmdDockOverlayToggleLeft() sWhatsThis = "Std_DockOverlayToggleLeft"; sStatusTip = sToolTipText; sAccel = "Ctrl+Left"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleLeft::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleLeft); } @@ -3826,13 +3826,13 @@ StdCmdDockOverlayToggleRight::StdCmdDockOverlayToggleRight() sWhatsThis = "Std_DockOverlayToggleRight"; sStatusTip = sToolTipText; sAccel = "Ctrl+Right"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleRight::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleRight); } @@ -3851,13 +3851,13 @@ StdCmdDockOverlayToggleTop::StdCmdDockOverlayToggleTop() sWhatsThis = "Std_DockOverlayToggleTop"; sStatusTip = sToolTipText; sAccel = "Ctrl+Up"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleTop::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleTop); } @@ -3876,13 +3876,13 @@ StdCmdDockOverlayToggleBottom::StdCmdDockOverlayToggleBottom() sWhatsThis = "Std_DockOverlayToggleBottom"; sStatusTip = sToolTipText; sAccel = "Ctrl+Down"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleBottom::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleBottom); } diff --git a/src/Gui/OverlayManager.cpp b/src/Gui/OverlayManager.cpp index d5294315c0..051519ce0c 100644 --- a/src/Gui/OverlayManager.cpp +++ b/src/Gui/OverlayManager.cpp @@ -78,7 +78,7 @@ static inline OverlayTabWidget *findTabWidget(QWidget *widget=nullptr, bool filt widget = qApp->focusWidget(); for(auto w=widget; w; w=w->parentWidget()) { auto tabWidget = qobject_cast(w); - if(tabWidget) + if(tabWidget) return tabWidget; auto proxy = qobject_cast(w); if(proxy) @@ -95,7 +95,7 @@ public: OverlayStyleSheet() { handle = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/MainWindow"); - + update(); handle->Attach(this); @@ -146,18 +146,18 @@ private: if (overlayStyleSheet.isEmpty()) { // User did not choose any stylesheet, we need to choose one based on main stylesheet if (mainStyleSheet.contains(QStringLiteral("light"), Qt::CaseInsensitive)) { - overlayStyleSheet = QStringLiteral("overlay:Light-Outline.qss"); + overlayStyleSheet = QStringLiteral("overlay:Light Theme + Dark Background.qss"); } else { // by default FreeCAD uses somewhat dark background for 3D View. // if user has not explicitly selected light theme, the "Dark Outline" looks best - overlayStyleSheet = QStringLiteral("overlay:Dark-Outline.qss"); + overlayStyleSheet = QStringLiteral("overlay:Dark Theme + Dark Background.qss"); } } else if (!overlayStyleSheet.isEmpty() && !QFile::exists(overlayStyleSheet)) { // User did choose one of predefined stylesheets, we need to qualify it with namespace - overlayStyleSheet = QStringLiteral("overlay:%1").arg(overlayStyleSheet); - } + overlayStyleSheet = QStringLiteral("overlay:%1").arg(overlayStyleSheet); + } return overlayStyleSheet; } @@ -177,70 +177,7 @@ private: static const QString _default; }; -const QString OverlayStyleSheet::_default = QStringLiteral( - "* {alternate-background-color: rgba(250,250,250,120)}" - - "QComboBox, QComboBox:editable, QComboBox:!editable, QLineEdit," - "QTextEdit, QPlainTextEdit, QAbstractSpinBox, QDateEdit, QDateTimeEdit," - "Gui--PropertyEditor--PropertyEditor QLabel " - "{background : palette(base);}" - - "QScrollBar { background: rgba(0,0,0,10);}" - "QTabWidget::pane { background-color: transparent; border: transparent }" - "Gui--OverlayTabWidget { qproperty-effectColor: rgba(0,0,0,0) }" - "Gui--OverlayTabWidget::pane { background-color: rgba(250,250,250,80) }" - - "QTabBar {border : none;}" - "QTabBar::tab {color: palette(text);" - "background-color: rgba(100,100,100,50);" - "padding: 5px}" - "QTabBar::tab:selected {background-color: rgba(250,250,250,80);}" - "QTabBar::tab:hover {background-color: rgba(250,250,250,200);}" - - "QHeaderView { background:transparent }" - "QHeaderView::section {color: palette(text);" - "background-color: rgba(250,250,250,50);" - "border: 1px solid palette(dark);" - "padding: 2px}" - - "QTreeView, QListView, QTableView {" - "background: rgb(250,250,250);" - "border: transparent;" - "selection-background-color: rgba(94, 144, 250, 0.7);}" - "QListView::item:selected, QTreeView::item:selected {" - "background-color: rgba(94, 144, 250, 0.7);}" - - "Gui--PropertyEditor--PropertyEditor {" - "border: 1px solid palette(dark);" - "qproperty-groupTextColor: rgb(100, 100, 100);" - "qproperty-groupBackground: rgba(180, 180, 180, 0.7);}" - - "QToolTip {background-color: rgba(250,250,250,180);}" - - "Gui--TreeWidget QHeaderView:section {" - "height: 0px;" - "background-color: transparent;" - "padding: 0px;" - "border: transparent;}" - - "Gui--CallTipsList::item { background-color: rgba(200,200,200,200);}" - "Gui--CallTipsList::item::selected { background-color: palette(highlight);}" - - "QPushButton { background: rgba(250,250,250,80);padding: 2px 4px;}" - "QPushButton::hover { background: rgba(250,250,250,200);}" - "QPushButton::focus { background: rgba(250,250,250,255);}" - "QPushButton::pressed { background-color: #5e90fa;" - "border: 1px inset palette(dark) }" - "QPushButton::checked { background: rgba(100,100,100,100);" - "border: 1px inset palette(dark) }" - "QPushButton::checked:hover { background: rgba(150,150,150,200);" - "border: 1px inset palette(dark) }" - "Gui--OverlayToolButton { background: transparent; padding: 0px; border: none }" - "Gui--OverlayTitleBar," - "Gui--OverlaySplitterHandle { background-color: rgba(200, 200, 200, 150); }" - "QWidget#ClippingScrollAreaContents, " - "QScrollArea#ClippingScrollArea { border: none; background-color: #a0e6e6e6; }" - "Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton {text-align:left;padding-left:2px;}" +const QString OverlayStyleSheet::_default = QStringLiteral("overlay:Light Theme + Dark Background.qss" ); // ----------------------------------------------------------- @@ -270,7 +207,7 @@ struct OverlayInfo { if (hGrp == Param && Name && !tabWidget->isSaving()) { // This will prevent saving settings which will mess up the // just restored ones - tabWidget->restore(nullptr); + tabWidget->restore(nullptr); OverlayManager::instance()->reload(); } }); @@ -411,7 +348,7 @@ public: ,_overlayInfos({&_left,&_right,&_top,&_bottom}) ,_actions({&_actOverlay,&_actFloat,&_actClose}) { - _Overlays = {OverlayTabWidget::_LeftOverlay, + _Overlays = {OverlayTabWidget::_LeftOverlay, OverlayTabWidget::_RightOverlay, OverlayTabWidget::_TopOverlay, OverlayTabWidget::_BottomOverlay}; @@ -465,9 +402,9 @@ public: void refreshIcons() { - _actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/float.svg")); - _actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/overlay.svg")); - _actClose.setIcon(BitmapFactory().pixmap("qss:overlay/close.svg")); + _actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/icons/float.svg")); + _actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/icons/overlay.svg")); + _actClose.setIcon(BitmapFactory().pixmap("qss:overlay/icons/close.svg")); for (OverlayTabWidget *tabWidget : _Overlays) { tabWidget->refreshIcons(); for (auto handle : tabWidget->findChildren()) @@ -610,7 +547,7 @@ public: updateFocus = true; else if(o->tabWidget == active) updateActive = true; - else + else o->tabWidget->setOverlayMode(true); } if(!o->tabWidget->getRevealTime().isNull()) { @@ -628,12 +565,12 @@ public: focus->raise(); if(reveal == focus) reveal = nullptr; - } else + } else focus->updateSplitterHandles(); } if(active) { - if(active != focus && (active->isOverlaid(OverlayTabWidget::QueryOption::TransparencyChanged) || updateActive)) + if(active != focus && (active->isOverlaid(OverlayTabWidget::QueryOption::TransparencyChanged) || updateActive)) active->setOverlayMode(false); active->raise(); if(reveal == active) @@ -646,7 +583,7 @@ public: } for(auto o : _overlayInfos) { - if(o->tabWidget != focus + if(o->tabWidget != focus && o->tabWidget != active && o->tabWidget != reveal && o->tabWidget->count() @@ -703,7 +640,7 @@ public: _bottom.tabWidget->setRect(QRect(ofs.width(),h-rect.height(),bw,rect.height())); if (_bottom.tabWidget->count() - && _bottom.tabWidget->isVisible() + && _bottom.tabWidget->isVisible() && _bottom.tabWidget->getState() <= OverlayTabWidget::State::Normal) rectBottom = _bottom.tabWidget->getRect(); @@ -722,7 +659,7 @@ public: _left.tabWidget->setRect(QRect(ofs.height(),ofs.width(),rect.width(),lh)); if (_left.tabWidget->count() - && _left.tabWidget->isVisible() + && _left.tabWidget->isVisible() && _left.tabWidget->getState() <= OverlayTabWidget::State::Normal) rectLeft = _left.tabWidget->getRect(); @@ -742,7 +679,7 @@ public: _right.tabWidget->setRect(QRect(w-rect.width(),ofs.width(),rect.width(),rh)); if (_right.tabWidget->count() - && _right.tabWidget->isVisible() + && _right.tabWidget->isVisible() && _right.tabWidget->getState() <= OverlayTabWidget::State::Normal) rectRight = _right.tabWidget->getRect(); @@ -1030,7 +967,7 @@ public: dock->show(); dock->setFloating(true); refresh(); - } else + } else dock->setFloating(!dock->isFloating()); } return; @@ -1220,7 +1157,7 @@ public: resizeOffset = -1; ++i; } - else + else rect.setHeight(size/2); } else if (pos.x() > pt.x() + size/2) { @@ -1480,7 +1417,7 @@ public: void unregisterDockWidget(const QString &name, OverlayTabWidget *widget) { auto it = _dockWidgetNameMap.find(name); - if (it != _dockWidgetNameMap.end() && it->second == widget) + if (it != _dockWidgetNameMap.end() && it->second == widget) _dockWidgetNameMap.erase(it); } @@ -2024,7 +1961,7 @@ void OverlayManager::Private::interceptEvent(QWidget *widget, QEvent *ev) case QEvent::ContextMenu: { auto ce = static_cast(ev); lastIntercept = getChildAt(widget, ce->globalPos()); - QContextMenuEvent contextMenuEvent(ce->reason(), + QContextMenuEvent contextMenuEvent(ce->reason(), lastIntercept->mapFromGlobal(ce->globalPos()), ce->globalPos()); QApplication::sendEvent(lastIntercept, &contextMenuEvent); diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 600a17976d..9bfe867238 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -440,13 +440,13 @@ OverlayTabWidget::OverlayTabWidget(QWidget *parent, Qt::DockWidgetArea pos) void OverlayTabWidget::refreshIcons() { - actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/overlay.svg")); - actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/mode.svg")); - actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/taskshow.svg")); - actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/editshow.svg")); - actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/edithide.svg")); - actTransparent.setIcon(BitmapFactory().pixmap("qss:overlay/transparent.svg")); - QPixmap pxAutoHide = BitmapFactory().pixmap("qss:overlay/autohide.svg"); + actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/icons/overlay.svg")); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode.svg")); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow.svg")); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide.svg")); + actTransparent.setIcon(BitmapFactory().pixmap("qss:overlay/icons/transparent.svg")); + QPixmap pxAutoHide = BitmapFactory().pixmap("qss:overlay/icons/autohide.svg"); switch(dockArea) { case Qt::LeftDockWidgetArea: actAutoHide.setIcon(pxAutoHide); @@ -2103,7 +2103,7 @@ OverlaySplitterHandle::OverlaySplitterHandle(Qt::Orientation orientation, QSplit void OverlaySplitterHandle::refreshIcons() { - actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/float.svg")); + actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/icons/float.svg")); } void OverlaySplitterHandle::onTimer() diff --git a/src/Gui/PreferencePacks/CMakeLists.txt b/src/Gui/PreferencePacks/CMakeLists.txt index eaceafddc2..04c66d9343 100644 --- a/src/Gui/PreferencePacks/CMakeLists.txt +++ b/src/Gui/PreferencePacks/CMakeLists.txt @@ -5,14 +5,9 @@ SET(PreferencePacks_Files SET(PreferencePacks_Directories "Classic" -"Dark" -"Darker" -"Dark modern" "Dark behave" -"Dark contrast" -"ProDark" -"Light" -"Light modern" +"Light theme" +"Dark theme" ) ADD_CUSTOM_TARGET(PreferencePacks_data ALL diff --git a/src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg b/src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg deleted file mode 100644 index a2d1a2e130..0000000000 --- a/src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark-contrast.qss - - - - - diff --git a/src/Gui/PreferencePacks/Dark modern/Dark modern.cfg b/src/Gui/PreferencePacks/Dark modern/Dark modern.cfg deleted file mode 100644 index 1d87608220..0000000000 --- a/src/Gui/PreferencePacks/Dark modern/Dark modern.cfg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark-modern.qss - Dark-Modern_overlay.qss - - - - - diff --git a/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg b/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg new file mode 100644 index 0000000000..7c3bddd51f --- /dev/null +++ b/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #1864ab + #f8f9fa + #f8f9fa + #f8f9fa + + + + + + + + + + + + + + + + + + + Dark theme.qss + Dark Theme + Dark Background.qss + + + + + + diff --git a/src/Gui/PreferencePacks/Dark/Dark.cfg b/src/Gui/PreferencePacks/Dark/Dark.cfg deleted file mode 100644 index 5acf039b29..0000000000 --- a/src/Gui/PreferencePacks/Dark/Dark.cfg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark.qss - Dark_overlay.qss - - - - - diff --git a/src/Gui/PreferencePacks/Darker/Darker.cfg b/src/Gui/PreferencePacks/Darker/Darker.cfg deleted file mode 100644 index f2ab0a5a50..0000000000 --- a/src/Gui/PreferencePacks/Darker/Darker.cfg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Darker.qss - Darker_overlay.qss - - - - - diff --git a/src/Gui/PreferencePacks/Light modern/Light modern.cfg b/src/Gui/PreferencePacks/Light modern/Light modern.cfg deleted file mode 100644 index 9c9bb37f39..0000000000 --- a/src/Gui/PreferencePacks/Light modern/Light modern.cfg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - #feff9e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Light-modern.qss - Light-Modern_overlay.qss - - - - - - diff --git a/src/Gui/PreferencePacks/Light theme/Light theme.cfg b/src/Gui/PreferencePacks/Light theme/Light theme.cfg new file mode 100644 index 0000000000..d3c344ed15 --- /dev/null +++ b/src/Gui/PreferencePacks/Light theme/Light theme.cfg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + StartWorkbench + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #bac8ff + #212529 + #212529 + #212529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Light theme.qss + Light Theme + Light Background.qss + + + + + diff --git a/src/Gui/PreferencePacks/Light/Light.cfg b/src/Gui/PreferencePacks/Light/Light.cfg deleted file mode 100644 index f2e2a589e7..0000000000 --- a/src/Gui/PreferencePacks/Light/Light.cfg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - #feff9e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Light.qss - Light_overlay.qss - - - - - - diff --git a/src/Gui/PreferencePacks/ProDark/ProDark.cfg b/src/Gui/PreferencePacks/ProDark/ProDark.cfg deleted file mode 100644 index 783cfe8cdc..0000000000 --- a/src/Gui/PreferencePacks/ProDark/ProDark.cfg +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ProDark.qss - - - - - diff --git a/src/Gui/PreferencePacks/package.xml b/src/Gui/PreferencePacks/package.xml index 7fe115c499..6975c08b89 100644 --- a/src/Gui/PreferencePacks/package.xml +++ b/src/Gui/PreferencePacks/package.xml @@ -18,49 +18,23 @@ no stylesheet classic theme - - Dark + + Light theme Theme - Applies a dark background and a darker stylesheet. - 0.5.0 + Applies a basic light theme. + 0.1.0 built-in - dark background - stylesheet - theme + light - - Darker + + Dark theme Theme - Applies a dark background and a darker stylesheet. - 0.5.0 + Applies a basic dark theme. + 1.0.0 built-in - dark background - stylesheet - theme - - - Dark modern - Theme - Applies a dark background and a darker stylesheet. - 0.5.0 - built-in - dark - background - stylesheet - theme - - - ProDark - Theme - Applies a dark background and a darker stylesheet. - 0.5.0 - built-in - dark - background - stylesheet - theme + dark Dark behave @@ -71,40 +45,6 @@ dark background stylesheet - theme - - - Dark contrast - Theme - Dark theme with high contrasts. - 0.5.0 - built-in - dark - background - stylesheet - theme - - - Light - Theme - Applies a light background and a light stylesheet. - 0.5.0 - built-in - light - background - stylesheet - theme - - - Light modern - Theme - Applies a light background and a light stylesheet. - 0.5.0 - built-in - light - background - stylesheet - theme diff --git a/src/Gui/Stylesheets/CMakeLists.txt b/src/Gui/Stylesheets/CMakeLists.txt index ae76a66a6e..44a6cf68bc 100644 --- a/src/Gui/Stylesheets/CMakeLists.txt +++ b/src/Gui/Stylesheets/CMakeLists.txt @@ -1,66 +1,45 @@ SET(Stylesheets_Files "Behave-dark.qss" - "Dark.qss" - "Darker.qss" - "Light.qss" - "Dark-contrast.qss" - "ProDark.qss" - "Dark-modern.qss" - "Light-modern.qss" + "Dark theme.qss" + "Light theme.qss" ) SET(Overlay_Stylesheets_Files - "overlay/Dark.qss" - "overlay/Default_Dark-theme_dark-background.qss" - "overlay/Default_Dark-theme_Light-background.qss" - "overlay/Default_Light-theme_dark-background.qss" - "overlay/Default_Light-theme_light-background.qss" - "overlay/Light.qss" - "overlay/Dark-Outline.qss" - "overlay/Light-Outline.qss" - "overlay/Darker_overlay.qss" - "overlay/Dark_overlay.qss" - "overlay/Dark-Modern_overlay.qss" - "overlay/Light-Modern_overlay.qss" - "overlay/Light_overlay.qss" - "overlay/close.svg" - "overlay/overlay.svg" - "overlay/float.svg" - "overlay/autohide.svg" - "overlay/editshow.svg" - "overlay/taskshow.svg" - "overlay/edithide.svg" - "overlay/mode.svg" - "overlay/transparent.svg" - "overlay/taskshow_light.svg" - "overlay/mode_lighter.svg" - "overlay/overlay_lighter.svg" - "overlay/close_lighter.svg" - "overlay/close_light.svg" - "overlay/float_lighter.svg" - "overlay/overlay_light.svg" - "overlay/mode_light.svg" - "overlay/transparent_light.svg" - "overlay/float_light.svg" - "overlay/transparent_lighter.svg" - "overlay/close_red.svg" + "overlay/Dark Theme + Dark Background.qss" + "overlay/Dark Theme + Light Background.qss" + "overlay/Light Theme + Dark Background.qss" + "overlay/Light Theme + Light Background.qss" + "overlay/DarkBehave_overlay.qss" ) # Find all the image files FILE(GLOB Images_Files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/images_dark-light/*.svg") -SOURCE_GROUP("images_dark-light" FILES ${Images_Files}) +SOURCE_GROUP("Images_dark-light" FILES ${Images_Files}) + +FILE(GLOB Images_Files2 RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/images_classic/*.png") + +SOURCE_GROUP("images_classic" FILES ${Images_Files2}) + +FILE(GLOB Overlay_icons RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/overlay/icons/*.svg") + +SOURCE_GROUP("overlay_icons" FILES ${Overlay_icons}) + ADD_CUSTOM_TARGET(Stylesheets_data ALL - SOURCES ${Stylesheets_Files} ${Images_Files} ${Overlay_Stylesheets_Files} + SOURCES ${Stylesheets_Files} ${Images_Files} ${images_classic} ${Overlay_Stylesheets_Files} ${Overlay_icons} ) fc_copy_sources(Stylesheets_data "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets" ${Stylesheets_Files} ${Images_Files} - ${Overlay_Stylesheets_Files}) + ${images_classic} + ${Overlay_Stylesheets_Files} + ${Overlay_icons}) INSTALL( FILES @@ -74,9 +53,21 @@ INSTALL( DESTINATION ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/overlay ) +INSTALL( + FILES + ${Overlay_icons} + DESTINATION + ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/overlay/icons +) INSTALL( FILES ${Images_Files} DESTINATION ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/images_dark-light ) +INSTALL( + FILES + ${images_classic} + DESTINATION + ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/images_classic +) diff --git a/src/Gui/Stylesheets/Darker.qss b/src/Gui/Stylesheets/Dark theme.qss similarity index 68% rename from src/Gui/Stylesheets/Darker.qss rename to src/Gui/Stylesheets/Dark theme.qss index e52180029d..2c3703c3bb 100644 --- a/src/Gui/Stylesheets/Darker.qss +++ b/src/Gui/Stylesheets/Dark theme.qss @@ -19,6 +19,7 @@ INSTALLATION WHEN NECESSARY FOLLOWING CODES ARE CHANGED IN THE SETTINGS: @ThemeAccentColor1 @ThemeAccentColor2 + @ThemeAccentColor3 See Qt documentation: - https://doc.qt.io/qt-5/stylesheet.html @@ -101,36 +102,36 @@ QMainWindow, QDialog, QDockWidget, QToolBar { - background-color: #444444; /* main background color */ + background-color: #333333; /* main background color */ } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); + /* background-image: url(qss:images_classic/background_freecad_light.png); background-position: center center; - background-repeat: no-repeat; + background-repeat: no-repeat; */ } /*navgation src/Mod/Tux/NavigationIndicatorGui.py */ Gui--NavigationIndicatorGui--BlenderNavigationStyle { /*QAction#a4 {*/ qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); } -/*===== + /* QWidget ---------------------------------------------------------------- --------------------------------------------------------------------------- */ QWidget { - background-color: #444444; - border: 0px solid #696968; + /* background-color: #444444; */ + border: 0px solid #020202; padding: 0px; color: White; - selection-background-color: @ThemeAccentColor1; + selection-background-color: transparent; selection-color: White; } QWidget:disabled { - color: #c2c7cb; + color: #adadad; selection-background-color: @ThemeAccentColor1; - selection-color: #c2c7cb; + selection-color: #cccccc; } QWidget::item:selected { @@ -150,35 +151,37 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow --------------------------------------------------------------------------- */ QMainWindow::separator { /*background-color: #3c3c3c;*/ - border: 0px solid #696968; + border: 0px solid #020202; spacing: 0px; padding: 1px; } QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); + /* background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); */ /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_light.svg); + /* width: 2px;*/ + image: url(qss:images_classic/splitter_vertical-lightgray.png); } QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); + /* height: 2px; */ + /* background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); */ /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_light.svg); + image: url(qss:images_classic/splitter_horizontal-lightgray.png); } QMainWindow::separator:horizontal { width: 4px; margin-top: 0.1px; margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ + /* image: url(qss:images_classic/splitter_horizontal-dark.png);*/ } QMainWindow::separator:vertical { height: 4px; margin-left: 0.1px; margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ + /* image: url(qss:images_classic/splitter_vertical_dark.png);*/ } /* QToolTip --------------------------------------------------------------- @@ -187,13 +190,21 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip --------------------------------------------------------------------------- */ QToolTip { - background-color: #1c1b22; - color: White; + background-color: #ffffff; + color: black; /* If you remove the border property, background stops working on Windows */ border: none; + font-weight:bolder; + border-top-width: 0.5px; + border-left-width: 0.5px; + border-right-width: 1.5px; + border-bottom-width: 1.5px; + border-style: solid; + border-color: #202020; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Remove opacity, fix #174 - may need to use RGBA */ + /* border-radius: 4px; */ } /* QStatusBar ------------------------------------------------------------- @@ -204,7 +215,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar QStatusBar { border: 0px solid #3c3c3c; /* Fixes Spyder #9120, #9121 */ - background: #444444; + background: #333333; /* Fixes #205, white vertical borders separating items */ } @@ -213,9 +224,9 @@ QStatusBar::item { } QStatusBar QToolTip { - color: #1e1e1e; - background-color: #7d7f81; - border: 1px solid #696968; + background-color: #333333; + border: 1px solid #020202; + color: #ffffff; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Reducing transparency to read better */ @@ -241,40 +252,40 @@ QCheckBox { } QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QCheckBox QWidget:disabled { - color: #c2c7cb; + color: #adadad; } QCheckBox::indicator { color: white; - background-color: #1c1b22; + background-color: #252525; width: 12px; height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-white.png); } QCheckBox::indicator:unchecked { - background-color: #1c1b22; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + background-color: #252525; + image:url(qss:images_classic/checkbox-Empty-white.png); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-white.png); } QCheckBox::indicator:unchecked:disabled { background-color: #444444; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + image:url(qss:images_classic/checkbox-Empty-lightgray.png); } QCheckBox::indicator:checked { - background-color: #1c1b22; - /*border: 1px solid #696968; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); + background-color: #252525; + /*border: 1px solid #020202; /* QRadioButton has the same color */ + image:url(qss:images_classic/checkbox-checked-white.png); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { @@ -283,18 +294,18 @@ QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { QCheckBox::indicator:checked:disabled { background-color: #444444; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); + image: url(qss:images_classic/checkbox-checked-lightgray.png); } QCheckBox::indicator:indeterminate { - background-color: #1c1b22; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #252525; + border: 1px solid #020202; + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QCheckBox::indicator:indeterminate:disabled { background-color: #444444; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { @@ -307,36 +318,30 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox --------------------------------------------------------------------------- */ QGroupBox { - font-weight: bold; - border: 1px solid #696968; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; + background-color: #3c3c3c; + border: 1px solid #444444; + border-radius: 2px; + margin-top: 3ex; /* leave space at the top for the title */ } QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; + top: -18px; + left: 0px; } QGroupBox::indicator { color: white; background-color: #3c3c3c; - border: 1px solid #696968; + border: 1px solid #020202; width: 12px; height: 12px; border-radius:1px; } QGroupBox::indicator:unchecked { - background-color: #696968; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #020202; + border: 1px solid #020202; + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { @@ -344,13 +349,13 @@ QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGro } QGroupBox::indicator:unchecked:disabled { - background-color: #1c1b22; - border: 1px solid #696968; + background-color: #444444; + border: 1px solid #020202; } QGroupBox::indicator:checked { border: none; - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-white.png); } QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { @@ -377,12 +382,12 @@ QRadioButton { } QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QRadioButton:disabled { - background-color: #696968; - color: #353535; + background-color: #444444; + /* color: #444444; */ } QRadioButton QWidget { @@ -395,44 +400,43 @@ QRadioButton QWidget { } QRadioButton::indicator { - background-color: #3c3c3c; - border: 1px solid #696968; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-unchecked-white.png); } QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ + /*image:url(qss:images_classic/Radio-checked-white.png);*/ } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; + /* background-color: @ThemeAccentColor1; border: 1px solid @ThemeAccentColor1; - border-radius: 6px; + border-radius: 6px; */ } QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #696968; + /*image:url(qss:images_classic/Radio-checked-lightgray.png);*/ + border: 1px solid #444444; } QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_light.svg); + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-checked-white.png); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; + /* background-color: @ThemeAccentColor1; border: 1px solid @ThemeAccentColor1; border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_light.svg); + image:url(qss:images_classic/Radio-checked-white.png); */ } QRadioButton::indicator:checked:disabled { outline: none; - background-color: #696968; - image:url(qss:images_dark-light/radiobutton_dark.svg); + background-color: #444444; + image:url(qss:images_classic/Radio-checked-lightgray.png); } /* QMenuBar --------------------------------------------------------------- @@ -441,7 +445,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar --------------------------------------------------------------------------- */ QMenuBar { - background-color: #161616; + background-color: #252525; /*padding: 1px; border: 0px solid rgba(0,0,0,140);*/ color: White; @@ -449,7 +453,7 @@ QMenuBar { } QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QMenuBar::item { @@ -462,7 +466,7 @@ QMenuBar::item { QMenuBar::item:selected { background: transparent; - border: 0px solid #696968; + border: 0px solid #020202; background-color: @ThemeAccentColor1; } @@ -470,7 +474,7 @@ QMenuBar::item:pressed { /*padding: 2px; padding-left: 10px; padding-right: 10px;*/ - border: 0px solid #696968; + border: 0px solid #020202; background-color: @ThemeAccentColor1; color: White; /*margin-bottom: 0px; @@ -487,22 +491,25 @@ QMenu { border-right: 2px rgba(0,0,0,140); color: White; margin: 0px; - background-color: #161616; + background-color: #252525; selection-background-color: @ThemeAccentColor1; } QMenu::separator { height: 2px; background-color: #3c3c3c; - margin-left: 30%; - margin-right: 30%; + margin-left: 10%; + margin-right: 10%; } QMenu::item { background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ + padding-left: 5px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 50px; /* Reserve space for selection border */ - border: 0px transparent #696968; + border: 0px transparent #020202; } QMenu::item:selected { @@ -538,7 +545,7 @@ QMenu::icon:checked { /* appearance of a 'checked' icon */ border-radius: 0px; } QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { @@ -547,11 +554,11 @@ QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:u } QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + image: url(qss:images_classic/checkbox-Empty-lightgray.png); } QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-white.png); } QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { @@ -560,60 +567,60 @@ QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:che } QMenu::indicator:non-exclusive:checked:disabled { -image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +image:url(qss:images_classic/checkbox-checked-lightgray.png); } QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); + image: url(qss:images_classic/transparent.png); } QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:exclusive:checked { border: none; outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-white.png); } QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:exclusive:checked:disabled { outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-white.png); } QMenu::right-arrow { margin: 5px; padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_lighter.svg); - height: 12px; - width: 12px; + image:url(qss:images_classic/Arrow-right-white.png); + height: 8px; + width: 8px; background-color: transparent; } @@ -625,7 +632,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox QAbstractItemView { alternate-background-color: #5b5b5b; color: White; - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 2px; } @@ -640,7 +647,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QAbstractScrollArea { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #020202; border-radius: 0px; /* fix #159 */ padding: 0px; @@ -649,7 +656,7 @@ QAbstractScrollArea { } QAbstractScrollArea:disabled { - color: #353535; + color: #adadad; } /* QScrollArea ------------------------------------------------------------ @@ -657,7 +664,7 @@ QAbstractScrollArea:disabled { --------------------------------------------------------------------------- text input field disabled!!!!*/ QScrollArea QWidget:disabled { - background-color: #444444; + background-color: transparent } /* QScrollBar ------------------------------------------------------------- @@ -665,140 +672,161 @@ QScrollArea QWidget:disabled { https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar --------------------------------------------------------------------------- */ + QScrollBar:horizontal { - height: 16px; - margin: 2px 8px 2px 8px; - border: 0px solid #696968; - border-radius: 4px; - background-color: #444444; + height: 14px; + border-right: 14px solid qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-left: 14px solid qlineargradient(x1:1, y1:0, x2:0, y2:0, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-top: 0.5px solid #020202; + border-bottom: 0.5px solid #020202; + background-color: #202020; } QScrollBar:vertical { - background-color: #444444; - width: 16px; - margin: 8px 2px 8px 2px; - border: 0px solid #696968; - border-radius: 4px; + background-color: #222222; + width: 14px; + border-top: 14px solid qlineargradient(x1:0, y1:1, x2:0, y2:0, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-bottom: 14px solid qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-left: 0.5px solid #020202; + border-right: 0.5px solid #020202; + background-color: #202020; } QScrollBar::handle:horizontal { - background-color: #696969; - border: 1px solid #444444; - border-radius: 4px; - min-width: 8px; + border-left: 1px solid #020202; + border-right: 1px solid #020202; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #444444); } QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; - min-width: 8px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #696969); + /* border: 1px #202020; */ } QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::handle:vertical { - background-color: #696969; - border: 1px solid #696968; + border-top: 1px solid #020202; + border-bottom: 1px solid #020202; min-height: 8px; - border-radius: 4px; + border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:1 #444444); } QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:1 #696969); + /* border: solid 1px #202020; */ + border-radius: 0px; min-height: 8px; } QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-right-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-right-white.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-down-white.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-left-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-left-white.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - background-color: @ThemeAccentColor1; - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-up-white.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { +/* QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; + border: 1px solid #8800ff; +} */ + +/* QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; + border: 1px solid #00ff6a; +} */ + +/* QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; + border: 1px solid #00ff95; */ + /* border: 1px solid #020202; */ +/* } */ + +/* QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; + border: 1px solid #0400ff;*/ + /* border: 1px solid #020202; */ +/*} */ + +/* QScrollBar::add-line { + border: 1px solid #ff0000; background: none; } -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { +QScrollBar::sub-line { + border: 1px solid #00ff44; background: none; -} +} */ -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} /* QTextEdit -------------------------------------------------------------- @@ -810,12 +838,12 @@ report view QTextEdit { background-color: #444444; color: White; - border-radius: 1.9px; - border: 0px solid #696968; + border-radius: 2px; + border: 0px solid #020202; } QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QTextEdit:selected { @@ -830,11 +858,11 @@ QPlainTextEdit { background-color: #3c3c3c; color: White; border-radius: 1.9px; - border: 0px solid #696968; + border: 0px solid #020202; } QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QPlainTextEdit:selected { @@ -851,7 +879,7 @@ QSizeGrip { background: transparent; width: 12px; height: 12px; - image:url(qss:images_dark-light/sizegrip_light.svg); + image:url(qss:images_classic/sizegrip-lightgray.png); } /* QStackedWidget --------------------------------------------------------- @@ -859,7 +887,7 @@ QSizeGrip { --------------------------------------------------------------------------- */ QStackedWidget { padding: 0px; - border: 0px solid #696968; + border: 0px solid #020202; } /* QToolBar --------------------------------------------------------------- @@ -868,64 +896,79 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar --------------------------------------------------------------------------- */ QToolBar { - background-color: #444444; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; + background-color: #333333; + /* border: 1px solid #020202; */ + /* font-weight: bold; */ +} + +QToolBar:horizontal { + /* border-top: 1px solid #020202; */ + border-bottom: 0.5px solid #020202; + /* spacing: 2px; */ + padding-top: 3px; + padding-left: 5px; +} + +QToolBar:vertical { + border-left: 0.5px solid #020202; + border-right: 0.5px solid #020202; + /* spacing: 1px; */ + padding-top: 3px; + padding-left: 2px; } QToolBar:disabled { /* Fixes #272 */ - background-color: #444444; + /* background-color: #444444; */ } QToolBar::handle:horizontal { width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); + /* margin: 3px 3px; */ + image: url(qss:images_classic/Hmovetoolbar-lightgray.png); } QToolBar::handle:vertical { height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); + /* margin: 3px 3px; */ + image: url(qss:images_classic/Vmovetoolbar-lightgray.png); } +QToolBar::handle:horizontal:hover { + width: 8px; + image: url(qss:images_classic/Hmovetoolbar-white.png); +} + +QToolBar::handle:vertical:hover { + height: 8px; + image: url(qss:images_classic/Vmovetoolbar-white.png); +} + + QToolBar::separator:horizontal { width: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Hsepartoolbar-Darkgray.png); } QToolBar::separator:vertical { height: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Vsepartoolbar-Darkgray.png); } /*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ QToolButton#qt_toolbar_ext_button { margin: 0px; padding: 0px; -background-color: #696969; -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-repeat: none; background-position: center center; } QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-color: @ThemeAccentColor1; } QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -border-color: #696968; +border-color: #020202; background-color: @ThemeAccentColor1; } @@ -935,76 +978,75 @@ background-color: @ThemeAccentColor1; --------------------------------------------------------------------------- */ QAbstractSpinBox, QSpinBox { - background-color: #1c1b22; - border: 1px solid transparent; + background-color: #252525; + border: 1px solid #020202; color: White; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ + border-radius: 2px; min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ } QAbstractSpinBox:up-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #252525); subcontrol-origin: border; subcontrol-position: top right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ + border-top: 1px solid transparent; + border-right: 1px solid transparent; + border-top-right-radius: 2px; + border-bottom-left-radius: 2px; + margin-top: 1px; + margin-right: 1px; + } QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_light.svg); - /* height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-up-white.png); + height: 8px; + width: 8px; } QAbstractSpinBox:down-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #252525, stop:1 #333333); subcontrol-origin: border; subcontrol-position: bottom right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ + border-bottom: 1px solid transparent; + border-right: 1px solid transparent; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; + margin-bottom: 1px; + margin-right: 1px; + /* margin: 1px; */ /*width: 12px; /*margin-top: -1px;*/ } QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - /*height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-white.png); + height: 8px; + width: 8px; } QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: White;*/ + } QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QAbstractSpinBox:selected { background: @ThemeAccentColor2; - /*color: White;*/ } /* ------------------------------------------------------------------------ */ @@ -1017,7 +1059,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe --------------------------------------------------------------------------- */ QLabel { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #020202; padding: 2px; margin: 0px; color: White; @@ -1025,8 +1067,8 @@ QLabel { QLabel:disabled { background-color: transparent; - border: 0px solid #696968; - color: #c2c7cb; + border: 0px solid #020202; + color: #adadad; } QLabel[haslink="true"] { @@ -1040,21 +1082,21 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QTextBrowser { - background-color: #1c1b22; - border: 1px solid #696968; + background-color: #252525; + border: 1px solid #020202; color: White; border-radius: 1.9px; } QTextBrowser:disabled { background-color: #444444; - border: 1px solid #696968; - color: #c2c7cb; + border: 1px solid #020202; + color: #adadad; border-radius: 1.9px; } QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; + /* border: 1px solid @ThemeAccentColor1; */ } /* QGraphicsView ---------------------------------------------------------- @@ -1068,9 +1110,9 @@ QGraphicsView { } QGraphicsView:disabled { - background-color: #1c1b22; - border: 0px solid #696968; - color: #c2c7cb; + background-color: #252525; + border: 0px solid #020202; + color: #adadad; border-radius: 0px; } @@ -1082,13 +1124,13 @@ QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView --------------------------------------------------------------------------- */ QCalendarWidget { - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 1.9px; } QCalendarWidget:disabled { - background-color: #353535; - color: #c2c7cb; + background-color: #333333; + color: #adadad; } /* QLCDNumber ------------------------------------------------------------- @@ -1101,7 +1143,7 @@ QLCDNumber { QLCDNumber:disabled { background-color: #444444; - color: #c2c7cb; + color: #adadad; } /* QProgressBar ----------------------------------------------------------- @@ -1110,16 +1152,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar --------------------------------------------------------------------------- */ QProgressBar { - background-color: #c2c7cb; - border: 1px solid #696968; + background-color: #cccccc; + border: 1px solid #020202; color: White; border-radius: 1.9px; text-align: center; } QProgressBar:disabled { - background-color: #161616; - border: 1px solid #696968; + background-color: #444444; + border: 1px solid #020202; color: #696969; border-radius: 1.9px; text-align: center; @@ -1132,8 +1174,8 @@ QProgressBar::chunk { } QProgressBar::chunk:disabled { - background-color: #161616; - color: #696968; + background-color: #444444; + color: #020202; border-radius: 1.9px; } @@ -1146,46 +1188,47 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton --------------------------------------------------------------------------- */ QPushButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #252525); color: White; - border: 1px solid #2a2a2a; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - border-radius: 4px; - padding: 2px; + border: 1px solid #020202; + /* border-bottom-color: #1e1e1e; simulates shadow under the button */ + border-radius: 3px; + padding: 4px 0px; + min-width: 80px; } QPushButton:disabled { background-color: #444444; - color: #c2c7cb; - + color: #adadad; + border: 1px solid #020202; } QPushButton:checked { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; outline: none; } QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #3c3c3c; + border: 1px solid @ThemeAccentColor1; + color: #adadad; outline: none; } QPushButton:checked:selected { - background: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; } QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #333333); color: White; } QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + border: 1px solid @ThemeAccentColor1; } QPushButton:selected { - background: @ThemeAccentColor2; + border: 1px solid @ThemeAccentColor1; color: White; } @@ -1208,44 +1251,41 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton QToolButton { background-color: transparent; color: White; - border-radius: 1px; - padding: 0px; + /* border-radius: 1px; */ + padding: 2px; outline: none; border: none; + border-radius: 3px; /* The subcontrols below are used only in the DelayedPopup mode */ /* The subcontrols below are used only in the MenuButtonPopup mode */ /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ } QToolButton:disabled { - background-color: rgba(0, 0, 0, 0.065); - color: #c2c7cb; - border-radius: 1px; - padding: 0px; + /* background-color: rgba(0, 0, 0, 0.065); */ + color: #adadad; } QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; + background-color: @ThemeAccentColor2; + border-radius: 2px; } QToolButton:checked:disabled { - background-color: #b65555; - color: #c2c7cb; - border-radius: 1.9px; + background-color: @ThemeAccentColor1; + color: #adadad; + border-radius: 2px; padding: 0px; outline: none; } QToolButton:checked:hover { background-color: @ThemeAccentColor1; - color: White; + border: 1px solid #020202; } QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor2; } QToolButton:checked:selected { @@ -1254,16 +1294,15 @@ QToolButton:checked:selected { } QToolButton:hover { - background-color: @ThemeAccentColor1; color: White; + border: 1px solid #020202; } QToolButton:pressed { - background-color: @ThemeAccentColor2; } QToolButton:selected { - background: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; color: White; } @@ -1276,14 +1315,15 @@ QToolButton[popupMode="1"] { /* Only for MenuButtonPopup */ padding-right: 20px; } + QToolButton[popupMode="0"]::menu-button { border: none; } QToolButton[popupMode="0"]::menu-button:hover { border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; + border-left: 2px solid #202020; + border-radius: 3px; } QToolButton[popupMode="1"]::menu-button { border: none; @@ -1291,57 +1331,63 @@ QToolButton[popupMode="1"]::menu-button { QToolButton[popupMode="1"]::menu-button:hover { border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; + border-left: 2px solid #202020; + border-radius: 3px; } QToolButton[popupMode="2"] { /* Only for InstantPopup */ padding-right: 20px; } +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 15px; /* Hack to add more width to buttons with menu */ + border-radius: 3px; +} QToolButton::menu-button { - border-bottom: 0px solid #ffffff; - border-radius: 2px; + border: 1px solid transparent; /* 16px width + 4px for border = 20px allocated above */ + border-radius: 3px; width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; } QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid transparent; } +QToolButton::menu-button:pressed { + border: 1px solid transparent; +} + QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid #020202; + background: @ThemeAccentColor2; } QToolButton::menu-indicator { /* Exclude a shift for better image */ - subcontrol-position: right bottom; + subcontrol-position: center center; /* Shift it a bit */ } QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; + image: url(qss:images_classic/Arrow-down-lightgray.png); + width: 1.3ex; + height: 1.3ex; + subcontrol-position: center center; background: transparent; } QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + subcontrol-position: center center; + image: url(qss:images_classic/Arrow-Down-white.png); + width: 1.3ex; + height: 1.3ex; } QToolButton::menu-arrow:hover { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + image: url(qss:images_classic/Arrow-Down-white.png); + width: 1.3ex; + height: 1.3ex; } /* QCommandLinkButton ----------------------------------------------------- @@ -1349,7 +1395,7 @@ QToolButton::menu-arrow:hover { --------------------------------------------------------------------------- */ QCommandLinkButton { background-color: transparent; - border: 1px solid #696968; + border: 1px solid #020202; color: White; border-radius: 1.9px; padding: 0px; @@ -1358,7 +1404,7 @@ QCommandLinkButton { QCommandLinkButton:disabled { background-color: transparent; - color: #c2c7cb; + color: #adadad; } /* ------------------------------------------------------------------------ */ @@ -1370,34 +1416,34 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox --------------------------------------------------------------------------- */ QComboBox { - border: 1px solid transparent; - background: #1c1b22; + border: 1px solid #020202; border-radius: 2px; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); selection-background-color: @ThemeAccentColor1; - padding-left: 2px; + padding-left: 4px; padding-right: 2px; /* padding-right = 36; 4 + 16*2 See scrollbar size */ /* changed to 4px to fix #239 */ /* Fixes #103, #111 */ min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ + /*margin: 0px -1px 0px 0px; hack for Mac... try it on Windows and Linux */ /* padding-top: 2px; removed to fix #132 */ /* padding-bottom: 2px; removed to fix #132 */ /* min-width: 75px; removed to fix #109 */ /* Needed to remove indicator - fix #132 */ } QComboBox:editable { - background: #1c1b22; + background: #252525; } QComboBox QAbstractItemView { - border: 0px solid #696968; - border-radius: 0px; - background-color: #1c1b22; + border: 1px solid #020202; + border-radius: 2px; + background-color: #252525; selection-background-color: @ThemeAccentColor1; } QComboBox QAbstractItemView:hover { - background-color:#1c1b22; + background-color:#252525; color: White; } @@ -1407,7 +1453,7 @@ QComboBox QAbstractItemView:selected { } QComboBox QAbstractItemView:alternate { - background: #1c1b22; + background: #252525; } QComboBox:checked { @@ -1416,16 +1462,18 @@ QComboBox:checked { QComboBox:disabled { background-color: #444444; - color: #353535; + color: #adadad; } QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #333333); + /* border: 1px solid @ThemeAccentColor1; */ } QComboBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #020202; + border-radius: 2px; + /* border: 1px solid @ThemeAccentColor2; */ } QComboBox:on { @@ -1438,9 +1486,9 @@ QComboBox::indicator { } QComboBox::indicator:checked { - width: 12px; - height: 12px; - image: url(qss:images_dark-light/check_light.svg); + width: 10px; + height: 10px; + image: url(qss:images_classic/Check-Checked-white.png); } QComboBox::item { @@ -1462,29 +1510,31 @@ QComboBox::item:alternate { } /* Color of the selected list item. */ QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #020202; background: @ThemeAccentColor2; } QComboBox::drop-down { subcontrol-origin: padding; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + /* background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #020202); */ subcontrol-position: top right; - width: 14px; - border-left: 1px solid transparent; + width: 20px; + border-right: 1px solid transparent; + padding-right: 2px; + /* border-radius: 2px; */ } QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); */ } QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 10px; - width: 10px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + /* height: 10px; */ + width: 8px; } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-white.png); } @@ -1494,14 +1544,12 @@ Tasks panel (custom FreeCAD class) Gui--PropertyEditor--PropertyEditor { qproperty-groupTextColor: white; qproperty-groupBackground: #3c3c3c; - border: 0px solid #696968; - + border: 0px solid #333365; } /* Action group */ QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - +background-color: rgba(60, 60, 60, 0.50); } QSint--ActionGroup { @@ -1509,32 +1557,46 @@ padding: 0px; /* if not reset, it might create problems with QPushButtons and ot margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } +QSint--ActionGroup QGroupBox { + border: 1px solid #696969; + background-color: transparent; + padding-bottom: 3px; +} + +QSint--ActionGroup QGroupBox::title { + top: -8px; + left: 13px; +} + /* Separator line */ QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="1"], QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="1"] { border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); +border-top: 1px solid #020202; +border-left: 1px solid #020202; +border-right: 1px solid #020202; +/*background-color: #d4d4d4; /* Task Panel Header background color */ +background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #000000 stop:1 #171d2e); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; margin: 0px; padding: 0px; +color: #cdf5ff; } QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #000000 stop:1 #313d61); */ + color: #51cdf3; } QSint--ActionGroup QToolButton[class="header"] { @@ -1547,40 +1609,44 @@ padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_light.svg); + image: url(qss:images_classic/Unfold_Blue2-dark.png) ; +/* background-color: transparent; +background-image: url(qss:images_classic/Arrow-down-lightgray.png); background-repeat: none; background-position: center center; -padding: 0px; -margin: 0px; +padding: 2px; +margin: 4px; */ } QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +/* background-color: transparent; +background-image: url(qss:images_classic/Arrow-down-white.png); */ +image: url(qss:images_classic/UnfoldOver_Blue2-dark.png) ; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_light.svg); +image: url(qss:images_classic/Fold_Blue2-dark.png) ; +/* background-color: transparent; +background-image: url(qss:images_classic/Arrow-up-lightgray.png); background-repeat: none; background-position: center center; -padding: 0px; -margin: 0px; +padding: 2px; +margin: 0px; */ } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +image: url(qss:images_classic/FoldOver_Blue1.png) ; +/* background-color: transparent; */ +/* background-image: url(qss:images_classic/Arrow-up-white.png); */ } QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ +background-color: #171d2e; /* Task Panel background color */ margin: 0px; padding: 0px; -border-bottom: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; +border-bottom: 1px solid #020202; +border-left: 1px solid #020202; +border-right: 1px solid #020202; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-left-radius: 3px; @@ -1588,7 +1654,7 @@ border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #444444; /* Task Panel background color */ +background-color: #171d2e; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ @@ -1612,6 +1678,7 @@ border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { padding: 2px; /* bigger padding crops text and icons... */ margin: 0px; +border-radius: 3px; } /* Fix for lists inside task panels */ /* sketcher constraints list */ @@ -1619,7 +1686,7 @@ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { color: white; -background-color: #1c1b22; +background-color: #252525; } @@ -1627,17 +1694,42 @@ background-color: #1c1b22; QSint--ActionGroup QFrame[class="content"] QToolButton { color: white; text-align: center; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - border: 0px solid #adadad; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); + border: 1px solid #000000; padding: 1px 1px; /* different than regular QPushButton */ margin: 0px; /* different than regular QPushButton */ min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; + border-radius: 3px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); +/* QToolButtons with a menu found in Sketcher task panel*/ +QSint--ActionGroup QToolButton::menu-button { + border-left: 1px solid #000000; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + padding: 0px; + width: 19px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; + /* margin: 10px; */ +} +QSint--ActionGroup QToolButton#settingsButton, +QSint--ActionGroup QToolButton#filterButton, +QSint--ActionGroup QToolButton#manualUpdate { + padding-right: 20px; /* make way for the popup button */ +} + +/* to give widget inside the menu same look as regular menu */ +QSint--ActionGroup QToolButton#filterButton QListWidget { + color: #ffffff; + background: #252525; + border: 1px solid #000000; +} + + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #333333); } QSint--ActionGroup QFrame[class="content"] QToolButton:focus { border: 1px solid @ThemeAccentColor2; @@ -1645,13 +1737,12 @@ QSint--ActionGroup QFrame[class="content"] QToolButton:focus { QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #696969; - background-color: #1c1b22; + color: #adadad; + /* background-color: #252525; */ } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - + border: 1px solid @ThemeAccentColor1; } /* QSlider ---------------------------------------------------------------- @@ -1669,7 +1760,7 @@ QSlider:focus { QSlider::groove:horizontal { background: #444444; - border: 1px solid #696968; + border: 1px solid #020202; height: 4px; margin: 0px; border-radius: 1.9px; @@ -1677,7 +1768,7 @@ QSlider::groove:horizontal { QSlider::groove:vertical { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; width: 4px; margin: 0px; border-radius: 1.9px; @@ -1685,19 +1776,19 @@ QSlider::groove:vertical { QSlider::add-page:vertical { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; width: 4px; margin: 0px; border-radius: 1.9px; } QSlider::add-page:vertical :disabled { - background: #696968; + background: #444444; } QSlider::sub-page:horizontal { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; height: 4px; margin: 0px; border-radius: 1.9px; @@ -1708,8 +1799,8 @@ QSlider::sub-page:horizontal:disabled { } QSlider::handle:horizontal { - background: #353535; - border: 1px solid #696968; + background: #333333; + border: 1px solid #020202; width: 10px; height: 8px; margin: -4px 0px; @@ -1718,17 +1809,17 @@ QSlider::handle:horizontal { QSlider::handle:horizontal:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; } QSlider::handle:horizontal:focus { background: @ThemeAccentColor2; - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QSlider::handle:vertical { - background: #353535; - border: 1px solid #696968; + background: #333333; + border: 1px solid #020202; width: 10px; height: 8px; margin: 0px -4px; @@ -1737,11 +1828,11 @@ QSlider::handle:vertical { QSlider::handle:vertical:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; } QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } /* QLineEdit -------------------------------------------------------------- @@ -1750,7 +1841,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit --------------------------------------------------------------------------- */ QLineEdit { - background-color: #1c1b22; + background-color: #252525; padding-top: 2px; /* This QLineEdit fix 103, 111 */ padding-bottom: 2px; @@ -1758,18 +1849,18 @@ QLineEdit { padding-left: 4px; padding-right: 4px; border-style: solid; - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 2px; color: White; } QLineEdit:disabled { background-color: #444444; - color: #c2c7cb; + color: #adadad; } QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; + /* border: 1px solid @ThemeAccentColor1; */ color: White; } @@ -1801,12 +1892,12 @@ QTabWidget::pane { margin: 0px; /* Fixes double border inside pane with pyqt5 */ padding: 0px; - background-color: #696968; + background-color: rgba(27, 27, 27, 0.549); } QTabWidget::pane:selected { background-color: @ThemeAccentColor1; - border: 1px solid #346792; + border: 1px solid #252525; } QTabWidget::pane:selected { @@ -1816,22 +1907,22 @@ QTabWidget::pane:selected { QTabWidget::pane:top { top: -1px; - border-top: 1px solid #696969; + border-top: 1px solid #252525; } QTabWidget::pane:bottom { bottom: -1px; - border-bottom: 1px solid #696969; + border-bottom: 1px solid #252525; } QTabWidget::pane:left { right: -1px; - border-right: 1px solid #696969; + border-right: 1px solid #252525; } QTabWidget::pane:right { left: -1px; - border-left: 1px solid #696969; + border-left: 1px solid #252525; } /* QTabBar ---------------------------------------------------------------- @@ -1840,31 +1931,34 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabb --------------------------------------------------------------------------- */ QTabBar, QDockWidget QTabBar { qproperty-drawBase: 0; + background-color: #333333; /* left: 5px; move to the right by 5px - removed for fix */ } QTabBar::close-button, QDockWidget QTabBar::close-button { border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_light.svg); + margin: 3px; + padding: 0px; + image: url(qss:images_classic/Close-lightgray.png); } QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); /*background-color: rgba(255, 0, 0, 0.3);*/ } QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); + image: url(qss:images_classic/close-DarkRed.png); } QTabBar::tab, QDockWidget QTabBar::tab { /* !selected and disabled ----------------------------------------- */ /* selected ------------------------------------------------------- */ padding: 4px; -} + background-color: #333333; +} +/* QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { color: #adadad; } @@ -1913,114 +2007,129 @@ QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { color: #adadad; -} +} */ QTabBar::tab:top, QDockWidget QTabBar::tab:top { - color: #696969; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + color: white; + padding-left: 9px; min-width: 5px; - border-bottom: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-top: 3px; + border-top: 1px solid #202020; /* selection color */ + border-bottom: 1px solid #202020; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + border-top-left-radius: 2px; + border-top-right-radius: 2px; } QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); color: white; - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - } + border-top: 1px solid #202020; /* selection color */ + border-bottom: 1px solid #333333; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + margin-top: 0px; + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #444444); + margin-top: 0px; } QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - color: #adadad; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + color: white; + padding-left: 9px; min-width: 5px; - border-top: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-bottom: 3px; + border-bottom: 1px solid #202020; /* selection color */ + border-top: 1px solid #202020; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); color: white; - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - + border-bottom: 1px solid #202020; /* selection color */ + border-top: 1px solid #333333; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + margin-bottom: 0px; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #333333); } QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #444444; - margin-top: 2px; - margin-left:10px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; + color: white; + padding-bottom: 9px; min-height: 5px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-right: 3px; + border-bottom: 1px solid #202020; /* selection color */ + border-right: 1px solid #202020; + border-left: 1px solid #202020; + border-top: 1px solid #202020; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #444444; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); + color: white; + border-bottom: 1px solid #202020; /* selection color */ + border-right: 1px solid #333333; + border-left: 1px solid #202020; + border-top: 1px solid #202020; + margin-right: 0px; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:1 #333333); + } QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #444444; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; + color: white; + padding-bottom: 9px; min-height: 5px; - border: 10px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-right: 3px; + border-bottom: 1px solid #202020; /* selection color */ + border-left: 1px solid #202020; + border-right: 1px solid #202020; + border-top: 1px solid #202020; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #444444; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); + color: white; + border-bottom: 1px solid #202020; /* selection color */ + border-left: 1px solid #333333; + border-left: 1px solid #202020; + border-top: 1px solid #202020; + margin-right: 0px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:1 #444444); + } QTabBar QToolButton, QDockWidget QTabBar QToolButton { @@ -2041,30 +2150,30 @@ QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover } QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-left-white.png); } QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-left-lightgray.png); } QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-right-white.png); } QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-right-lightgray.png); } /* QDockWiget ------------------------------------------------------------- --------------------------------------------------------------------------- */ QDockWidget { - background-color: #444444; - border: 1px solid #2a2a2a; + background-color: #333333; + border: 1px solid #020202; border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); + titlebar-close-icon: url(qss:images_classic/transparent.png); + titlebar-normal-icon: url(qss:images_classic/transparent.png); } QDockWidget::title { @@ -2072,7 +2181,7 @@ QDockWidget::title { padding: 3px; spacing: 4px; border: none; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); text-align: center; font-weight: bold; } @@ -2085,15 +2194,15 @@ QDockWidget::close-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-white.png); } QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); } QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-white.png); } QDockWidget::float-button { @@ -2104,16 +2213,16 @@ QDockWidget::float-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-white.png); } QDockWidget::float-button:hover { /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); + image: url(qss:images_classic/undock-blue.png); } QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-white.png); } /* QTreeView QListView QTableView ----------------------------------------- @@ -2128,38 +2237,58 @@ QTreeView::branch { } QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; + /* border-image: url(qss:images_classic/branch_vline_white.png) 0; */ + /* border-image: url(qss:images_classic/Arrow-right-white.png) 0; */ } QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-blue.png) 0; */ + /* border-image: url(qss:images_classic/branch_more_white.png) 0; */ } QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-lightgray.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_white.png) 0; */ } QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; + /* border-image: url(qss:images_classic/branch_more_closed_white.png) 0; */ } QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; + /* border-image: url(qss:images_classic/Arrow-right-whitey.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_closed_white.png) 0; */ } QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; + /* border-image: url(qss:images_classic/branch_more_open_white.png) 0; */ } QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; + /* border-image: url(qss:images_classic/branch_end_open_white.png) 0; */ } QTreeView::indicator:checked, QListView::indicator:checked, QTableView::indicator:checked, QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_light.svg); + image: url(qss:images_classic/checkbox-checked-white.png); } QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, @@ -2172,14 +2301,14 @@ QTableView::indicator:checked:pressed, QColumnView::indicator:checked:hover, QColumnView::indicator:checked:focus, QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); + image: url(qss:images_classic/checkbox-checked-blue.png); } QTreeView::indicator:unchecked, QListView::indicator:unchecked, QTableView::indicator:unchecked, QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, @@ -2192,14 +2321,14 @@ QTableView::indicator:unchecked:pressed, QColumnView::indicator:unchecked:hover, QColumnView::indicator:unchecked:focus, QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); + image: url(qss:images_classic/checkbox-Empty-blue.png); } QTreeView::indicator:indeterminate, QListView::indicator:indeterminate, QTableView::indicator:indeterminate, QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, @@ -2212,23 +2341,23 @@ QTableView::indicator:indeterminate:pressed, QColumnView::indicator:indeterminate:hover, QColumnView::indicator:indeterminate:focus, QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QTreeView, QListView, QTableView, QColumnView { - background-color: #444444; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #696968; + background-color: #252525; /* background of a lot of stuff including spreadsheets.*/ + /* border: 1px solid #ef0000; */ color: White; - gridline-color: #696968; + gridline-color: #020202; border-radius: 0px; } QTableView, QListView { - background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ + background-color: #252525; /* background of a lot of stuff including spreadsheets.*/ } @@ -2236,15 +2365,15 @@ QTreeView:disabled, QListView:disabled, QTableView:disabled, QColumnView:disabled { - background-color: #1c1b22; - color: #c2c7cb; + background-color: #444444; + color: #adadad; } QTreeView:selected, QListView:selected, QTableView:selected, QColumnView:selected { - background-color: @ThemeAccentColor1; + background-color: #333333; color: White; } @@ -2252,7 +2381,7 @@ QTreeView:focus, QListView:focus, QTableView:focus, QColumnView:focus { - border: 1px solid @ThemeAccentColor2; + /* border: 1px solid #020202; */ } QTreeView::item:pressed, @@ -2266,15 +2395,15 @@ QTreeView::item:selected:active, QListView::item:selected:active, QTableView::item:selected:active, QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; + background-color: #333333; } QTreeView::item:selected:!active, QListView::item:selected:!active, QTableView::item:selected:!active, QColumnView::item:selected:!active { - color: White; - background-color: @ThemeAccentColor1; + /* color: White; */ + background-color: #333333; } QTreeView::item:!selected:hover, @@ -2288,7 +2417,7 @@ QColumnView::item:!selected:hover { QTableCornerButton::section { background-color: #444444; - border: 1px transparent #696968; + border: 1px transparent #020202; border-radius: 0px; } @@ -2307,51 +2436,52 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview --------------------------------------------------------------------------- */ QHeaderView { background-color: transparent; - text-align: center; + /* text-align: bottom; */ } QHeaderView:disabled { - background-color: #444444; - color: rgb(174, 174, 174); + /* background-color: #444444; */ + color: #adadad; } QHeaderView::section { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); color: White; - border: 1px solid #2a2a2a; - font-size: 13px; - font-weight: bold; + border-bottom: 1px solid #020202; + border-right: 1px solid #020202; + border-top: 1px solid #020202; + border-left: 1px solid transparent; } QHeaderView::section::horizontal { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 1px; padding-left: 5px; - padding-right: 0px; + padding-right: 0px; */ } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 0px solid #696968; + /* border-left: 0px solid #020202; */ } QHeaderView::section::horizontal:disabled { - color: #353535; + color: #adadad; } QHeaderView::section::vertical { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 0; padding-left: 1px; - padding-right: 0px; - border-top: 0px solid #2a2a2a; + padding-right: 0px; */ + border-top: 0.5px solid #020202; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 2px solid #2a2a2a; + border-top: 2px solid #020202; } QHeaderView::section::vertical:disabled { - border-top: 2px solid #2a2a2a; + border-top: 2px solid #020202; } QHeaderView::down-arrow { @@ -2363,7 +2493,7 @@ QHeaderView::down-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); } QHeaderView::up-arrow { @@ -2373,7 +2503,7 @@ QHeaderView::up-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_light.svg); + image: url(qss:images_classic/Arrow-up-lightgray.png); } /* QToolBox -------------------------------------------------------------- @@ -2398,18 +2528,18 @@ QToolBox::tab { background-color: transparent; border: 0px solid #696969; color: white; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-image: url(qss:images_classic/Arrow-down-white.png); background-repeat: none; background-position: center left; } QToolBox::tab:disabled { - color: #696969; + color: #adadad; } QToolBox::tab:selected { background-color: #696969; - background-image: url(qss:images_dark-light/transparent.svg); + background-image: url(qss:images_classic/transparent.png); padding-right: 5px; background-repeat: none; } @@ -2417,7 +2547,7 @@ QToolBox::tab:selected { QToolBox::tab:selected:disabled { background-color: #696969; border-bottom: 0px solid #cccccc; - color: white; + color: #adadad; } QToolBox::tab:!selected { @@ -2449,8 +2579,8 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color /* (dot) .QFrame fix #141, #126, #123 */ .QFrame { border-radius: 0px; - border: 0px solid #696968; - background-color: #696969; + border: 0px solid #020202; + background-color: #333333; /* No frame */ /* HLine */ /* HLine */ @@ -2458,19 +2588,19 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color .QFrame[frameShape="0"] { border-radius: 1.9px; - border: 1px solid #696968; + border: 1px solid #020202; } .QFrame[frameShape="4"] { max-height: 1px; border: none; - background-color: #696968; + background-color: #020202; } .QFrame[frameShape="5"] { max-width: 1px; border: none; - background-color: #444444; + background-color: #333333; } /* QSplitter -------------------------------------------------------------- @@ -2503,17 +2633,11 @@ QSplitter::handle:vertical { height: 1px; } QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } + image: url(qss:images_classic/splitter_horizontal-lightgray.png); +} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); +QSplitter::handle:horizontal:hover { + image: url(qss:images_classic/splitter_vertical-lightgray.png); } /* QDateEdit, QDateTimeEdit ----------------------------------------------- @@ -2522,7 +2646,7 @@ QSplitter::handle:vertical:hover { QDateEdit, QDateTimeEdit { selection-background-color: @ThemeAccentColor1; border-style: solid; - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 1.9px; /* This fixes 103, 111 */ padding-top: 2px; @@ -2541,23 +2665,23 @@ QDateEdit::drop-down, QDateTimeEdit::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 12px; - border-left: 1px solid #696968; + border-left: 1px solid #020202; } QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); height: 8px; width: 8px; } QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-white.png); } QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #444444; + background-color: #333333; border-radius: 2px; - border: 1px solid #696968; + border: 1px solid #020202; selection-background-color: @ThemeAccentColor1; } @@ -2580,6 +2704,7 @@ QAbstractView:selected { PlotWidget { /* Fix cut labels in plots #134 */ padding: 0px; + color: rgba(2, 2, 2, 0.614); } /*================================================================================================== @@ -2618,19 +2743,18 @@ Gui--UrlLabel { } Gui--NotificationLabel { - background-color: #444444; - border: 1px solid #696968; + background-color: #333333; + border: 1px solid #020202; border-radius: 2px; } + Gui--OverlayToolButton:!hover{ background-color: transparent; - border: 0px solid transparent; image: url(qss:overlay/close_light.svg); } Gui--OverlayToolButton:hover { - image: url(qss:overlay/close_red.svg); } @@ -2694,7 +2818,7 @@ QMdiSubWindow { } QMdiSubWindow:hover { - border:2px solid #696968; + border:2px solid #020202; } QMdiSubWindow:active { @@ -2706,21 +2830,52 @@ Settings menu #groupsTreeView: ==================================================================================================*/ QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; } QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; } QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; + border-image: none; } + +/*================================================================================================== +Start page +==================================================================================================*/ +QWidget#thumbnailWidget { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #252525); + border-radius: 8px; + margin-bottom: 3px; + margin-right: 7px; + border: 1px solid #020202; +} + +QWidget#thumbnailWidget[state="hovered"] { + border: 0.5px solid @ThemeAccentColor2; +} + +QWidget#thumbnailWidget[state="pressed"] { + border: 1px solid @ThemeAccentColor1; +} \ No newline at end of file diff --git a/src/Gui/Stylesheets/Dark-contrast.qss b/src/Gui/Stylesheets/Dark-contrast.qss deleted file mode 100644 index 239863971e..0000000000 --- a/src/Gui/Stylesheets/Dark-contrast.qss +++ /dev/null @@ -1,2369 +0,0 @@ -/* -ABOUT -============================================================================================================ -version 2.22 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. - - -LICENSE -============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - - -CUSTOMIZATION -============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #444444 = main background color - #545454 = secondary - #787878 - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - @ThemeAccentColor3 - @ThemeAccentColor1 - @ThemeAccentColor3 - @ThemeAccentColor2 = main selection color - #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle - #7cabf9 - #adc5ed - #cbd8e6 - - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 - -*/ - - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #fafafa; /* Default color for labels and different text elements that usually use dark colors */ -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #444444; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #fafafa; - background-color: #444444; /* main background color */ -} - -QMenu, -QMenu::item { - color: #fefefe; - background-color: #111111; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; - background-color: @ThemeAccentColor1; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor1; - border: 2px @ThemeAccentColor1; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: @ThemeAccentColor1; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #fafafa; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #fafafa; - background-color: transparent; - border: 1px solid #fafafa; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(255,255,255,120); - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #1e1e1e; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,40); - border: 4px solid #444444; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,60); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,120); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: black; - border: 1px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor2); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(255,255,255,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(255,255,255,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #787878; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #787878; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #787878; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #787878; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #787878; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #fafafa; - background-color: #444444; /* same as tab content background color */ - border-color: #787878; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-bottom-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-top-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-right-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-left-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: rgba(255,255,255,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #444444) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #787878; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: @ThemeAccentColor1; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #444444; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #ffffff; - background-color: #0f0f0f; - alternate-background-color: #1f1f1f; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: @ThemeAccentColor1; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #444444; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #0f0f0f; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: black; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #ffffff; - background-color: #222222; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: black; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: black; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: black; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ -QMainWindow::separator { - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; -} - -QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; -} - - -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: black; - selection-color: #cbd8e6; - selection-background-color: @ThemeAccentColor1; - border: 1px solid #333333; - border-radius: 3px; - margin: 4px; -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -/* Action group */ -QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ -} - -QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #0a0a0a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { - color: #fafafa; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #545454; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #545454; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #545454; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #545454; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #545454; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #545454; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; -} - -/* Fix for lists inside task panels */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { - color: #fafafa; - background-color: #787878; -} - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: black; - selection-color: white; - selection-background-color: @ThemeAccentColor3 ; - border: 1px solid black; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: black; - border: 1px solid #424242; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: #fafafa; - border-color: @ThemeAccentColor3; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); /* same as up/down or drop-down button color */ - background-color: @ThemeAccentColor1; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #545454; - background-color: black; /* same as enabled color */ - border-color: black; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: black; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #333333; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #fafafa; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: #fafafa; - selection-background-color: @ThemeAccentColor1; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 black); - border: 1px solid black; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: #cbd8e6; - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: black; - background-color: #3c3c3c; /* same as enabled color */ - border-color: #3c3c3c; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-color: @ThemeAccentColor3; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 black, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: black; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #444444; /* main background color */ - border: 1px solid #444444; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-color: @ThemeAccentColor1; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 black, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #cbd8e6; - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 black, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #fefefe; - background-color: #111111; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: black; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: black; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; -} - -QRadioButton::indicator:checked { - background-color: @ThemeAccentColor1; /* QCheckBox has the same color */ - border: 1px solid @ThemeAccentColor1; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #fafafa; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #cbd8e6; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #fafafa; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ - border: 1px solid @ThemeAccentColor1; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: @ThemeAccentColor1; /* slightly lighter than default */ - border-color: @ThemeAccentColor1; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ - border: 1px solid @ThemeAccentColor1; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(255,255,255,30); - border: 1px solid rgba(255,255,255,40); - border-radius: 5px; - margin: 4px 0px; -} - -QSlider::groove:horizontal { - height: 8px; -} - -QSlider::groove:vertical { - width: 8px; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #424242; - background-color: #424242; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: black; - border: 1px solid black; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #adc5ed; - background-color: @ThemeAccentColor1; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ -} - -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ -} - -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ -} - -QToolBar > QPushButton:checked { - border: 1px solid #7cabf9; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor1); -} - -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #3c3c3c); - border: 1px solid #424242; - border-bottom-color: #333333; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ -} - -QToolBar > QPushButton:checked:hover { - border-color: #6f9efa; -} - -QToolBar > QPushButton:!checked:hover { - color: #cbd8e6; - border-color: #333333; -} - -QToolBar > QPushButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #424242, stop:1 #444444); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(255,255,255,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(255,255,255,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor1, stop:1 #7cabf9); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,60); /* transparency for #7cabf9 color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,80); /* transparency for #7cabf9 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: @ThemeAccentColor3; - selection-background-color: #adc5ed; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #333333; -} - -QTableView::item:selected { - color: @ThemeAccentColor3; - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: @ThemeAccentColor3; - selection-color: white; - selection-background-color: @ThemeAccentColor1; - border-color: #cbd8e6; - background-color: #cbd8e6; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: white; - background-color: #444444; -} - -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; -} - -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); -} - -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); -} - - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; -} - -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; -} - -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; -} - - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; -} - -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; -} - -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; - } diff --git a/src/Gui/Stylesheets/Dark-modern.qss b/src/Gui/Stylesheets/Dark-modern.qss deleted file mode 100644 index bce7169a28..0000000000 --- a/src/Gui/Stylesheets/Dark-modern.qss +++ /dev/null @@ -1,2742 +0,0 @@ -/* -ABOUT -============================================================================================================ -Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?t=78431 - -INSTALLATION WHEN NECESSARY -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -FOLLOWING CODES ARE CHANGED IN THE SETTINGS: - @ThemeAccentColor1 - @ThemeAccentColor2 -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ - - -/* Reset elements ------------------------------------------------------------ - -Resetting everything helps to unify styles across different operating systems - ---------------------------------------------------------------------------- */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*hacks */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; - -} -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; - -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #ACC8E5; /* same as focused background color */ -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #2b2b2b; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} -/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ -Gui--NavigationIndicatorGui--BlenderNavigationStyle { -/*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); -} -/*===== -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #2b2b2b; - border: 0px solid #696968; - padding: 0px; - color: White; - selection-background-color: @ThemeAccentColor1; - selection-color: White; -} - -QWidget:disabled { - color: #c2c7cb; - selection-background-color: @ThemeAccentColor1; - selection-color: #c2c7cb; -} - -QWidget::item:selected { - background-color: @ThemeAccentColor1; -} - - /* Causes issue with colorselector. - QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; - }*/ - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - /*background-color: #3c3c3c;*/ - border: 0px solid #696968; - spacing: 0px; - padding: 1px; -} - -QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_light.svg); -} - -QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_light.svg); -} - -QMainWindow::separator:horizontal { - width: 4px; - margin-top: 0.1px; - margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ -} - -QMainWindow::separator:vertical { - height: 4px; - margin-left: 0.1px; - margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #1c1b22; - color: White; - /* If you remove the border property, background stops working on Windows */ - border: none; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 0px solid #3c3c3c; - /* Fixes Spyder #9120, #9121 */ - background: #2b2b2b; - /* Fixes #205, white vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - color: #1e1e1e; - background-color: #7d7f81; - border: 1px solid #696968; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - color: white; - padding: 0px; - outline: none; - border: 1px solid transparent; - background-color: transparent; -} - -QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QCheckBox QWidget:disabled { - color: #c2c7cb; -} - -QCheckBox::indicator { - color: white; - background-color: #1c1b22; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QCheckBox::indicator:unchecked { - background-color: #1c1b22; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QCheckBox::indicator:unchecked:disabled { - background-color: #2b2b2b; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QCheckBox::indicator:checked { - background-color: #1c1b22; - /*border: 1px solid #696968; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QCheckBox::indicator:checked:disabled { - background-color: #2b2b2b; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QCheckBox::indicator:indeterminate { - background-color: #1c1b22; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox::indicator:indeterminate:disabled { - background-color: #2b2b2b; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #696968; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; -} - -QGroupBox::indicator { - color: white; - background-color: #3c3c3c; - border: 1px solid #696968; - width: 12px; - height: 12px; - border-radius:1px; -} - -QGroupBox::indicator:unchecked { - background-color: #696968; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:unchecked:disabled { - background-color: #1c1b22; - border: 1px solid #696968; -} - -QGroupBox::indicator:checked { - border: none; - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:checked:disabled { - background-color: @ThemeAccentColor1; -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: transparent; - color: White; - border: none; - spacing: 4px; - padding-top: 4px; - padding-bottom: 4px; - outline: none; -} - -QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QRadioButton:disabled { - background-color: #696968; - color: #353535; -} - -QRadioButton QWidget { - background-color: transparent; - color: White; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - background-color: #3c3c3c; - border: 1px solid #696968; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; -} - -QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; -} - -QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #696968; -} - -QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - background-color: #696968; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #161616; - /*padding: 1px; - border: 0px solid rgba(0,0,0,140);*/ - color: White; - selection-background-color: @ThemeAccentColor1; -} - -QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; -} - -QMenuBar::item { - background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ -} - -QMenuBar::item:selected { - background: transparent; - border: 0px solid #696968; - background-color: @ThemeAccentColor1; -} - -QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #696968; - background-color: @ThemeAccentColor1; - color: White; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border-bottom: 2px rgba(0,0,0,140); - border-right: 2px rgba(0,0,0,140); - color: White; - margin: 0px; - background-color: #161616; - selection-background-color: @ThemeAccentColor1; -} - -QMenu::separator { - height: 2px; - background-color: #3c3c3c; - margin-left: 30%; - margin-right: 30%; -} - -QMenu::item { - background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ - /* Reserve space for selection border */ - border: 0px transparent #696968; -} - -QMenu::item:selected { - color: White; - background-color: @ThemeAccentColor1; -} - -QMenu::item:pressed { - background-color: @ThemeAccentColor1; -} - -QMenu::icon { - margin-left: 5px; - width: 14px; - height: 14px; -} - -QMenu::indicator { - margin-left: 2px; - margin-right: 2px; - padding: 0px; - width: 12px; - height: 12px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor2; - margin-left: -5px; - border: 5px solid @ThemeAccentColor2; - position: absolute; - border-radius: 0px; -} -QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:checked:disabled { - image:url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); -} - -QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:checked { - border: none; - outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); -} - -QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:checked:disabled { - outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); -} - -QMenu::right-arrow { - margin: 5px; - padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_lighter.svg); - height: 12px; - width: 12px; - background-color: transparent; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #5b5b5b; - color: White; - border: 1px solid #696968; - border-radius: 2px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: transparent; - border: 0px solid #696968; - border-radius: 0px; - /* fix #159 */ - padding: 0px; - /* remove min-height to fix #244 */ - color: White; -} - -QAbstractScrollArea:disabled { - color: #353535; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- -text input field disabled!!!!*/ -QScrollArea QWidget:disabled { - background-color: #2b2b2b; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 0px solid #696968; - border-radius: 1.9px; - background-color: #2b2b2b; -} - -QScrollBar:vertical { - background-color: #2b2b2b; - width: 16px; - margin: 16px 2px 16px 2px; - border: 0px solid #696968; - border-radius: 1.9px; -} - -QScrollBar::handle:horizontal { - background-color: #696969; - border: 1px solid #2b2b2b; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::handle:vertical { - background-color: #696969; - border: 1px solid #696968; - min-height: 8px; - border-radius: 1.9px; -} - -QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 1.9px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_light.svg); - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_light.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - - -report view ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #2b2b2b; - color: White; - border-radius: 1.9px; - border: 0px solid #696968; -} - -QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTextEdit:selected { - background: #346792; - color: white; -} - -/* QPlainTextEdit --------------------------------------------------------- -Python ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: #3c3c3c; - color: White; - border-radius: 1.9px; - border: 0px solid #696968; -} - -QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QPlainTextEdit:selected { - background: @ThemeAccentColor1; - color: White; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/sizegrip_light.svg); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 0px; - border: 0px solid #696968; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #2b2b2b; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; -} - -QToolBar:disabled { - /* Fixes #272 */ - background-color: #2b2b2b; -} - -QToolBar::handle:horizontal { - width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); -} - -QToolBar::handle:vertical { - height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); -} - -QToolBar::separator:horizontal { - width: 2px; - margin: 4px 4px; - background-color: transparent; -} - -QToolBar::separator:vertical { - height: 2px; - margin: 4px 4px; - background-color: transparent; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ -QToolButton#qt_toolbar_ext_button { -margin: 0px; -padding: 0px; -background-color: #696969; -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -background-repeat: none; -background-position: center center; -} - -QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -background-color: @ThemeAccentColor1; -} - -QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -border-color: #696968; -background-color: @ThemeAccentColor1; -} - - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox, -QSpinBox { - background-color: #1c1b22; - border: 1px solid transparent; - color: White; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ - min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: #696968; - subcontrol-origin: border; - subcontrol-position: top right; - border-left: 1px solid transparent; - border-bottom: 1px solid #1c1b22; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_light.svg); - /* height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::up-arrow:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox:down-button { - background-color: #696968; - subcontrol-origin: border; - subcontrol-position: bottom right; - border-left: 1px solid #696968; - border-top: 1px solid #696968; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-top: -1px;*/ -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - /*height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: White;*/ -} - -QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QAbstractSpinBox:selected { - background: @ThemeAccentColor2; - /*color: White;*/ -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: transparent; - border: 0px solid #696968; - padding: 2px; - margin: 0px; - color: White; -} - -QLabel:disabled { - background-color: transparent; - border: 0px solid #696968; - color: #c2c7cb; -} - -QLabel[haslink="true"] { - color: orange; -} - - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: #1c1b22; - border: 1px solid #696968; - color: White; - border-radius: 1.9px; -} - -QTextBrowser:disabled { - background-color: #2b2b2b; - border: 1px solid #696968; - color: #c2c7cb; - border-radius: 1.9px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: transparent; - border: 0px solid @ThemeAccentColor1; - color: White; - border-radius: 0px; -} - -QGraphicsView:disabled { - background-color: #1c1b22; - border: 0px solid #696968; - color: #c2c7cb; - border-radius: 0px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 0px solid #ff00f7; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #696968; - border-radius: 1.9px; -} - -QCalendarWidget:disabled { - background-color: #353535; - color: #c2c7cb; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #1aff00; - color: White; -} - -QLCDNumber:disabled { - background-color: #2b2b2b; - color: #c2c7cb; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #c2c7cb; - border: 1px solid #696968; - color: White; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #161616; - border: 1px solid #696968; - color: #696969; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar::chunk { - background-color: @ThemeAccentColor1; - color: #2b2b2b; - border-radius: 1.9px; -} - -QProgressBar::chunk:disabled { - background-color: #161616; - color: #696968; - border-radius: 1.9px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: #696969; - color: White; - border-radius: 2px; - padding: 2px; - outline: none; - border: none; -} - -QPushButton:disabled { - background-color: #2b2b2b; - color: #c2c7cb; - border-radius: 2px; - padding: 2px; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #3c3c3c; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:selected { - background: @ThemeAccentColor1; -} - -QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; -} - -QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:selected { - background: @ThemeAccentColor2; - color: White; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QDialogButtonBox QPushButton { - /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - color: White; - border-radius: 1px; - padding: 0px; - outline: none; - border: none; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:disabled { - background-color: rgba(0, 0, 0, 0.065); - color: transparent; - border-radius: 1px; - padding: 0px; - opacity: 1.0; -} - -QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:disabled { - background-color: #b65555; - color: #c2c7cb; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:hover { - background-color: @ThemeAccentColor1; - color: White; -} - -QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolButton:checked:selected { - background: @ThemeAccentColor2; - color: White; -} - -QToolButton:hover { - background-color: @ThemeAccentColor1; - color: White; -} - -QToolButton:pressed { - background-color: @ThemeAccentColor2; -} - -QToolButton:selected { - background: @ThemeAccentColor1; - color: White; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} -QToolButton[popupMode="0"]::menu-button { - border: none; -} - -QToolButton[popupMode="0"]::menu-button:hover { - border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; -} -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 20px; -} - -QToolButton::menu-button { - border-bottom: 0px solid #ffffff; - border-radius: 2px; - /* 16px width + 4px for border = 20px allocated above */ - width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; -} - -QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ - -} - -QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ -} - -QToolButton::menu-indicator { - /* Exclude a shift for better image */ - subcontrol-position: right bottom; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; - background: transparent; -} -QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; -} -QToolButton::menu-arrow:hover { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #696968; - color: White; - border-radius: 1.9px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #c2c7cb; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid transparent; - background: #1c1b22; - border-radius: 2px; - selection-background-color: @ThemeAccentColor1; - padding-left: 2px; - padding-right: 2px; - /* padding-right = 36; 4 + 16*2 See scrollbar size */ - /* changed to 4px to fix #239 */ - /* Fixes #103, #111 */ - min-height: 1.5em; - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} -QComboBox:editable { - background: #1c1b22; -} -QComboBox QAbstractItemView { - border: 0px solid #696968; - border-radius: 0px; - background-color: #1c1b22; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView:hover { - background-color:Black; - color: White; -} - -QComboBox QAbstractItemView:selected { - background: @ThemeAccentColor1; - color: White; -} - -QComboBox QAbstractItemView:alternate { - background: #3c3c3c; -} - -QComboBox:checked { - color: #ffffff; -} - -QComboBox:disabled { - background-color: #2b2b2b; - color: #353535; -} - -QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; -} - -QComboBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QComboBox:on { - selection-background-color: @ThemeAccentColor2; -} - -QComboBox::indicator { - padding-left: 8px; - background-color: transparent; -} - -QComboBox::indicator:checked { - width: 12px; - height: 12px; - image: url(qss:images_dark-light/check_light.svg); -} - -QComboBox::item { - /* Remove to fix #282, #285 and MR #288*/ - /*&:checked { - font-weight: bold; - } - - &:selected { - border: 0px solid transparent; - } - */ -} -/* Background color of popup-list.*/ - -/* Needed to complete the rule set. */ -QComboBox::item:alternate { - background: #3c3c3c; -} -/* Color of the selected list item. */ -QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; - background: @ThemeAccentColor2; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - background-color: #696969; - subcontrol-position: top right; - width: 14px; - border-left: 1px solid #696968; -} -QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 10px; - width: 10px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: white; - qproperty-groupBackground: #3c3c3c; - border: 0px solid #696968; - -} - -/* Action group */ -QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - -} - -QSint--ActionGroup { -padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -background-color: #696969; /* Task Panel Header background color */ -border-top-left-radius: 3px; -border-top-right-radius: 3px; -border-bottom-left-radius: 0px; -border-bottom-right-radius: 0px; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { -color: white; /* Task Panel Header text color */ -text-align: left; -font-weight: bold; -border: none; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ -margin: 0px; -padding: 0px; -border-bottom: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -border-top-left-radius: 0px; -border-top-right-radius: 0px; -border-bottom-left-radius: 3px; -border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #2b2b2b; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { -border-bottom-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { -border-top-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { -border-right-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { -border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { -padding: 2px; /* bigger padding crops text and icons... */ -margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { -color: white; -background-color: black; -} - - -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: white; - text-align: center; - background-color: #696969; - border: 0px solid #adadad; - padding: 1px 1px; /* different than regular QPushButton */ - margin: 0px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #696969; - background-color: #1c1b22; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #2b2b2b; -} - -QSlider:focus { - /*border: 1px solid @ThemeAccentColor2;*/ -} - -QSlider::groove:horizontal { - background: #2b2b2b; - border: 1px solid #696968; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::groove:vertical { - background: @ThemeAccentColor1; - border: 1px solid #696968; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical { - background: @ThemeAccentColor1; - border: 1px solid #696968; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical :disabled { - background: #696968; -} - -QSlider::sub-page:horizontal { - background: @ThemeAccentColor1; - border: 1px solid #696968; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::sub-page:horizontal:disabled { - background: @ThemeAccentColor1; -} - -QSlider::handle:horizontal { - background: #696968; - border: 1px solid #696968; - width: 10px; - height: 8px; - margin: -4px 0px; - border-radius: 6px; -} - -QSlider::handle:horizontal:hover { - background: @ThemeAccentColor1; - border: 1px solid #696968; -} - -QSlider::handle:horizontal:focus { - background: @ThemeAccentColor2; - border: 1px solid @ThemeAccentColor2; -} - -QSlider::handle:vertical { - background: #696968; - border: 1px solid #696968; - width: 10px; - height: 8px; - margin: 0px -4px; - border-radius: 6px; -} - -QSlider::handle:vertical:hover { - background: @ThemeAccentColor1; - border: 1px solid #696968; -} - -QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: #1c1b22; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #696968; - border-radius: 2px; - color: White; -} - -QLineEdit:disabled { - background-color: #2b2b2b; - color: #c2c7cb; -} - -QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: White; -} - -QLineEdit:focus { - border: 2px solid @ThemeAccentColor2; -} - -QLineEdit:selected { - background-color: @ThemeAccentColor1; - color: white; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: @ThemeAccentColor1; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 0px; -} - -QTabWidget::pane { - border: 0px solid #8c00ffa1; - border-radius: 1.9px; - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; - background-color: #2b2b2b; -} - -QTabWidget::pane:selected { - background-color: @ThemeAccentColor1; - border: 1px solid #346792; -} -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar, QDockWidget QTabBar { - qproperty-drawBase: 0; - border-radius: 2px; - margin: 0px; - padding: 2px; - border: 0; - alignment: center; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button, QDockWidget QTabBar::close-button { - border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_light.svg); -} - -QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); - /*background-color: rgba(255, 0, 0, 0.3);*/ -} - -QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); -} - -QTabBar::tab, QDockWidget QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ -} - -QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - border-bottom: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - border-top: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - border-right: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - border-left: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - border-bottom: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - border-top: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - border-right: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - border-left: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - border-bottom: 2px solid #696969; - margin-top: 2px; -} - -QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - border-top: 2px solid #696969; - margin-bottom: 2px; -} - -QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - border-left: 2px solid #696969; - margin-right: 2px; -} - -QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - border-right: 2px solid #696969; - margin-left: 2px; -} - -QTabBar::tab:top, QDockWidget QTabBar::tab:top { - background-color: #2b2b2b; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border: 1px solid #696969; - border-radius: 4px; -} - -QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - background-color: #696969; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - border: 1px solid #696969; - background-color: #2b2b2b; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 4px; - min-width: 5px; -} - -QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - background-color: #696969; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #2b2b2b; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; - min-height: 5px; -} - -QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #2b2b2b; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; -} - -QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #2b2b2b; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - min-height: 5px; - border: 10px; -} - -QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #2b2b2b; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; -} - -QTabBar QToolButton, QDockWidget QTabBar QToolButton { - /* Fixes #136 */ - background-color: #2b2b2b; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_light.svg); -} - -QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_light.svg); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - background-color: #2b2b2b; - border: 1px solid #696968; - border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 3px; - spacing: 4px; - border: none; - background-color: #2b2b2b; - text-align: center; - font-weight: bold; -} - -QDockWidget::close-button { - icon-size: 10px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/close_light.svg); -} - -QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); -} - -QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_light.svg); -} - -QDockWidget::float-button { - icon-size: 12px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::float-button:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); -} - -QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_light.svg); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - -QTreeView::indicator:checked, -QListView::indicator:checked, -QTableView::indicator:checked, -QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_light.svg); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed, -QTableView::indicator:checked:hover, -QTableView::indicator:checked:focus, -QTableView::indicator:checked:pressed, -QColumnView::indicator:checked:hover, -QColumnView::indicator:checked:focus, -QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked, -QTableView::indicator:unchecked, -QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed, -QTableView::indicator:unchecked:hover, -QTableView::indicator:unchecked:focus, -QTableView::indicator:unchecked:pressed, -QColumnView::indicator:unchecked:hover, -QColumnView::indicator:unchecked:focus, -QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate, -QTableView::indicator:indeterminate, -QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed, -QTableView::indicator:indeterminate:hover, -QTableView::indicator:indeterminate:focus, -QTableView::indicator:indeterminate:pressed, -QColumnView::indicator:indeterminate:hover, -QColumnView::indicator:indeterminate:focus, -QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #2b2b2b; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #696968; - color: White; - gridline-color: #696968; - border-radius: 0px; -} - -QTableView, -QListView { - background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ -} - - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: #1c1b22; - color: #c2c7cb; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: @ThemeAccentColor1; - color: White; -} - -QTreeView:focus, -QListView:focus, -QTableView:focus, -QColumnView:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:!active, -QListView::item:selected:!active, -QTableView::item:selected:!active, -QColumnView::item:selected:!active { - color: White; - background-color: @ThemeAccentColor1; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: White; - background-color: @ThemeAccentColor1; -} - -QTableCornerButton::section { - background-color: #2b2b2b; - border: 1px transparent #696968; - border-radius: 0px; -} - -QTableView::item { - color: white; -} -QTableView { - /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ - /*qproperty-aliasBgColor: #f700ff;*/ -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: #2b2b2b; - border: 1px solid #696968; - padding: 0; - margin: 0; - border-radius: 0px; - text-align: center; -} - -QHeaderView:disabled { - background-color: #2b2b2b; - border: 1px solid #696968; - color: rgb(174, 174, 174); -} - -QHeaderView::section { - background-color: #3c3c3c; - color: White; - border-radius: 0px; - font-size: 13px; - font-weight: bold; - text-align: center; -} - -QHeaderView::section::horizontal { - padding-top: 0; - padding-bottom: 0; - padding-left: 10px; - padding-right: 10px; - border-left: 1px solid #696968; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 1px solid #696968; - padding-left: 15px; -} - -QHeaderView::section::horizontal:disabled { - color: #353535; -} - -QHeaderView::section::vertical { - padding-top: 0; - padding-bottom: 0; - padding-left: 1px; - padding-right: 1px; - border-top: 1px solid #696968; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 1px solid #696968; -} - -QHeaderView::section::vertical:disabled { - color: #7a7a7a; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: #696969; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::up-arrow { - background-color: #696969; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox -used in PATH - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 1px solid #696969; - border-radius: 4px; - background-color: transparent; -} - -QToolBox:selected { - padding: 0px; - border: 0px solid @ThemeAccentColor1; -} - -QToolBox::tab { - background-color: #696969; - border: 0px solid #696969; - color: white; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); - background-repeat: none; - background-position: center left; -} - -QToolBox::tab:disabled { - color: #696969; -} - -QToolBox::tab:selected { - background-color: #696969; - background-image: url(qss:images_dark-light/transparent.svg); - padding-right: 5px; - background-repeat: none; -} - -QToolBox::tab:selected:disabled { - background-color: #696969; - border-bottom: 0px solid #cccccc; - color: white; -} - -QToolBox::tab:!selected { - -} - -QToolBox::tab:!selected:disabled { - background-color: #2b2b2b; -} - -QToolBox::tab:hover { - background-color: @ThemeAccentColor1; - } - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: transparent; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 0px; - border: 0px solid #696968; - background-color: #696969; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 1.9px; - border: 1px solid #696968; -} - -.QFrame[frameShape="4"] { - max-height: 1px; - border: none; - background-color: #696968; -} - -.QFrame[frameShape="5"] { - max-width: 1px; - border: none; - background-color: #2b2b2b; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ----------------------------------------------------------------------------*/ -QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ - -} - -QSplitter::handle { - margin: 0px 0px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - width: 1px; -} - -QSplitter::handle:vertical { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - height: 1px; -} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } - -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); -} - -/* QDateEdit, QDateTimeEdit ----------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit, QDateTimeEdit { - selection-background-color: @ThemeAccentColor1; - border-style: solid; - border: 1px solid #696968; - border-radius: 1.9px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on, QDateTimeEdit:on { - selection-background-color: @ThemeAccentColor1; -} - -QDateEdit::drop-down, QDateTimeEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #696968; -} - -QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #2b2b2b; - border-radius: 2px; - border: 1px solid #696968; - selection-background-color: @ThemeAccentColor1; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid @ThemeAccentColor1; - color: White; -} - -QAbstractView:selected { - background: @ThemeAccentColor1; - color: White; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -Gui--NotificationLabel { - background-color: #444444; - border: 1px solid #696968; - border-radius: 2px; -} - -Gui--OverlayToolButton:!hover{ - background-color: transparent; - border: 0px solid transparent; - image: url(qss:overlay/close_light.svg); -} - -Gui--OverlayToolButton:hover { - - image: url(qss:overlay/close_red.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Transparent"]:!checked { - image: url(qss:overlay/transparent_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Transparent"]:checked { - image: url(qss:overlay/transparent_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Overlay"]:!checked{ - image: url(qss:overlay/overlay_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Overlay"]:checked { - image: url(qss:overlay/overlay_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN AutoMode"]:!checked { - image: url(qss:overlay/mode_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN AutoMode"]:checked { - image: url(qss:overlay/mode_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Float"]:!checked { - image: url(qss:overlay/float_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Float"]:checked { - image: url(qss:overlay/float_lighter.svg); -} - -/*================================================================================================== -Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 -==================================================================================================*/ -QMdiSubWindow { - border:2px solid #333333; - border-radius: 2px; - border-top-right-radius: 7px; - border-top-left-radius: 7px; - background-color: #333333; -} - -QMdiSubWindow:hover { - border:2px solid #696968; -} - -QMdiSubWindow:active { - border:2px solid @ThemeAccentColor1; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; -} diff --git a/src/Gui/Stylesheets/Dark.qss b/src/Gui/Stylesheets/Light theme.qss similarity index 66% rename from src/Gui/Stylesheets/Dark.qss rename to src/Gui/Stylesheets/Light theme.qss index 640270b305..21caf77b73 100644 --- a/src/Gui/Stylesheets/Dark.qss +++ b/src/Gui/Stylesheets/Light theme.qss @@ -19,6 +19,7 @@ INSTALLATION WHEN NECESSARY FOLLOWING CODES ARE CHANGED IN THE SETTINGS: @ThemeAccentColor1 @ThemeAccentColor2 + @ThemeAccentColor3 See Qt documentation: - https://doc.qt.io/qt-5/stylesheet.html @@ -90,7 +91,7 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { /* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; + color: #000000; background-color: #ACC8E5; /* same as focused background color */ } @@ -101,46 +102,42 @@ QMainWindow, QDialog, QDockWidget, QToolBar { - background-color: #7F7F7F; /* main background color */ + background-color: #f0f0f0; /* main background color */ } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); + /* background-image: url(qss:images_classic/background_freecad_light.png); background-position: center center; - background-repeat: no-repeat; + background-repeat: no-repeat; */ } /*navgation src/Mod/Tux/NavigationIndicatorGui.py */ Gui--NavigationIndicatorGui--BlenderNavigationStyle { /*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); } -/*===== + /* QWidget ---------------------------------------------------------------- --------------------------------------------------------------------------- */ QWidget { - background-color: #7F7F7F; - border: 0px solid #696968; + /* background-color: #d8d8d8; */ + border: 0px solid #ababab; padding: 0px; - color: White; - selection-background-color: @ThemeAccentColor1; - selection-color: White; + /* color: black; */ + selection-background-color: transparent; + selection-color: black; } QWidget:disabled { - color: #c2c7cb; + color: #adadad; selection-background-color: @ThemeAccentColor1; - selection-color: #c2c7cb; + selection-color: #cccccc; } QWidget::item:selected { background-color: @ThemeAccentColor1; } - /* Causes issue with colorselector. - QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; - }*/ /* QMainWindow ------------------------------------------------------------ @@ -149,36 +146,29 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow --------------------------------------------------------------------------- */ QMainWindow::separator { - /*background-color: #3c3c3c;*/ - border: 0px solid #696968; + border: 0px solid #ababab; spacing: 0px; padding: 1px; } QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_light.svg); + image: url(qss:images_classic/splitter_vertical-lightgray.png); } QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_light.svg); + image: url(qss:images_classic/splitter_horizontal-lightgray.png); } QMainWindow::separator:horizontal { width: 4px; margin-top: 0.1px; margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { height: 4px; margin-left: 0.1px; margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ } /* QToolTip --------------------------------------------------------------- @@ -187,13 +177,21 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip --------------------------------------------------------------------------- */ QToolTip { - background-color: #505050; - color: White; + background-color: #FFFFE1; + color: black; /* If you remove the border property, background stops working on Windows */ border: none; + font-weight:bolder; + border-top-width: 0.5px; + border-left-width: 0.5px; + border-right-width: 1.5px; + border-bottom-width: 1.5px; + border-style: solid; + border-color: #e6e6e6; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Remove opacity, fix #174 - may need to use RGBA */ + /* border-radius: 4px; */ } /* QStatusBar ------------------------------------------------------------- @@ -202,9 +200,9 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar --------------------------------------------------------------------------- */ QStatusBar { - border: 0px solid #3c3c3c; + border: 0px solid #ededed; /* Fixes Spyder #9120, #9121 */ - background: #7F7F7F; + background: #f0f0f0; /* Fixes #205, white vertical borders separating items */ } @@ -213,9 +211,9 @@ QStatusBar::item { } QStatusBar QToolTip { - color: #1e1e1e; - background-color: #7d7f81; - border: 1px solid #696968; + background-color: #f0f0f0; + border: 1px solid #ababab; + color: #000000; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Reducing transparency to read better */ @@ -233,7 +231,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox --------------------------------------------------------------------------- */ QCheckBox { - color: white; + color: black; padding: 0px; outline: none; border: 1px solid transparent; @@ -241,40 +239,39 @@ QCheckBox { } QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QCheckBox QWidget:disabled { - color: #c2c7cb; + color: #adadad; } QCheckBox::indicator { - color: white; - background-color: #505050; + color: black; + background-color: #f0f0f0; width: 12px; height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-black.png); } QCheckBox::indicator:unchecked { - background-color: #505050; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + background-color: #fdfdfd; + image:url(qss:images_classic/checkbox-Empty-black.png); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-black.png); } QCheckBox::indicator:unchecked:disabled { - background-color: #7F7F7F; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + background-color: #d8d8d8; + image:url(qss:images_classic/checkbox-Empty-lightgray.png); } QCheckBox::indicator:checked { - background-color: #505050; - /*border: 1px solid #696968; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); + background-color: #f0f0f0; + image:url(qss:images_classic/checkbox-checked-black.png); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { @@ -282,19 +279,19 @@ QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { } QCheckBox::indicator:checked:disabled { - background-color: #7F7F7F; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); + background-color: #d8d8d8; + image: url(qss:images_classic/checkbox-checked-lightgray.png); } QCheckBox::indicator:indeterminate { - background-color: #505050; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #f0f0f0; + border: 1px solid #ababab; + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QCheckBox::indicator:indeterminate:disabled { - background-color: #7F7F7F; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #d8d8d8; + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { @@ -307,36 +304,30 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox --------------------------------------------------------------------------- */ QGroupBox { - font-weight: bold; - border: 1px solid #696968; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; + background-color: #ededed; + border: 1px solid #d8d8d8; + border-radius: 2px; + margin-top: 3ex; /* leave space at the top for the title */ } QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; + top: -18px; + left: 0px; } QGroupBox::indicator { - color: white; - background-color: #3c3c3c; - border: 1px solid #696968; + color: black; + background-color: #ededed; + border: 1px solid #ababab; width: 12px; height: 12px; border-radius:1px; } QGroupBox::indicator:unchecked { - background-color: #696968; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #ababab; + border: 1px solid #ababab; + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { @@ -344,13 +335,13 @@ QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGro } QGroupBox::indicator:unchecked:disabled { - background-color: #505050; - border: 1px solid #696968; + background-color: #d8d8d8; + border: 1px solid #ababab; } QGroupBox::indicator:checked { border: none; - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-black.png); } QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { @@ -368,7 +359,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton --------------------------------------------------------------------------- */ QRadioButton { background-color: transparent; - color: White; + color: black; border: none; spacing: 4px; padding-top: 4px; @@ -377,17 +368,16 @@ QRadioButton { } QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QRadioButton:disabled { - background-color: #696968; - color: #353535; + background-color: #d8d8d8; } QRadioButton QWidget { background-color: transparent; - color: White; + color: black; spacing: 0px; padding: 0px; outline: none; @@ -395,44 +385,36 @@ QRadioButton QWidget { } QRadioButton::indicator { - background-color: #3c3c3c; - border: 1px solid #696968; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-unchecked-black.png); } QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; + } QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #696968; + border: 1px solid #d8d8d8; } QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_light.svg); + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-checked-black.png); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_light.svg); + } QRadioButton::indicator:checked:disabled { outline: none; - background-color: #696968; - image:url(qss:images_dark-light/radiobutton_dark.svg); + background-color: #d8d8d8; + image:url(qss:images_classic/Radio-checked-lightgray.png); } /* QMenuBar --------------------------------------------------------------- @@ -441,40 +423,29 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar --------------------------------------------------------------------------- */ QMenuBar { - background-color: #505050; - /*padding: 1px; - border: 0px solid rgba(0,0,0,140);*/ - color: White; + background-color: #f0f0f0; + color: black; selection-background-color: @ThemeAccentColor1; } QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QMenuBar::item { background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ } QMenuBar::item:selected { background: transparent; - border: 0px solid #696968; + border: 0px solid #ababab; background-color: @ThemeAccentColor1; } QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #696968; + border: 0px solid #ababab; background-color: @ThemeAccentColor1; - color: White; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ + color: black; } /* QMenu ------------------------------------------------------------------ @@ -485,28 +456,31 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu QMenu { border-bottom: 2px rgba(0,0,0,140); border-right: 2px rgba(0,0,0,140); - color: White; + color: black; margin: 0px; - background-color: #505050; + background-color: #f0f0f0; selection-background-color: @ThemeAccentColor1; } QMenu::separator { height: 2px; - background-color: #3c3c3c; - margin-left: 30%; - margin-right: 30%; + background-color: #ededed; + margin-left: 10%; + margin-right: 10%; } QMenu::item { background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ + padding-left: 5px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 50px; /* Reserve space for selection border */ - border: 0px transparent #696968; + border: 0px transparent #ababab; } QMenu::item:selected { - color: White; + color: black; background-color: @ThemeAccentColor1; } @@ -538,7 +512,7 @@ QMenu::icon:checked { /* appearance of a 'checked' icon */ border-radius: 0px; } QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { @@ -547,11 +521,11 @@ QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:u } QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + image: url(qss:images_classic/checkbox-Empty-lightgray.png); } QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-black.png); } QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { @@ -560,60 +534,60 @@ QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:che } QMenu::indicator:non-exclusive:checked:disabled { -image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +image:url(qss:images_classic/checkbox-checked-lightgray.png); } QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); + image: url(qss:images_classic/transparent.png); } QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:exclusive:checked { border: none; outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-black.png); } QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:exclusive:checked:disabled { outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-black.png); } QMenu::right-arrow { margin: 5px; padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_lighter.svg); - height: 12px; - width: 12px; + image:url(qss:images_classic/Arrow-right-black.png); + height: 8px; + width: 8px; background-color: transparent; } @@ -623,9 +597,9 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox --------------------------------------------------------------------------- */ QAbstractItemView { - alternate-background-color: #5b5b5b; - color: White; - border: 1px solid #696968; + alternate-background-color: #ababab; + color: black; + border: 1px solid #ababab; border-radius: 2px; } @@ -640,16 +614,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QAbstractScrollArea { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #ababab; border-radius: 0px; /* fix #159 */ padding: 0px; /* remove min-height to fix #244 */ - color: White; + color: black; } QAbstractScrollArea:disabled { - color: #353535; + color: #adadad; } /* QScrollArea ------------------------------------------------------------ @@ -657,7 +631,7 @@ QAbstractScrollArea:disabled { --------------------------------------------------------------------------- text input field disabled!!!!*/ QScrollArea QWidget:disabled { - background-color: #7F7F7F; + background-color: transparent } /* QScrollBar ------------------------------------------------------------- @@ -665,141 +639,128 @@ QScrollArea QWidget:disabled { https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar --------------------------------------------------------------------------- */ + QScrollBar:horizontal { - height: 16px; - margin: 2px 8px 2px 8px; - border: 0px solid #696968; - border-radius: 4px; - background-color: #7F7F7F; + height: 14px; + border-right: 14px solid qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-left: 14px solid qlineargradient(x1:1, y1:0, x2:0, y2:0, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-top: 0.5px solid #ababab; + border-bottom: 0.5px solid #ababab; + background-color: #e6e6e6; } QScrollBar:vertical { - background-color: #7F7F7F; - width: 16px; - margin: 8px 2px 8px 2px; - border: 0px solid #696968; - border-radius: 4px; + background-color: #222222; + width: 14px; + border-top: 14px solid qlineargradient(x1:0, y1:1, x2:0, y2:0, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-bottom: 14px solid qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-left: 0.5px solid #ababab; + border-right: 0.5px solid #ababab; + background-color: #e6e6e6; } QScrollBar::handle:horizontal { - background-color: #696969; - border: 1px solid #7F7F7F; - border-radius: 4px; - min-width: 8px; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fefefe, stop:1 #f2f2f2); } QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; - min-width: 8px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f2f2f2, stop:1 #fefefe); + /* border: 1px #e6e6e6; */ } QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::handle:vertical { - background-color: #696969; - border: 1px solid #696968; + border-top: 1px solid #ababab; + border-bottom: 1px solid #ababab; min-height: 8px; - border-radius: 4px; + border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #fefefe, stop:1 #f2f2f2); } QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f2f2f2, stop:1 #fefefe); + /* border: solid 1px #e6e6e6; */ + border-radius: 0px; min-height: 8px; } QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-right-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-right-black.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-down-black.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-left-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-left-black.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - background-color: @ThemeAccentColor1; - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-up-black.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - /* QTextEdit -------------------------------------------------------------- https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets @@ -808,38 +769,38 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets report view --------------------------------------------------------------------------- */ QTextEdit { - background-color: #7F7F7F; - color: White; - border-radius: 1.9px; - border: 0px solid #696968; + background-color: #ffffff; + color: black; + border-radius: 2px; + border: 0px solid #ababab; } QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QTextEdit:selected { background: #346792; - color: white; + color: black; } /* QPlainTextEdit --------------------------------------------------------- Python --------------------------------------------------------------------------- */ QPlainTextEdit { - background-color: #3c3c3c; - color: White; + background-color: #ffffff; + color: black; border-radius: 1.9px; - border: 0px solid #696968; + border: 0px solid #ababab; } QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QPlainTextEdit:selected { background: @ThemeAccentColor1; - color: White; + color: black; } /* QSizeGrip -------------------------------------------------------------- @@ -851,7 +812,7 @@ QSizeGrip { background: transparent; width: 12px; height: 12px; - image:url(qss:images_dark-light/sizegrip_light.svg); + image:url(qss:images_classic/sizegrip-lightgray.png); } /* QStackedWidget --------------------------------------------------------- @@ -859,7 +820,7 @@ QSizeGrip { --------------------------------------------------------------------------- */ QStackedWidget { padding: 0px; - border: 0px solid #696968; + border: 0px solid #ababab; } /* QToolBar --------------------------------------------------------------- @@ -868,64 +829,73 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar --------------------------------------------------------------------------- */ QToolBar { - background-color: #7F7F7F; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; + background-color: #f0f0f0; + /* border: 1px solid #ababab; */ + /* font-weight: bold; */ +} + +QToolBar:horizontal { + border-bottom: 0.5px solid #ababab; + padding-top: 3px; + padding-left: 5px; +} + +QToolBar:vertical { + border-left: 0.5px solid #ababab; + border-right: 0.5px solid #ababab; + padding-top: 3px; + padding-left: 2px; } QToolBar:disabled { - /* Fixes #272 */ - background-color: #7F7F7F; + } QToolBar::handle:horizontal { width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); + image: url(qss:images_classic/Hmovetoolbar-lightgray.png); } QToolBar::handle:vertical { height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); + image: url(qss:images_classic/Vmovetoolbar-lightgray.png); } +QToolBar::handle:horizontal:hover { + width: 8px; + image: url(qss:images_classic/Hmovetoolbar-darkgray.png); +} + +QToolBar::handle:vertical:hover { + height: 8px; + image: url(qss:images_classic/Vmovetoolbar-darkgray.png); +} + + QToolBar::separator:horizontal { width: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Hsepartoolbar-lightgray.png); } QToolBar::separator:vertical { height: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Vsepartoolbar-lightgray.png); } /*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ QToolButton#qt_toolbar_ext_button { margin: 0px; padding: 0px; -background-color: #696969; -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-repeat: none; background-position: center center; } QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-color: @ThemeAccentColor1; } QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -border-color: #696968; +border-color: #ababab; background-color: @ThemeAccentColor1; } @@ -935,76 +905,75 @@ background-color: @ThemeAccentColor1; --------------------------------------------------------------------------- */ QAbstractSpinBox, QSpinBox { - background-color: #505050; - border: 1px solid transparent; - color: White; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ + background-color: #ffffff; + border: 1px solid #ababab; + color: black; + border-radius: 2px; min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ } QAbstractSpinBox:up-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); subcontrol-origin: border; subcontrol-position: top right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ + border-top: 1px solid transparent; + border-right: 1px solid transparent; + border-top-right-radius: 2px; + border-bottom-left-radius: 2px; + margin-top: 1px; + margin-right: 1px; + border-left: 1px solid #b0b0b0; } QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_light.svg); - /* height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-up-black.png); + height: 8px; + width: 8px; } QAbstractSpinBox:down-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fdfdfd, stop:1 #f0f0f0); subcontrol-origin: border; subcontrol-position: bottom right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ + border-bottom: 1px solid transparent; + border-right: 1px solid transparent; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; + margin-bottom: 1px; + margin-right: 1px; + border-left: 1px solid #b0b0b0; + /* margin: 1px; */ /*width: 12px; /*margin-top: -1px;*/ } QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - /*height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-black.png); + height: 8px; + width: 8px; } QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: White;*/ } QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QAbstractSpinBox:selected { background: @ThemeAccentColor2; - /*color: White;*/ } /* ------------------------------------------------------------------------ */ @@ -1017,16 +986,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe --------------------------------------------------------------------------- */ QLabel { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #ababab; padding: 2px; margin: 0px; - color: White; + color: black; } QLabel:disabled { background-color: transparent; - border: 0px solid #696968; - color: #c2c7cb; + border: 0px solid #ababab; + color: #adadad; } QLabel[haslink="true"] { @@ -1040,21 +1009,20 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QTextBrowser { - background-color: #505050; - border: 1px solid #696968; - color: White; + background-color: #ffffff; + border: 1px solid #ababab; + color: black; border-radius: 1.9px; } QTextBrowser:disabled { - background-color: #7F7F7F; - border: 1px solid #696968; - color: #c2c7cb; + background-color: #d8d8d8; + border: 1px solid #ababab; + color: #adadad; border-radius: 1.9px; } QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; } /* QGraphicsView ---------------------------------------------------------- @@ -1063,14 +1031,14 @@ QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pre QGraphicsView { background-color: transparent; border: 0px solid @ThemeAccentColor1; - color: White; + color: black; border-radius: 0px; } QGraphicsView:disabled { - background-color: #505050; - border: 0px solid #696968; - color: #c2c7cb; + background-color: #fdfdfd; + border: 0px solid #ababab; + color: #adadad; border-radius: 0px; } @@ -1082,13 +1050,13 @@ QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView --------------------------------------------------------------------------- */ QCalendarWidget { - border: 1px solid #696968; + border: 1px solid #ababab; border-radius: 1.9px; } QCalendarWidget:disabled { - background-color: #353535; - color: #c2c7cb; + background-color: #f0f0f0; + color: #adadad; } /* QLCDNumber ------------------------------------------------------------- @@ -1096,12 +1064,12 @@ QCalendarWidget:disabled { --------------------------------------------------------------------------- */ QLCDNumber { background-color: #1aff00; - color: White; + color: black; } QLCDNumber:disabled { - background-color: #7F7F7F; - color: #c2c7cb; + background-color: #d8d8d8; + color: #adadad; } /* QProgressBar ----------------------------------------------------------- @@ -1110,16 +1078,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar --------------------------------------------------------------------------- */ QProgressBar { - background-color: #c2c7cb; - border: 1px solid #696968; - color: White; + background-color: #cccccc; + border: 1px solid #ababab; + color: black; border-radius: 1.9px; text-align: center; } QProgressBar:disabled { - background-color: #505050; - border: 1px solid #696968; + background-color: #d8d8d8; + border: 1px solid #ababab; color: #696969; border-radius: 1.9px; text-align: center; @@ -1127,13 +1095,13 @@ QProgressBar:disabled { QProgressBar::chunk { background-color: @ThemeAccentColor1; - color: #7F7F7F; + color: #d8d8d8; border-radius: 1.9px; } QProgressBar::chunk:disabled { - background-color: #505050; - color: #696968; + background-color: #d8d8d8; + color: #ababab; border-radius: 1.9px; } @@ -1146,47 +1114,53 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton --------------------------------------------------------------------------- */ QPushButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); - color: White; - border: 1px solid #505051; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - border-radius: 4px; - padding: 2px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); + color: black; + border: 1px solid #ababab; + /* border-bottom-color: #1e1e1e; simulates shadow under the button */ + border-radius: 3px; + padding: 4px 0px; + min-width: 80px; } QPushButton:disabled { - background-color: #7F7F7F; - color: #c2c7cb; - + background-color: #d8d8d8; + color: #adadad; + border: 1px solid #ababab; } QPushButton:checked { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; outline: none; } +QPushButton:focus { + border: 1px solid @ThemeAccentColor1; +} + + QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #3c3c3c; + border: 1px solid @ThemeAccentColor1; + color: #adadad; outline: none; } QPushButton:checked:selected { - background: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; } QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fefefe, stop:1 #f8f8f8); + color: black; } QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + border: 1px solid @ThemeAccentColor1; } QPushButton:selected { - background: @ThemeAccentColor2; - color: White; + border: 1px solid @ThemeAccentColor1; + color: black; } QPushButton::menu-indicator { @@ -1207,64 +1181,60 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton --------------------------------------------------------------------------- */ QToolButton { background-color: transparent; - color: White; - border-radius: 1px; - padding: 0px; + color: black; + /* border-radius: 1px; */ + padding: 2px; outline: none; border: none; + border-radius: 3px; /* The subcontrols below are used only in the DelayedPopup mode */ /* The subcontrols below are used only in the MenuButtonPopup mode */ /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ } QToolButton:disabled { - background-color: rgba(0, 0, 0, 0.065); - color: #c2c7cb; - border-radius: 1px; - padding: 0px; + /* background-color: rgba(0, 0, 0, 0.065); */ + color: #adadad; } QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; + background-color: @ThemeAccentColor2; + border-radius: 2px; } QToolButton:checked:disabled { - background-color: #b65555; - color: #c2c7cb; - border-radius: 1.9px; + background-color: @ThemeAccentColor1; + color: #adadad; + border-radius: 2px; padding: 0px; outline: none; } QToolButton:checked:hover { background-color: @ThemeAccentColor1; - color: White; + border: 1px solid #ababab; } QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor2; } QToolButton:checked:selected { background: @ThemeAccentColor2; - color: White; + color: black; } QToolButton:hover { - background-color: @ThemeAccentColor1; - color: White; + color: black; + border: 1px solid #ababab; } QToolButton:pressed { - background-color: @ThemeAccentColor2; } QToolButton:selected { - background: @ThemeAccentColor1; - color: White; + border: 1px solid @ThemeAccentColor1; + color: black; } QToolButton[popupMode="0"] { @@ -1276,14 +1246,15 @@ QToolButton[popupMode="1"] { /* Only for MenuButtonPopup */ padding-right: 20px; } + QToolButton[popupMode="0"]::menu-button { border: none; } QToolButton[popupMode="0"]::menu-button:hover { border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; + border-left: 2px solid #e6e6e6; + border-radius: 3px; } QToolButton[popupMode="1"]::menu-button { border: none; @@ -1291,57 +1262,63 @@ QToolButton[popupMode="1"]::menu-button { QToolButton[popupMode="1"]::menu-button:hover { border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; + border-left: 2px solid #e6e6e6; + border-radius: 3px; } QToolButton[popupMode="2"] { /* Only for InstantPopup */ padding-right: 20px; } +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 15px; /* Hack to add more width to buttons with menu */ + border-radius: 3px; +} QToolButton::menu-button { - border-bottom: 0px solid #ffffff; - border-radius: 2px; + border: 1px solid transparent; /* 16px width + 4px for border = 20px allocated above */ + border-radius: 3px; width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; } QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid transparent; } +QToolButton::menu-button:pressed { + border: 1px solid transparent; +} + QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid #ababab; + background: @ThemeAccentColor2; } QToolButton::menu-indicator { /* Exclude a shift for better image */ - subcontrol-position: right bottom; + subcontrol-position: center center; /* Shift it a bit */ } QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; + image: url(qss:images_classic/Arrow-down-lightgray.png); + width: 1.3ex; + height: 1.3ex; + subcontrol-position: center center; background: transparent; } QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + subcontrol-position: center center; + image: url(qss:images_classic/Arrow-Down-black.png); + width: 1.3ex; + height: 1.3ex; } QToolButton::menu-arrow:hover { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + image: url(qss:images_classic/Arrow-Down-black.png); + width: 1.3ex; + height: 1.3ex; } /* QCommandLinkButton ----------------------------------------------------- @@ -1349,8 +1326,8 @@ QToolButton::menu-arrow:hover { --------------------------------------------------------------------------- */ QCommandLinkButton { background-color: transparent; - border: 1px solid #696968; - color: White; + border: 1px solid #ababab; + color: black; border-radius: 1.9px; padding: 0px; margin: 0px; @@ -1358,7 +1335,7 @@ QCommandLinkButton { QCommandLinkButton:disabled { background-color: transparent; - color: #c2c7cb; + color: #adadad; } /* ------------------------------------------------------------------------ */ @@ -1370,62 +1347,64 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox --------------------------------------------------------------------------- */ QComboBox { - border: 1px solid transparent; - background: #505050; + border: 1px solid #ababab; border-radius: 2px; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); selection-background-color: @ThemeAccentColor1; - padding-left: 2px; + padding-left: 4px; padding-right: 2px; /* padding-right = 36; 4 + 16*2 See scrollbar size */ /* changed to 4px to fix #239 */ /* Fixes #103, #111 */ min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ + /*margin: 0px -1px 0px 0px; hack for Mac... try it on Windows and Linux */ /* padding-top: 2px; removed to fix #132 */ /* padding-bottom: 2px; removed to fix #132 */ /* min-width: 75px; removed to fix #109 */ /* Needed to remove indicator - fix #132 */ } QComboBox:editable { - background: #505050; + background: #fdfdfd; } QComboBox QAbstractItemView { - border: 0px solid #696968; - border-radius: 0px; - background-color: #505050; + border: 1px solid #ababab; + border-radius: 2px; + background-color: #fdfdfd; selection-background-color: @ThemeAccentColor1; } QComboBox QAbstractItemView:hover { - background-color:#505050; - color: White; + background-color:#fdfdfd; + color: black; } QComboBox QAbstractItemView:selected { background: @ThemeAccentColor1; - color: White; + color: black; } QComboBox QAbstractItemView:alternate { - background: #3c3c3c; + background: #fdfdfd; } QComboBox:checked { - color: #ffffff; + color: #000000; } QComboBox:disabled { - background-color: #7F7F7F; - color: #353535; + background-color: #d8d8d8; + color: #adadad; } QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f8f8f8, stop:1 #fefefe); + /* border: 1px solid @ThemeAccentColor1; */ } QComboBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #ababab; + border-radius: 2px; + /* border: 1px solid @ThemeAccentColor2; */ } QComboBox:on { @@ -1438,9 +1417,9 @@ QComboBox::indicator { } QComboBox::indicator:checked { - width: 12px; - height: 12px; - image: url(qss:images_dark-light/check_light.svg); + width: 10px; + height: 10px; + image: url(qss:images_classic/Check-Checked-black.png); } QComboBox::item { @@ -1458,33 +1437,35 @@ QComboBox::item { /* Needed to complete the rule set. */ QComboBox::item:alternate { - background: #3c3c3c; + background: #ededed; } /* Color of the selected list item. */ QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #ababab; background: @ThemeAccentColor2; } QComboBox::drop-down { subcontrol-origin: padding; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + /* background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #ababab); */ subcontrol-position: top right; - width: 14px; - border-left: 1px solid transparent; + width: 20px; + border-right: 1px solid transparent; + padding-right: 2px; + /* border-radius: 2px; */ } QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); */ } QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 10px; - width: 10px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + /* height: 10px; */ + width: 8px; } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-black.png); } @@ -1492,53 +1473,69 @@ QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:foc Tasks panel (custom FreeCAD class) ==================================================================================================*/ Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: white; - qproperty-groupBackground: #3c3c3c; - border: 0px solid #696968; - + qproperty-groupTextColor: black; + qproperty-groupBackground: #ededed; + border: 0px solid #ababab; } /* Action group */ QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ +background-color: rgba(237, 237, 237, 0.5); } QSint--ActionGroup { padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +color: black; +} + +QSint--ActionGroup QGroupBox { + border: 1px solid #696969; + background-color: transparent; + padding-bottom: 3px; +} + +QSint--ActionGroup QGroupBox::title { + top: -8px; + left: 13px; } /* Separator line */ QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="1"], QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="1"] { +/* border-color: #ababab; */ +border-top: #ababab; +border-left: #ababab; } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); +border-top: 1px solid #ffffff; +border-left: 1px solid #ffffff; +border-right: 1px solid #ffffff; +/*background-color: #d4d4d4; /* Task Panel Header background color */ +background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #e8f2fb, stop:1 #418FDE); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; margin: 0px; padding: 0px; +color: #215dc6; } QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #ffffff stop:1 #313d61); */ + color: #418FDE; } QSint--ActionGroup QToolButton[class="header"] { -color: white; /* Task Panel Header text color */ +color: black; /* Task Panel Header text color */ text-align: left; font-weight: bold; border: none; @@ -1547,40 +1544,44 @@ padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_light.svg); + image: url(qss:images_classic/Unfold_Blue2.png) ; +/* background-color: transparent; +background-image: url(qss:images_classic/Arrow-down-lightgray.png); background-repeat: none; background-position: center center; -padding: 0px; -margin: 0px; +padding: 2px; +margin: 4px; */ } QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +/* background-color: transparent; +background-image: url(qss:images_classic/Arrow-down-black.png); */ +image: url(qss:images_classic/UnfoldOver_Blue2.png) ; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_light.svg); +image: url(qss:images_classic/Fold_Blue2.png) ; +/* background-color: transparent; +background-image: url(qss:images_classic/Arrow-up-lightgray.png); background-repeat: none; background-position: center center; -padding: 0px; -margin: 0px; +padding: 2px; +margin: 0px; */ } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +image: url(qss:images_classic/FoldOver_Blue1.png) ; +/* background-color: transparent; */ +/* background-image: url(qss:images_classic/Arrow-up-black.png); */ } QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ +background-color: #c7def5; /* Task Panel background color */ margin: 0px; padding: 0px; -border-bottom: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; +border-bottom: 1px solid #ffffff; +border-left: 1px solid #ffffff; +border-right: 1px solid #ffffff; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-left-radius: 3px; @@ -1588,7 +1589,7 @@ border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #7F7F7F; /* Task Panel background color */ +background-color: #c7def5; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ @@ -1612,32 +1613,58 @@ border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { padding: 2px; /* bigger padding crops text and icons... */ margin: 0px; +border-radius: 3px; } /* Fix for lists inside task panels */ /* sketcher constraints list */ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { -color: white; -background-color: #505050; +color: black; +background-color: #f0f0f0; } /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: white; + color: black; text-align: center; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); border: 0px solid #adadad; padding: 1px 1px; /* different than regular QPushButton */ margin: 0px; /* different than regular QPushButton */ min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; + border-radius: 3px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); +/* QToolButtons with a menu found in Sketcher task panel*/ +QSint--ActionGroup QToolButton::menu-button { + border-left: 1px solid #adadad; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + padding: 0px; + width: 19px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; + /* margin: 10px; */ +} +QSint--ActionGroup QToolButton#settingsButton, +QSint--ActionGroup QToolButton#filterButton, +QSint--ActionGroup QToolButton#manualUpdate { + padding-right: 20px; /* make way for the popup button */ +} + +/* to give widget inside the menu same look as regular menu */ +QSint--ActionGroup QToolButton#filterButton QListWidget { + color: #000000; + background: #ffffff; + border: 1px solid #adadad; +} + + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fefefe, stop:1 #f8f8f8); } QSint--ActionGroup QFrame[class="content"] QToolButton:focus { border: 1px solid @ThemeAccentColor2; @@ -1645,13 +1672,12 @@ QSint--ActionGroup QFrame[class="content"] QToolButton:focus { QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #696969; - background-color: #505050; + color: #adadad; + /* background-color: #fdfdfd; */ } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - + border: 1px solid @ThemeAccentColor1; } /* QSlider ---------------------------------------------------------------- @@ -1660,24 +1686,24 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider --------------------------------------------------------------------------- */ QSlider:disabled { - background: #7F7F7F; + background: #d8d8d8; } QSlider:focus { - /* border: 1px solid @ThemeAccentColor2;*/ + /*border: 1px solid @ThemeAccentColor2;*/ } QSlider::groove:horizontal { - background: #7F7F7F; - border: 1px solid #696968; + background: #d8d8d8; + border: 1px solid #ababab; height: 4px; margin: 0px; border-radius: 1.9px; } QSlider::groove:vertical { - background: #7F7F7F; - border: 1px solid #696968; + background: @ThemeAccentColor1; + border: 1px solid #ababab; width: 4px; margin: 0px; border-radius: 1.9px; @@ -1685,19 +1711,19 @@ QSlider::groove:vertical { QSlider::add-page:vertical { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; width: 4px; margin: 0px; border-radius: 1.9px; } QSlider::add-page:vertical :disabled { - background: #696968; + background: #d8d8d8; } QSlider::sub-page:horizontal { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; height: 4px; margin: 0px; border-radius: 1.9px; @@ -1708,8 +1734,8 @@ QSlider::sub-page:horizontal:disabled { } QSlider::handle:horizontal { - background: #353535; - border: 1px solid #696968; + background: #f0f0f0; + border: 1px solid #ababab; width: 10px; height: 8px; margin: -4px 0px; @@ -1718,17 +1744,17 @@ QSlider::handle:horizontal { QSlider::handle:horizontal:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; } QSlider::handle:horizontal:focus { background: @ThemeAccentColor2; - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QSlider::handle:vertical { - background: #353535; - border: 1px solid #696968; + background: #f0f0f0; + border: 1px solid #ababab; width: 10px; height: 8px; margin: 0px -4px; @@ -1737,11 +1763,11 @@ QSlider::handle:vertical { QSlider::handle:vertical:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; } QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } /* QLineEdit -------------------------------------------------------------- @@ -1750,7 +1776,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit --------------------------------------------------------------------------- */ QLineEdit { - background-color: #505050; + background-color: #ffffff; padding-top: 2px; /* This QLineEdit fix 103, 111 */ padding-bottom: 2px; @@ -1758,19 +1784,19 @@ QLineEdit { padding-left: 4px; padding-right: 4px; border-style: solid; - border: 1px solid #696968; + border: 1px solid #ababab; border-radius: 2px; - color: White; + color: black; } QLineEdit:disabled { - background-color: #7F7F7F; - color: #c2c7cb; + background-color: #d8d8d8; + color: #adadad; } QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: White; + /* border: 1px solid @ThemeAccentColor1; */ + color: black; } QLineEdit:focus { @@ -1779,7 +1805,7 @@ QLineEdit:focus { QLineEdit:selected { background-color: @ThemeAccentColor1; - color: white; + color: black; } /* QTabWiget -------------------------------------------------------------- @@ -1801,34 +1827,38 @@ QTabWidget::pane { margin: 0px; /* Fixes double border inside pane with pyqt5 */ padding: 0px; - background-color: #7f7f7f; + background-color: rgba(27, 27, 27, 0.549); } QTabWidget::pane:selected { background-color: @ThemeAccentColor1; + border: 1px solid #fdfdfd; +} + +QTabWidget::pane:selected { + background-color: #557bb6; border: 1px solid #346792; } QTabWidget::pane:top { top: -1px; - border-top: 1px solid #696969; + border-top: 1px solid #fdfdfd; } QTabWidget::pane:bottom { bottom: -1px; - border-bottom: 1px solid #696969; + border-bottom: 1px solid #fdfdfd; } QTabWidget::pane:left { right: -1px; - border-right: 1px solid #696969; + border-right: 1px solid #fdfdfd; } QTabWidget::pane:right { left: -1px; - border-left: 1px solid #696969; + border-left: 1px solid #fdfdfd; } - /* QTabBar ---------------------------------------------------------------- https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar @@ -1836,191 +1866,212 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabb --------------------------------------------------------------------------- */ QTabBar, QDockWidget QTabBar { qproperty-drawBase: 0; + background-color: #f0f0f0; /* left: 5px; move to the right by 5px - removed for fix */ } QTabBar::close-button, QDockWidget QTabBar::close-button { border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_light.svg); + margin: 3px; + padding: 0px; + image: url(qss:images_classic/Close-lightgray.png); } QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); /*background-color: rgba(255, 0, 0, 0.3);*/ } QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); + image: url(qss:images_classic/close-lightRed.png); } QTabBar::tab, QDockWidget QTabBar::tab { /* !selected and disabled ----------------------------------------- */ /* selected ------------------------------------------------------- */ padding: 4px; -} + background-color: #f0f0f0; +} +/* QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - color: #f5f5f5; -} + color: #adadad; +} */ QTabBar::tab:top, QDockWidget QTabBar::tab:top { - color: #f5f5f5; + color: black; margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + margin-right: 0px; min-width: 5px; - border-bottom: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-top: 3px; + border-top: 1px solid #ababab; /* selection color */ + border-bottom: 1px solid #ababab; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + border-top-left-radius: 2px; + border-top-right-radius: 2px; } QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - color: white; - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - } + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-top: 1px solid #ababab; /* selection color */ + border-bottom: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + margin-top: 0px; + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #d8d8d8); + margin-top: 0px; } QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - color: #f5f5f5; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + color: black; + padding-left: 9px; min-width: 5px; - border-top: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-bottom: 3px; + border-bottom: 1px solid #ababab; /* selection color */ + border-top: 1px solid #ababab; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - color: white; - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-bottom: 1px solid #ababab; /* selection color */ + border-top: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + margin-bottom: 0px; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #d8d8d8, stop:1 #f0f0f0); + margin-bottom: 0px; } QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #7F7F7F; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; + color: black; + padding-bottom: 9px; min-height: 5px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-right: 3px; + border-bottom: 1px solid #ababab; /* selection color */ + border-right: 1px solid #ababab; + border-left: 1px solid #ababab; + border-top: 1px solid #ababab; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #7F7F7F; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-bottom: 1px solid #ababab; /* selection color */ + border-right: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-top: 1px solid #ababab; + margin-right: 0px; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #d8d8d8, stop:1 #f0f0f0); margin-right: 0px; - padding-right: -1px; } QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #7F7F7F; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; + color: black; + padding-bottom: 9px; min-height: 5px; - border: 10px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-right: 3px; + border-bottom: 1px solid #ababab; /* selection color */ + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + border-top: 1px solid #ababab; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #7F7F7F; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-bottom: 1px solid #ababab; /* selection color */ + border-left: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-top: 1px solid #ababab; + margin-right: 0px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f0f0f0, stop:1 #d8d8d8); + margin-right: 0px; } QTabBar QToolButton, QDockWidget QTabBar QToolButton { /* Fixes #136 */ - background-color: #7F7F7F; + background-color: #d8d8d8; height: 12px; width: 12px; } @@ -2036,30 +2087,30 @@ QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover } QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-left-black.png); } QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-left-lightgray.png); } QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-right-black.png); } QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-right-lightgray.png); } /* QDockWiget ------------------------------------------------------------- --------------------------------------------------------------------------- */ QDockWidget { - background-color: #7F7F7F; - border: 1px solid #505051; + background-color: #f0f0f0; + border: 1px solid #ababab; border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); + titlebar-close-icon: url(qss:images_classic/transparent.png); + titlebar-normal-icon: url(qss:images_classic/transparent.png); } QDockWidget::title { @@ -2067,7 +2118,7 @@ QDockWidget::title { padding: 3px; spacing: 4px; border: none; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); text-align: center; font-weight: bold; } @@ -2080,15 +2131,15 @@ QDockWidget::close-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-black.png); } QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); } QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-black.png); } QDockWidget::float-button { @@ -2099,16 +2150,16 @@ QDockWidget::float-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-black.png); } QDockWidget::float-button:hover { /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); + image: url(qss:images_classic/undock-blue.png); } QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-black.png); } /* QTreeView QListView QTableView ----------------------------------------- @@ -2123,38 +2174,58 @@ QTreeView::branch { } QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; + /* border-image: url(qss:images_classic/branch_vline_white.png) 0; */ + /* border-image: url(qss:images_classic/Arrow-right-black.png) 0; */ } QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-blue.png) 0; */ + /* border-image: url(qss:images_classic/branch_more_white.png) 0; */ } QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-lightgray.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_white.png) 0; */ } QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + /* border-image: url(qss:images_classic/branch_more_closed_white.png) 0; */ } QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + /* border-image: url(qss:images_classic/Arrow-right-whitey.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_closed_white.png) 0; */ } QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + /* border-image: url(qss:images_classic/branch_more_open_white.png) 0; */ } QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + /* border-image: url(qss:images_classic/branch_end_open_white.png) 0; */ } QTreeView::indicator:checked, QListView::indicator:checked, QTableView::indicator:checked, QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_light.svg); + image: url(qss:images_classic/checkbox-checked-black.png); } QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, @@ -2167,14 +2238,14 @@ QTableView::indicator:checked:pressed, QColumnView::indicator:checked:hover, QColumnView::indicator:checked:focus, QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); + image: url(qss:images_classic/checkbox-checked-blue.png); } QTreeView::indicator:unchecked, QListView::indicator:unchecked, QTableView::indicator:unchecked, QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, @@ -2187,14 +2258,14 @@ QTableView::indicator:unchecked:pressed, QColumnView::indicator:unchecked:hover, QColumnView::indicator:unchecked:focus, QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); + image: url(qss:images_classic/checkbox-Empty-blue.png); } QTreeView::indicator:indeterminate, QListView::indicator:indeterminate, QTableView::indicator:indeterminate, QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, @@ -2207,23 +2278,23 @@ QTableView::indicator:indeterminate:pressed, QColumnView::indicator:indeterminate:hover, QColumnView::indicator:indeterminate:focus, QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QTreeView, QListView, QTableView, QColumnView { - background-color: #7F7F7F; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #696968; - color: White; - gridline-color: #696968; + background-color: #f0f0f0; /* background of a lot of stuff including spreadsheets.*/ + /* border: 1px solid #ef0000; */ + color: black; + gridline-color: #ababab; border-radius: 0px; } QTableView, QListView { - background-color: rgba(82, 82, 82, 0.85); /* background of a lot of stuff including spreadsheets.*/ + background-color: #ffffff; /* background of a lot of stuff including spreadsheets.*/ } @@ -2231,23 +2302,23 @@ QTreeView:disabled, QListView:disabled, QTableView:disabled, QColumnView:disabled { - background-color: #505050; - color: #c2c7cb; + background-color: #d8d8d8; + color: #adadad; } QTreeView:selected, QListView:selected, QTableView:selected, QColumnView:selected { - background-color: @ThemeAccentColor1; - color: White; + background-color: #f0f0f0; + color: black; } QTreeView:focus, QListView:focus, QTableView:focus, QColumnView:focus { - border: 1px solid @ThemeAccentColor2; + /* border: 1px solid #ababab; */ } QTreeView::item:pressed, @@ -2261,15 +2332,15 @@ QTreeView::item:selected:active, QListView::item:selected:active, QTableView::item:selected:active, QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; + background-color: #f0f0f0; } QTreeView::item:selected:!active, QListView::item:selected:!active, QTableView::item:selected:!active, QColumnView::item:selected:!active { - color: White; - background-color: @ThemeAccentColor1; + /* color: black; */ + background-color: #f0f0f0; } QTreeView::item:!selected:hover, @@ -2277,18 +2348,18 @@ QListView::item:!selected:hover, QTableView::item:!selected:hover, QColumnView::item:!selected:hover { outline: 0; - color: White; + color: black; background-color: @ThemeAccentColor1; } QTableCornerButton::section { - background-color: #7F7F7F; - border: 1px transparent #696968; + background-color: #d8d8d8; + border: 1px transparent #ababab; border-radius: 0px; } QTableView::item { - color: white; + color: black; } QTableView { /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ @@ -2302,51 +2373,52 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview --------------------------------------------------------------------------- */ QHeaderView { background-color: transparent; - text-align: center; + /* text-align: bottom; */ } QHeaderView:disabled { - background-color: #7f7f7f; - color: rgb(174, 174, 174); + /* background-color: #d8d8d8; */ + color: #adadad; } QHeaderView::section { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); - color: White; - border: 1px solid #505051; - font-size: 13px; - font-weight: bold; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); + color: black; + border-bottom: 1px solid #ababab; + border-right: 1px solid #ababab; + border-top: 1px solid #ababab; + border-left: 1px solid transparent; } QHeaderView::section::horizontal { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 1px; padding-left: 5px; - padding-right: 0px; + padding-right: 0px; */ } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 0px solid #696968; + /* border-left: 0px solid #ababab; */ } QHeaderView::section::horizontal:disabled { - color: #353535; + color: #adadad; } QHeaderView::section::vertical { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 0; padding-left: 1px; - padding-right: 0px; - border-top: 0px solid #696968; + padding-right: 0px; */ + border-top: 0.5px solid #ababab; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 2px solid #505051; + border-top: 2px solid #ababab; } QHeaderView::section::vertical:disabled { - border-top: 2px solid #505051; + border-top: 2px solid #ababab; } QHeaderView::down-arrow { @@ -2358,7 +2430,7 @@ QHeaderView::down-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); } QHeaderView::up-arrow { @@ -2368,7 +2440,7 @@ QHeaderView::up-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_light.svg); + image: url(qss:images_classic/Arrow-up-lightgray.png); } /* QToolBox -------------------------------------------------------------- @@ -2392,19 +2464,19 @@ QToolBox:selected { QToolBox::tab { background-color: transparent; border: 0px solid #696969; - color: white; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + color: black; + background-image: url(qss:images_classic/Arrow-down-black.png); background-repeat: none; background-position: center left; } QToolBox::tab:disabled { - color: #696969; + color: #adadad; } QToolBox::tab:selected { background-color: #696969; - background-image: url(qss:images_dark-light/transparent.svg); + background-image: url(qss:images_classic/transparent.png); padding-right: 5px; background-repeat: none; } @@ -2412,7 +2484,7 @@ QToolBox::tab:selected { QToolBox::tab:selected:disabled { background-color: #696969; border-bottom: 0px solid #cccccc; - color: white; + color: #adadad; } QToolBox::tab:!selected { @@ -2420,7 +2492,7 @@ QToolBox::tab:!selected { } QToolBox::tab:!selected:disabled { - background-color: #7F7F7F; + background-color: #d8d8d8; } QToolBox::tab:hover { @@ -2444,8 +2516,8 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color /* (dot) .QFrame fix #141, #126, #123 */ .QFrame { border-radius: 0px; - border: 0px solid #696968; - background-color: #696969; + border: 0px solid #ababab; + background-color: #f0f0f0; /* No frame */ /* HLine */ /* HLine */ @@ -2453,19 +2525,19 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color .QFrame[frameShape="0"] { border-radius: 1.9px; - border: 1px solid #696968; + border: 1px solid #ababab; } .QFrame[frameShape="4"] { max-height: 1px; border: none; - background-color: #696968; + background-color: #ababab; } .QFrame[frameShape="5"] { max-width: 1px; border: none; - background-color: #7F7F7F; + background-color: #f0f0f0; } /* QSplitter -------------------------------------------------------------- @@ -2498,17 +2570,11 @@ QSplitter::handle:vertical { height: 1px; } QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } + image: url(qss:images_classic/splitter_horizontal-lightgray.png); +} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); +QSplitter::handle:horizontal:hover { + image: url(qss:images_classic/splitter_vertical-lightgray.png); } /* QDateEdit, QDateTimeEdit ----------------------------------------------- @@ -2517,7 +2583,7 @@ QSplitter::handle:vertical:hover { QDateEdit, QDateTimeEdit { selection-background-color: @ThemeAccentColor1; border-style: solid; - border: 1px solid #696968; + border: 1px solid #ababab; border-radius: 1.9px; /* This fixes 103, 111 */ padding-top: 2px; @@ -2536,23 +2602,23 @@ QDateEdit::drop-down, QDateTimeEdit::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 12px; - border-left: 1px solid #696968; + border-left: 1px solid #ababab; } QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); height: 8px; width: 8px; } QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-black.png); } QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #7F7F7F; + background-color: #ffffff; border-radius: 2px; - border: 1px solid #696968; + border: 1px solid #ababab; selection-background-color: @ThemeAccentColor1; } @@ -2561,12 +2627,12 @@ QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { --------------------------------------------------------------------------- */ QAbstractView:hover { border: 1px solid @ThemeAccentColor1; - color: White; + color: black; } QAbstractView:selected { background: @ThemeAccentColor1; - color: White; + color: black; } /* PlotWidget ------------------------------------------------------------- @@ -2613,19 +2679,18 @@ Gui--UrlLabel { } Gui--NotificationLabel { - background-color: #7F7F7F; - border: 1px solid #696968; + background-color: #ffffff; + border: 1px solid #ababab; border-radius: 2px; } + Gui--OverlayToolButton:!hover{ background-color: transparent; - border: 0px solid transparent; - image: url(qss:overlay/close_light.svg); + image: url(qss:overlay/close_lightgray.svg); } Gui--OverlayToolButton:hover { - image: url(qss:overlay/close_red.svg); } @@ -2676,19 +2741,20 @@ Gui--OverlayToolButton[objectName="OBTN Float"]:hover { Gui--OverlayToolButton[objectName="OBTN Float"]:checked { image: url(qss:overlay/float_lighter.svg); } + /*================================================================================================== Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 ==================================================================================================*/ QMdiSubWindow { - border:2px solid #696968; + border:2px solid #f0f0f0; border-radius: 2px; border-top-right-radius: 7px; border-top-left-radius: 7px; - background-color: #333333; + background-color: #f0f0f0; } QMdiSubWindow:hover { - border:2px solid #333333; + border:2px solid #ababab; } QMdiSubWindow:active { @@ -2700,21 +2766,52 @@ Settings menu #groupsTreeView: ==================================================================================================*/ QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; } QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; } QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; + border-image: none; } + +/*================================================================================================== +Start page +==================================================================================================*/ +QWidget#thumbnailWidget { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); + border-radius: 8px; + margin-bottom: 3px; + margin-right: 7px; + border: 1px solid #ababab; +} + +QWidget#thumbnailWidget[state="hovered"] { + border: 0.5px solid @ThemeAccentColor2; +} + +QWidget#thumbnailWidget[state="pressed"] { + border: 1px solid @ThemeAccentColor1; +} \ No newline at end of file diff --git a/src/Gui/Stylesheets/Light-modern.qss b/src/Gui/Stylesheets/Light-modern.qss deleted file mode 100644 index 2f4e80c32e..0000000000 --- a/src/Gui/Stylesheets/Light-modern.qss +++ /dev/null @@ -1,2692 +0,0 @@ -/* -ABOUT -============================================================================================================ -Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?t=78431 - -INSTALLATION WHEN NECESSARY -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -FOLLOWING CODES ARE CHANGED IN THE SETTINGS: - @ThemeAccentColor1 - @ThemeAccentColor2 -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ - - -/* Reset elements ------------------------------------------------------------ - -Resetting everything helps to unify styles across different operating systems - ---------------------------------------------------------------------------- */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*hacks */ - -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; - -} -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; - -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #ACC8E5; /* same as focused background color */ -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #2b2b2b; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad.svg); - background-position: center center; - background-repeat: no-repeat; -} -/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ -Gui--NavigationIndicatorGui--BlenderNavigationStyle { -/*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); -} -/*===== -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #f6f6f6; - border: 0px solid #cccccc; - padding: 0px; - color: black; - selection-background-color: @ThemeAccentColor1; - selection-color: black; -} - -QWidget:disabled { - color: #515151; - selection-background-color: @ThemeAccentColor1; - selection-color: #515151; -} - -QWidget::item:selected { - background-color: @ThemeAccentColor1; -} - - /* Causes issue with colorselector. -QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; -}*/ - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - /*background-color: #3c3c3c;*/ - border: 0px solid #696968; - spacing: 0px; - padding: 1px; -} - -QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: #557bb6;*/ - image: url(qss:images_dark-light/splitter_vertical_dark.svg); -} - -QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: #557bb6;*/ - image: url(qss:images_dark-light/splitter_horizontal_dark.svg); -} - -QMainWindow::separator:horizontal { - width: 4px; - margin-top: 0.1px; - margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ -} - -QMainWindow::separator:vertical { - height: 4px; - margin-left: 0.1px; - margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #f6f6f6; - color: black; - /* If you remove the border property, background stops working on Windows */ - border: none; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 0px solid #f5f5f5; - /* Fixes Spyder #9120, #9121 */ - background: #f6f6f6; - /* Fixes #205, black vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: black; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - color: black; - padding: 0px; - outline: none; - border: 1px solid transparent; - background-color: transparent; -} - -QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QCheckBox QWidget:disabled { - background-color: transparent; - color: #515151; -} - -QCheckBox::indicator { - color: black; - background-color: white; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked { - background-color: white; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:disabled { - background-color: #f5f5f5; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QCheckBox::indicator:checked { - background-color: white; - /*border: 1px solid #cccccc; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QCheckBox::indicator:checked:disabled { - background-color: #f5f5f5; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QCheckBox::indicator:indeterminate { - background-color: white; - border: 1px solid #cccccc; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:disabled { - background-color: #f5f5f5; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #cccccc; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; -} - -QGroupBox::indicator { - color: black; - background-color: #f5f5f5; - border: 1px solid #cccccc; - width: 12px; - height: 12px; - border-radius:1px; -} - -QGroupBox::indicator:unchecked { - background-color: #cccccc; - border: 1px solid #cccccc; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:unchecked:disabled { - background-color: white; - border: 1px solid #cccccc; -} - -QGroupBox::indicator:checked { - border: none; - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:checked:disabled { - background-color: @ThemeAccentColor1; -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: transparent; - color: black; - border: none; - spacing: 4px; - padding-top: 4px; - padding-bottom: 4px; - outline: none; -} - -QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QRadioButton:disabled { - background-color: #f6f6f6; - color: #515151; -} - -QRadioButton QWidget { - background-color: transparent; - color: black; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - background-color: #f8f8f8; - border: 1px solid #cccccc; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; -} - -QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; -} - -QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #cccccc; -} - -QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - background-color: #cccccc; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #f8f8f8; - /*padding: 1px; - border: 0px solid rgba(255,255,255,140);*/ - color: black; - selection-background-color: @ThemeAccentColor1; -} - -QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; -} - -QMenuBar::item { - background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ -} - -QMenuBar::item:selected { - background: transparent; - border: 0px solid #cccccc; - background-color: @ThemeAccentColor1; -} - -QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #cccccc; - background-color: @ThemeAccentColor1; - color: black; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border-bottom: 2px rgba(100,100,100,140); - border-right: 2px rgba(100,100,100,140); - color: black; - margin: 0px; - background-color: #f8f8f8; - selection-background-color: @ThemeAccentColor1; -} - -QMenu::separator { - height: 2px; - background-color: #cccccc; - margin-left: 30%; - margin-right: 30%; -} - -QMenu::item { - background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ - /* Reserve space for selection border */ - border: 0px transparent #cccccc; -} - -QMenu::item:selected { - color: black; - background-color: @ThemeAccentColor1; -} - -QMenu::item:pressed { - background-color: @ThemeAccentColor1; -} - -QMenu::icon { - margin-left: 5px; - width: 14px; - height: 14px; -} - -QMenu::indicator { - margin-left: 2px; - margin-right: 2px; - padding: 0px; - width: 12px; - height: 12px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor1; - margin-left: -5px; - border: 5px solid @ThemeAccentColor1; - position: absolute; - border-radius: 0px; -} -QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:checked:disabled { - image:url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); -} - -QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked { - border: none; - outline: none; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked:disabled { - outline: none; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::right-arrow { - margin: 5px; - padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_darker.svg); - height: 12px; - width: 12px; - background-color: transparent; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #cfcfcf; - color: black; - border: 1px solid #cccccc; - border-radius: 2px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: transparent; - border: 0px solid #cccccc; - border-radius: 0px; - /* fix #159 */ - padding: 0px; - /* remove min-height to fix #244 */ - color: black; -} - -QAbstractScrollArea:disabled { - color: #515151; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- -text input field disabled!!!!*/ -QScrollArea QWidget:disabled { - background-color: #f6f6f6; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 0px solid #cccccc; - border-radius: 1.9px; - background-color: #f6f6f6; -} - -QScrollBar:vertical { - background-color: #f6f6f6; - width: 16px; - margin: 16px 2px 16px 2px; - border: 0px solid #cccccc; - border-radius: 1.9px; -} - -QScrollBar::handle:horizontal { - background-color: #d4d4d4; - border: 1px solid #f6f6f6; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #cccccc; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::handle:vertical { - background-color: #d4d4d4; - border: 1px solid #cccccc; - min-height: 8px; - border-radius: 1.9px; -} - -QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #cccccc; - border-radius: 1.9px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::add-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/right_arrow_darker.svg); - height: 10px; - width: 7px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_darker.svg); - background-color: @ThemeAccentColor1; - height: 10px; - width: 7px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/down_arrow_darker.svg); - height: 7px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); - background-color: @ThemeAccentColor1; - height: 7px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_darker.svg); - height: 10px; - width: 7px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); - background-color: @ThemeAccentColor1; - height: 10px; - width: 8px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_darker.svg); - height: 8px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - background-color: @ThemeAccentColor1; - border-image: url(qss:images_dark-light/up_arrow_darker.svg); - height: 8px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - - -report view ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #f6f6f6; - color: black; - border-radius: 1.9px; - border: 0px solid #cccccc; -} - -QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTextEdit:selected { - background: #346792; - color: black; -} - -/* QPlainTextEdit --------------------------------------------------------- -Python ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: white; - color: black; - border-radius: 1.9px; - border: 0px solid #cccccc; -} - -QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QPlainTextEdit:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/sizegrip_dark.svg); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 0px; - border: 0px solid #cccccc; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #f6f6f6; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; -} - -QToolBar:disabled { - /* Fixes #272 */ - background-color: #f6f6f6; -} - -QToolBar::handle:horizontal { - width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); -} - -QToolBar::handle:vertical { - height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); -} - -QToolBar::separator:horizontal { - width: 2px; - margin: 4px 4px; - background-color: transparent; -} - -QToolBar::separator:vertical { - height: 2px; - margin: 4px 4px; - background-color: transparent; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ -QToolButton#qt_toolbar_ext_button { -margin: 0px; -padding: 0px; -background-color: #f6f6f6; -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-repeat: none; -background-position: center center; -} - -QToolButton#qt_toolbar_ext_button:hover { -/* background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-color: @ThemeAccentColor1; -} - -QToolButton#qt_toolbar_ext_button:on { -/* background-image: url(qss:images_dark-light/more_dark.svg);*/ -border-color: #cccccc; -background-color: @ThemeAccentColor1; -} - - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox, -QSpinBox { - background-color: white; - border: 1px solid #cccccc; - color: black; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ - min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: #cccccc; - subcontrol-origin: border; - subcontrol-position: top right; - border-left: 1px solid #cccccc; - border-bottom: 1px solid #cccccc; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); - /* height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::up-arrow:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QAbstractSpinBox:down-button { - background-color: #cccccc; - subcontrol-origin: border; - subcontrol-position: bottom right; - border-left: 1px solid #cccccc; - border-top: 1px solid #cccccc; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-top: -1px;*/ -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - /*height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::down-arrow:hover { - /*background-color: @ThemeAccentColor1;*/ image:url(qss:images_dark-light/down_arrow_darker.svg); -} - -QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: black;*/ -} - -QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QAbstractSpinBox:selected { - background: @ThemeAccentColor2; - /*color: black;*/ -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: transparent; - border: 0px solid #cccccc; - padding: 2px; - margin: 0px; - color: black; -} - -QLabel:disabled { - background-color: transparent; - border: 0px solid #cccccc; - color: #9f0d00; -} - -QLabel[haslink="true"] { - color: darkblue; -} - - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: white; - border: 1px solid #cccccc; - color: black; - border-radius: 1.9px; -} - -QTextBrowser:disabled { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: #005aa4; - border-radius: 1.9px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid #455364; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: transparent; - border: 0px solid #455364; - color: black; - border-radius: 0px; -} - -QGraphicsView:disabled { - background-color: white; - border: 0px solid #cccccc; - color: #515151; - border-radius: 0px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 0px solid #ff00f7; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #cccccc; - border-radius: 1.9px; -} - -QCalendarWidget:disabled { - background-color: #bfc1c0; - color: #515151; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #1aff00; - color: black; -} - -QLCDNumber:disabled { - background-color: #f6f6f6; - color: #515151; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #515151; - border: 1px solid #cccccc; - color: black; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #f8f8f8; - border: 1px solid #cccccc; - color: #515151; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar::chunk { - background-color: @ThemeAccentColor1; - color: #f6f6f6; - border-radius: 1.9px; -} - -QProgressBar::chunk:disabled { - background-color: #f8f8f8; - color: #cccccc; - border-radius: 1.9px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: #d4d4d4; - color: black; - border-radius: 2px; - padding: 2px; - outline: none; - border: none; -} - -QPushButton:disabled { - background-color: #f6f6f6; - color: #515151; - border-radius: 2px; - padding: 2px; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #f5f5f5; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:selected { - background: @ThemeAccentColor1; -} - -QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; -} - -QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:selected { - background: @ThemeAccentColor2; - color: black; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QDialogButtonBox QPushButton { - /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - color: black; - border-radius: 1px; - padding: 0px; - outline: none; - border: none; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:disabled { - background-color: #f8f8f8; - color: #515151; - border-radius: 1px; - padding: 0px; -} - -QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #515151; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolButton:checked:selected { - background: @ThemeAccentColor2; - color: black; -} - -QToolButton:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:pressed { - background-color: @ThemeAccentColor2; -} - -QToolButton:selected { - background: @ThemeAccentColor1; - color: black; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} -QToolButton[popupMode="0"]::menu-button { - border: none; -} - -QToolButton[popupMode="0"]::menu-button:hover { - border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; -} -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 20px; -} - -QToolButton::menu-button { - border-bottom: 0px solid #f6f6f6; - border-radius: 2px; - /* 16px width + 4px for border = 20px allocated above */ - width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; -} - -QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ - -} - -QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ -} - -QToolButton::menu-indicator { - /* Exclude a shift for better image */ - subcontrol-position: right bottom; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_dark.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; - background: transparent; -} -QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} -QToolButton::menu-arrow:hover { - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #cccccc; - color: black; - border-radius: 1.9px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #515151; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid #cccccc; - background: white; - border-radius: 2px; - selection-background-color: @ThemeAccentColor1; - padding-left: 2px; - padding-right: 2px; - /* padding-right = 36; 4 + 16*2 See scrollbar size */ - /* changed to 4px to fix #239 */ - /* Fixes #103, #111 */ - min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} -QComboBox:editable { - background: white; -} -QComboBox QAbstractItemView { - border: 0px solid #cccccc; - border-radius: 0px; - background-color: white; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView:hover { - background-color:white; - color: black; -} - -QComboBox QAbstractItemView:selected { - background: @ThemeAccentColor1; - color: black; -} - -QComboBox QAbstractItemView:alternate { - background: #f5f5f5; -} - -QComboBox:checked { - color: black; -} - -QComboBox:disabled { - background-color: #cccccc; - color: #515151; -} - -QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; -} - -QComboBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QComboBox:on { - selection-background-color: @ThemeAccentColor2; -} - -QComboBox::indicator { - padding-left: 8px; - background-color: transparent; -} - -QComboBox::indicator:checked { - width: 12px; - height: 12px; - image:url(qss:images_dark-light/check_dark.svg); -} - -QComboBox::item { - /* Remove to fix #282, #285 and MR #288*/ - /*&:checked { - font-weight: bold; - } - - &:selected { - border: 0px solid transparent; - } - */ -} -/* Background color of popup-list.*/ - -/* Needed to complete the rule set. */ -QComboBox::item:alternate { - background: #f5f5f5; -} - -/* Color of the selected list item. */ -QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; - background: @ThemeAccentColor2; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - background-color: #d4d4d4; - subcontrol-position: top right; - width: 14px; - border-left: 1px solid #cccccc; -} -QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 10px; - width: 10px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: black; - qproperty-groupBackground: #f5f5f5; - border: 0px solid #cccccc; - -} - -/* Action group */ -QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - -} - -QSint--ActionGroup { -padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #cccccc; -border-left: 1px solid #cccccc; -border-right: 1px solid #cccccc; -background-color: #d4d4d4; /* Task Panel Header background color */ -border-top-left-radius: 3px; -border-top-right-radius: 3px; -border-bottom-left-radius: 0px; -border-bottom-right-radius: 0px; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { -color: black; /* Task Panel Header text color */ -text-align: left; -font-weight: bold; -border: none; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_darker.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_darker.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ -margin: 0px; -padding: 0px; -border-bottom: 1px solid #cccccc; -border-left: 1px solid #cccccc; -border-right: 1px solid #cccccc; -border-top-left-radius: 0px; -border-top-right-radius: 0px; -border-bottom-left-radius: 3px; -border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #f6f6f6; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { -border-bottom-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { -border-top-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { -border-right-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { -border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { -padding: 2px; /* bigger padding crops text and icons... */ -margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { -color: black; -background-color: white; -} - - -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: black; - text-align: center; - background-color: #d4d4d4; - border: 0px solid #adadad; - padding: 1px 1px; /* different than regular QPushButton */ - margin: 0px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #455364; - background-color: #cccccc; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #f6f6f6; -} - -QSlider:focus { - /*border: 1px solid @ThemeAccentColor2;*/ -} - -QSlider::groove:horizontal { - background: #F6F6F6; - border: 1px solid #cccccc; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::groove:vertical { - background: #F6F6F6; - border: 1px solid #cccccc; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical :disabled { - background: #cccccc; -} - -QSlider::sub-page:horizontal { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::sub-page:horizontal:disabled { - background: #cccccc; -} - -QSlider::handle:horizontal { - background: #cccccc; - border: 1px solid #cccccc; - width: 10px; - height: 8px; - margin: -4px 0px; - border-radius: 6px; -} - -QSlider::handle:horizontal:hover { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; -} - -QSlider::handle:horizontal:focus { - border: 1px solid #cccccc; - background: @ThemeAccentColor2; -} - -QSlider::handle:vertical { - background: #cccccc; - border: 1px solid #cccccc; - width: 10px; - height: 8px; - margin: 0px -4px; - border-radius: 6px; -} - -QSlider::handle:vertical:hover { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; -} - -QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: white; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #cccccc; - border-radius: 2px; - color: black; -} - -QLineEdit:disabled { - background-color: #cccccc; - color: #454545; -} - -QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QLineEdit:focus { - border: 2px solid @ThemeAccentColor2; -} - -QLineEdit:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: @ThemeAccentColor1; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 0px; -} - -QTabWidget::pane { - border: 0px solid #8c00ffa1; - border-radius: 1.9px; - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; - background-color: #f6f6f6; -} - -QTabWidget::pane:selected { - background-color: @ThemeAccentColor1; - border: 1px solid #346792; -} -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar, QDockWidget QTabBar { - qproperty-drawBase: 0; - border-radius: 2px; - margin: 0px; - padding: 2px; - border: 0; - alignment: center; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button, QDockWidget QTabBar::close-button { - border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_dark.svg); -} - -QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); - /*background-color: rgba(255, 0, 0, 0.392);*/ -} - -QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_dark.svg); -} - -QTabBar::tab, QDockWidget QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ -} - -QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - border-bottom: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - border-top: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - border-right: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - border-left: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - border-bottom: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - border-top: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - border-right: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - border-left: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - border-bottom: 2px solid #d4d4d4; - margin-top: 2px; -} - -QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - border-top: 2px solid #d4d4d4; - margin-bottom: 2px; -} - -QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - border-left: 2px solid #d4d4d4; - margin-right: 2px; -} - -QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - border-right: 2px solid #d4d4d4; - margin-left: 2px; -} - -QTabBar::tab:top, QDockWidget QTabBar::tab:top { - background-color: #f6f6f6; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border: 1px solid #d4d4d4; - border-radius: 4px; -} - -QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - background-color: #d4d4d4; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - border: 1px solid #d4d4d4; - background-color: #f5f5f5; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 4px; - min-width: 5px; -} - -QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - background-color: #d4d4d4; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #f5f5f5; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; - min-height: 5px; -} - -QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #f5f5f5; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; -} - -QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #f5f5f5; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - min-height: 5px; - border: 10px; -} - -QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #f5f5f5; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; -} - -QTabBar QToolButton, QDockWidget QTabBar QToolButton { - /* Fixes #136 */ - background-color: #f5f5f5; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - background-color: #f6f6f6; - border: 1px solid #cccccc; - border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 3px; - spacing: 4px; - border: none; - background-color: #f6f6f6; - text-align: center; - font-weight: bold; -} - -QDockWidget::close-button { - icon-size: 10px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); -} - -QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::float-button { - icon-size: 12px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::float-button:hover { - /* background-color: @ThemeAccentColor1; */ - image: url(qss:images_dark-light/undock_blue.svg); -} - -QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_dark.svg); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - -QTreeView::indicator:checked, -QListView::indicator:checked, -QTableView::indicator:checked, -QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_dark.svg); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed, -QTableView::indicator:checked:hover, -QTableView::indicator:checked:focus, -QTableView::indicator:checked:pressed, -QColumnView::indicator:checked:hover, -QColumnView::indicator:checked:focus, -QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_dark_hover.svg); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked, -QTableView::indicator:unchecked, -QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed, -QTableView::indicator:unchecked:hover, -QTableView::indicator:unchecked:focus, -QTableView::indicator:unchecked:pressed, -QColumnView::indicator:unchecked:hover, -QColumnView::indicator:unchecked:focus, -QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate, -QTableView::indicator:indeterminate, -QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed, -QTableView::indicator:indeterminate:hover, -QTableView::indicator:indeterminate:focus, -QTableView::indicator:indeterminate:pressed, -QColumnView::indicator:indeterminate:hover, -QColumnView::indicator:indeterminate:focus, -QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #f6f6f6; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #cccccc; - color: black; - gridline-color: #cccccc; - border-radius: 0px; -} - -QTableView, -QListView { - background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ -} - - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: white; - color: #515151; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -QTreeView:focus, -QListView:focus, -QTableView:focus, -QColumnView:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:!active, -QListView::item:selected:!active, -QTableView::item:selected:!active, -QColumnView::item:selected:!active { - color: black; - background-color: @ThemeAccentColor1; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: black; - background-color: @ThemeAccentColor1; -} - -QTableCornerButton::section { - background-color: #f6f6f6; - border: 1px transparent #cccccc; - border-radius: 0px; -} - -QTableView::item { - color: black; -} -QTableView { - /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ - /*qproperty-aliasBgColor: #f700ff;*/ -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: #f6f6f6; - border: 1px solid #cccccc; - padding: 0; - margin: 0; - border-radius: 0px; - text-align: center; -} - -QHeaderView:disabled { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: #515151; -} - -QHeaderView::section { - background-color: #f5f5f5; - color: black; - border-radius: 0px; - text-align: center; - font-size: 13px; - font-weight: bold; - text-align: center; -} - -QHeaderView::section::horizontal { - padding-top: 0; - padding-bottom: 0; - padding-left: 10px; - padding-right: 10px; - border-left: 1px solid #cccccc; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 1px solid #cccccc; - padding-left: 15px; -} - -QHeaderView::section::horizontal:disabled { - color: #515151; -} - -QHeaderView::section::vertical { - padding-top: 0; - padding-bottom: 0; - padding-left: 1px; - padding-right: 1px; - border-top: 1px solid #cccccc; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 1px solid #cccccc; -} - -QHeaderView::section::vertical:disabled { - color: #515151; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: #455364; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/arrow_down.svg); -} - -QHeaderView::up-arrow { - background-color: #455364; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox -used in PATH - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 1px solid #d4d4d4; - border-radius: 4px; - background-color: transparent; -} - -QToolBox:selected { - padding: 0px; - border: 0px solid #346792; -} - -QToolBox::tab { - background-color: #d4d4d4; - border: 0px solid #cccccc; - color: black; - background-image: url(qss:images_dark-light/down_arrow_darker.svg); - background-repeat: none; - background-position: center left; -} - -QToolBox::tab:disabled { - color: #515151; -} - -QToolBox::tab:selected { - background-color: #d4d4d4; - background-image: url(qss:images_dark-light/transparent.svg); - padding-right: 5px; - background-repeat: none; -} - -QToolBox::tab:selected:disabled { - background-color: #d4d4d4; - border-bottom: 0px solid #cccccc; - color: #515151; -} - -QToolBox::tab:!selected { - -} - -QToolBox::tab:!selected:disabled { - background-color: #f6f6f6; -} - -QToolBox::tab:hover { - background-color: @ThemeAccentColor1; - } - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: transparent; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 0px; - border: 0px solid #cccccc; - background-color: #cccccc; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 1.9px; - border: 1px solid #cccccc; -} - -.QFrame[frameShape="4"] { - max-height: 1px; - border: none; - background-color: #cccccc; -} - -.QFrame[frameShape="5"] { - max-width: 1px; - border: none; - background-color: #f6f6f6; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ----------------------------------------------------------------------------*/ -QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ - -} - -QSplitter::handle { - margin: 0px 0px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - width: 1px; -} - -QSplitter::handle:vertical { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - height: 1px; -} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } - -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); -} - -/* QDateEdit, QDateTimeEdit ----------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit, QDateTimeEdit { - selection-background-color: @ThemeAccentColor1; - border-style: solid; - border: 1px solid #cccccc; - border-radius: 1.9px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on, QDateTimeEdit:on { - selection-background-color: @ThemeAccentColor1; -} - -QDateEdit::drop-down, QDateTimeEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #cccccc; -} - -QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #f6f6f6; - border-radius: 2px; - border: 1px solid #cccccc; - selection-background-color: @ThemeAccentColor1; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QAbstractView:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -Gui--NotificationLabel { - background-color: #f6f6f6; - border: 1px solid #cccccc; - border-radius: 2px; -} - -/*================================================================================================== -Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 -==================================================================================================*/ -QMdiSubWindow { - border:2px solid #ffffff; - border-radius: 2px; - border-top-right-radius: 7px; - border-top-left-radius: 7px; - background-color: #f6f6f6; -} - -QMdiSubWindow:hover { - border:2px solid #cccccc; -} - -QMdiSubWindow:active { - border:2px solid @ThemeAccentColor1; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; -} diff --git a/src/Gui/Stylesheets/Light.qss b/src/Gui/Stylesheets/Light.qss deleted file mode 100644 index 549208631c..0000000000 --- a/src/Gui/Stylesheets/Light.qss +++ /dev/null @@ -1,2674 +0,0 @@ -/* -ABOUT -============================================================================================================ -Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?t=78431 - -INSTALLATION WHEN NECESSARY -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -FOLLOWING CODES ARE CHANGED IN THE SETTINGS: - @ThemeAccentColor1 - @ThemeAccentColor2 -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ - - -/* Reset elements ------------------------------------------------------------ - -Resetting everything helps to unify styles across different operating systems - ---------------------------------------------------------------------------- */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*hacks */ - -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; - -} -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; - -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #ACC8E5; /* same as focused background color */ -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #F6F6F6; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad.svg); - background-position: center center; - background-repeat: no-repeat; -} -/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ -Gui--NavigationIndicatorGui--BlenderNavigationStyle { -/*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); -} -/*===== -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #F6F6F6; - border: 0px solid #C1C1C1; - padding: 0px; - color: black; - selection-background-color: @ThemeAccentColor1; - selection-color: black; -} - -QWidget:disabled { - color: #A3A3A3; - selection-background-color: @ThemeAccentColor1; - selection-color: #A3A3A3; -} - -QWidget::item:selected { - background-color: @ThemeAccentColor1 -; -} - - /* Causes issue with colorselector. - QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; - }*/ - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - /*background-color: #f6f6f6;*/ - border: 0px solid #C1C1C1; - spacing: 0px; - padding: 1px; -} - -QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_dark.svg); -} - -QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_dark.svg); -} - -QMainWindow::separator:horizontal { - width: 4px; - margin-top: 0.1px; - margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_light.svg);*/ -} - -QMainWindow::separator:vertical { - height: 4px; - margin-left: 0.1px; - margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_light.svg);*/ -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #ffffff; - color: black; - /* If you remove the border property, background stops working on Windows */ - border: none; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 0px solid #C1C1C1; - /* Fixes Spyder #9120, #9121 */ - background: #F6F6F6; - /* Fixes #205, black vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: black; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - color: black; - padding: 0px; - outline: none; - border: 1px solid transparent; - background-color: transparent; -} - -QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QCheckBox QWidget:disabled { - color: #A3A3A3; -} - -QCheckBox::indicator { - color: black; - background-color: #ffffff; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked { - background-color: #ffffff; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:disabled { - background-color: #F6F6F6; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QCheckBox::indicator:checked { - background-color: #ffffff; - /*border: 1px solid #C1C1C1; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QCheckBox::indicator:checked:disabled { - background-color: #F6F6F6; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QCheckBox::indicator:indeterminate { - background-color: #ffffff; - border: 1px solid #C1C1C1; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:disabled { - background-color: #F6F6F6; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; -} - -QGroupBox::indicator { - color: black; - background-color: #f6f6f6; - border: 1px solid #C1C1C1; - width: 12px; - height: 12px; - border-radius:1px; -} - -QGroupBox::indicator:unchecked { - background-color: #f6f6f6; - border: 1px solid #C1C1C1; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:unchecked:disabled { - background-color: #ffffff; - border: 1px solid #C1C1C1; -} - -QGroupBox::indicator:checked { - border: none; - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:checked:disabled { - background-color: @ThemeAccentColor1; -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: transparent; - color: black; - border: none; - spacing: 4px; - padding-top: 4px; - padding-bottom: 4px; - outline: none; -} - -QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QRadioButton:disabled { - background-color: #f6f6f6; - color: #BABABA; -} - -QRadioButton QWidget { - background-color: transparent; - color: black; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - background-color: #f6f6f6; - border: 1px solid #C1C1C1; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; -} - -QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; -} - -QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ - border: 1px solid #C1C1C1; -} - -QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - background-color: #f6f6f6; - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #ffffff; - /*padding: 1px; - border: 0px solid rgba(0,0,0,140);*/ - color: black; - selection-background-color: @ThemeAccentColor1; -} - -QMenuBar:focus { - border: 1px solid @ThemeAccentColor1; -} - -QMenuBar::item { - background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ -} - -QMenuBar::item:selected { - background: transparent; - border: 0px solid #C1C1C1; - background-color: @ThemeAccentColor1; -} - -QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #C1C1C1; - background-color: @ThemeAccentColor1; - color: black; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border-bottom: 2px rgba(0,0,0,140); - border-right: 2px rgba(0,0,0,140); - color: black; - margin: 0px; - background-color: #ffffff; - selection-background-color: @ThemeAccentColor1; -} - -QMenu::separator { - height: 2px; - background-color: #f6f6f6; - margin-left: 30%; - margin-right: 30%; -} - -QMenu::item { - background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ - /* Reserve space for selection border */ - border: 0px transparent #f6f6f6; -} - -QMenu::item:selected { - color: black; - background-color: @ThemeAccentColor1; -} - -QMenu::item:pressed { - background-color: @ThemeAccentColor1; -} - -QMenu::icon { - margin-left: 5px; - width: 14px; - height: 14px; -} - -QMenu::indicator { - margin-left: 2px; - margin-right: 2px; - padding: 0px; - width: 12px; - height: 12px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor2; - margin-left: -5px; - border: 5px solid @ThemeAccentColor2; - position: absolute; - border-radius: 0px; -} -QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:checked:disabled { - image:url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); -} - -QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked { - border: none; - outline: none; - image: url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked:disabled { - outline: none; - image: url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::right-arrow { - margin: 5px; - padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_darker.svg); - height: 12px; - width: 12px; - background-color: transparent; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #ababab; - color: black; - border: 1px solid #C1C1C1; - border-radius: 2px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: transparent; - border: 0px solid #C1C1C1; - border-radius: 0px; - /* fix #159 */ - padding: 0px; - /* remove min-height to fix #244 */ - color: black; -} - -QAbstractScrollArea:disabled { - color: #A3A3A3; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- -text input field disabled!!!!*/ -QScrollArea QWidget:disabled { - background-color: #F6F6F6; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 0px solid #C1C1C1; - border-radius: 1.9px; - background-color: #F6F6F6; -} - -QScrollBar:vertical { - background-color: #F6F6F6; - width: 16px; - margin: 16px 2px 16px 2px; - border: 0px solid #C1C1C1; - border-radius: 1.9px; -} - -QScrollBar::handle:horizontal { - background-color: #A3A3A3; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #f6f6f6; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::handle:vertical { - background-color: #A3A3A3; - border: 1px solid #C1C1C1; - min-height: 8px; - border-radius: 1.9px; -} - -QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #f6f6f6; - border-radius: 1.9px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_dark.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_dark.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_dark.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_darker.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - - -report view ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #F6F6F6; - color: black; - border-radius: 1.9px; - border: 0px solid #C1C1C1; -} - -QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTextEdit:selected { - background: #346792; - color: black; -} - -/* QPlainTextEdit --------------------------------------------------------- -Python ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: #f6f6f6; - color: black; - border-radius: 1.9px; - border: 0px solid #C1C1C1; -} - -QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QPlainTextEdit:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/sizegrip_dark.svg); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 0px; - border: 0px solid #C1C1C1; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #F6F6F6; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; -} - -QToolBar:disabled { - /* Fixes #272 */ - background-color: #F6F6F6; -} - -QToolBar::handle:horizontal { - width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); -} - -QToolBar::handle:vertical { - height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); -} - -QToolBar::separator:horizontal { - width: 2px; - margin: 4px 4px; - background-color: transparent; -} - -QToolBar::separator:vertical { - height: 2px; - margin: 4px 4px; - background-color: transparent; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ -QToolButton#qt_toolbar_ext_button { -margin: 0px; -padding: 0px; -background-color: #A3A3A3; -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-repeat: none; -background-position: center center; -} - -QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-color: @ThemeAccentColor1; -} - -QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -border-color: #f6f6f6; -background-color: @ThemeAccentColor1; -} - - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox, -QSpinBox { - background-color: #ffffff; - border: 1px solid transparent; - color: black; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ - min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - subcontrol-origin: border; - subcontrol-position: top right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); - /* height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - subcontrol-origin: border; - subcontrol-position: bottom right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-top: -1px;*/ -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - /*height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: black;*/ -} - -QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QAbstractSpinBox:selected { - background: @ThemeAccentColor2; - /*color: black;*/ -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: transparent; - border: 0px solid #C1C1C1; - padding: 2px; - margin: 0px; - color: black; -} - -QLabel:disabled { - background-color: transparent; - border: 0px solid #C1C1C1; - color: #A3A3A3; -} - -QLabel[haslink="true"] { - color: orange; -} - - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: #ffffff; - border: 1px solid #C1C1C1; - color: black; - border-radius: 1.9px; -} - -QTextBrowser:disabled { - background-color: #F6F6F6; - border: 1px solid #C1C1C1; - color: #A3A3A3; - border-radius: 1.9px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: transparent; - border: 0px solid @ThemeAccentColor1; - color: black; - border-radius: 0px; -} - -QGraphicsView:disabled { - background-color: #ffffff; - border: 0px solid #C1C1C1; - color: #A3A3A3; - border-radius: 0px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 0px solid #ff00f7; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #C1C1C1; - border-radius: 1.9px; -} - -QCalendarWidget:disabled { - background-color: #BABABA; - color: #A3A3A3; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #1aff00; - color: black; -} - -QLCDNumber:disabled { - background-color: #F6F6F6; - color: #A3A3A3; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #A3A3A3; - border: 1px solid #C1C1C1; - color: black; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #ffffff; - border: 1px solid #C1C1C1; - color: #A3A3A3; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar::chunk { - background-color: @ThemeAccentColor1; - color: #F6F6F6; - border-radius: 1.9px; -} - -QProgressBar::chunk:disabled { - background-color: #ffffff; - color: #f6f6f6; - border-radius: 1.9px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - color: black; - border: 1px solid #EDEDED; - border-bottom-color: #AFAFAF; /* simulates shadow under the button */ - border-radius: 4px; - padding: 2px; -} - -QPushButton:disabled { - background-color: #F6F6F6; - color: #A3A3A3; - -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - outline: none; -} - -QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #f6f6f6; - outline: none; -} - -QPushButton:checked:selected { - background: @ThemeAccentColor1; -} - -QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; -} - -QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:selected { - background: @ThemeAccentColor2; - color: black; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QDialogButtonBox QPushButton { - /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - color: black; - border-radius: 1px; - padding: 0px; - outline: none; - border: none; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:disabled { - background-color: transparent; - color: #A3A3A3; - border-radius: 1px; - padding: 0px; -} - -QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:disabled { - background-color: #b65555; - color: #A3A3A3; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolButton:checked:selected { - background: @ThemeAccentColor2; - color: black; -} - -QToolButton:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:pressed { - background-color: @ThemeAccentColor2; -} - -QToolButton:selected { - background: @ThemeAccentColor1; - color: black; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} -QToolButton[popupMode="0"]::menu-button { - border: none; -} - -QToolButton[popupMode="0"]::menu-button:hover { - border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; -} -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 20px; -} - -QToolButton::menu-button { - border-bottom: 0px solid #b2b2b2; - border-radius: 2px; - /* 16px width + 4px for border = 20px allocated above */ - width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; -} - -QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ - -} - -QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ -} - -QToolButton::menu-indicator { - /* Exclude a shift for better image */ - subcontrol-position: right bottom; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_dark.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; - background: transparent; -} -QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} -QToolButton::menu-arrow:hover { - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #C1C1C1; - color: black; - border-radius: 1.9px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #A3A3A3; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid transparent; - background: #ffffff; - border-radius: 2px; - selection-background-color: @ThemeAccentColor1; - padding-left: 2px; - padding-right: 2px; - /* padding-right = 36; 4 + 16*2 See scrollbar size */ - /* changed to 4px to fix #239 */ - /* Fixes #103, #111 */ - min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} -QComboBox:editable { - background: #ffffff; -} -QComboBox QAbstractItemView { - border: 0px solid #C1C1C1; - border-radius: 0px; - background-color: #ffffff; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView:hover { - background-color:#ffffff; - color: black; -} - -QComboBox QAbstractItemView:selected { - background: @ThemeAccentColor1; - color: black; -} - -QComboBox QAbstractItemView:alternate { - background: #f6f6f6; -} - -QComboBox:checked { - color: black; -} - -QComboBox:disabled { - background-color: #F6F6F6; - color: #BABABA; -} - -QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; -} - -QComboBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QComboBox:on { - selection-background-color: @ThemeAccentColor2; -} - -QComboBox::indicator { - padding-left: 8px; - background-color: transparent; -} - -QComboBox::indicator:checked { - width: 12px; - height: 12px; - image:url(qss:images_dark-light/check_dark.svg); -} - -QComboBox::item { - /* Remove to fix #282, #285 and MR #288*/ - /*&:checked { - font-weight: bold; - } - - &:selected { - border: 0px solid transparent; - } - */ -} -/* Background color of popup-list.*/ - -/* Needed to complete the rule set. */ -QComboBox::item:alternate { - background: #f6f6f6; -} - -/* Color of the selected list item. */ -QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; - background: @ThemeAccentColor2; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - subcontrol-position: top right; - width: 14px; - border-left: 1px solid transparent; -} -QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 10px; - width: 10px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: black; - qproperty-groupBackground: #f6f6f6; - border: 0px solid #C1C1C1; - -} - -/* Action group */ -QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - -} - -QSint--ActionGroup { -padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #C1C1C1; -border-left: 1px solid #C1C1C1; -border-right: 1px solid #C1C1C1; -background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); -border-top-left-radius: 3px; -border-top-right-radius: 3px; -border-bottom-left-radius: 0px; -border-bottom-right-radius: 0px; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { -color: black; /* Task Panel Header text color */ -text-align: left; -font-weight: bold; -border: none; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_dark.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_dark.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ -margin: 0px; -padding: 0px; -border-bottom: 1px solid #C1C1C1; -border-left: 1px solid #C1C1C1; -border-right: 1px solid #C1C1C1; -border-top-left-radius: 0px; -border-top-right-radius: 0px; -border-bottom-left-radius: 3px; -border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #F6F6F6; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { -border-bottom-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { -border-top-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { -border-right-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { -border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { -padding: 2px; /* bigger padding crops text and icons... */ -margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { -color: black; -background-color: #ffffff; -} - - -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: black; - text-align: center; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - border: 0px solid #C1C1C1; - padding: 1px 1px; /* different than regular QPushButton */ - margin: 0px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - border: 1px solid @ThemeAccentColor2 -; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #A3A3A3; - background-color: #ffffff; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #F6F6F6; -} - -QSlider:focus { - /*border: 1px solid @ThemeAccentColor2;*/ -} - -QSlider::groove:horizontal { - background: #F6F6F6; - border: 1px solid #C1C1C1; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::groove:vertical { - background: #F6F6F6; - border: 1px solid #C1C1C1; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical :disabled { - background: #f6f6f6; -} - -QSlider::sub-page:horizontal { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::sub-page:horizontal:disabled { - background: @ThemeAccentColor1; -} - -QSlider::handle:horizontal { - background: #C1C1C1; - border: 1px solid #C1C1C1; - width: 10px; - height: 8px; - margin: -4px 0px; - border-radius: 6px; -} - -QSlider::handle:horizontal:hover { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; -} - -QSlider::handle:horizontal:focus { - border: 1px solid #C1C1C1; - background: @ThemeAccentColor1; -} - -QSlider::handle:vertical { - background: #C1C1C1; - border: 1px solid #C1C1C1; - width: 10px; - height: 8px; - margin: 0px -4px; - border-radius: 6px; -} - -QSlider::handle:vertical:hover { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; -} - -QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: #ffffff; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #C1C1C1; - border-radius: 2px; - color: black; -} - -QLineEdit:disabled { - background-color: #F6F6F6; - color: #A3A3A3; -} - -QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QLineEdit:focus { - border: 2px solid @ThemeAccentColor2; -} - -QLineEdit:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: @ThemeAccentColor1; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 0px; -} - -QTabWidget::pane { - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; - background-color: #f6f6f6; -} - -QTabWidget::pane:selected { - background-color: @ThemeAccentColor1; - border: 1px solid #C1C1C1; -} - -QTabWidget::pane:selected { - background-color: #557bb6; - border: 1px solid #346792; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #A3A3A3; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #A3A3A3; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #A3A3A3; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #A3A3A3; -} -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar, QDockWidget QTabBar { - qproperty-drawBase: 0; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button, QDockWidget QTabBar::close-button { - border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_dark.svg); -} - -QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); - /*background-color: rgba(255, 0, 0, 0.3);*/ -} - -QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); -} - -QTabBar::tab, QDockWidget QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ - padding: 4px; -} - -QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - color: #797979; -} - -QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - color: #797979; -} - -QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - color: #A0A0A0; - -} - -QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - color: #A0A0A0; - -} - -QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - color: #A0A0A0; -} - -QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - color: #A0A0A0; -} - -QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - color: #A0A0A0; -} - -QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - color: #A0A0A0; -} - -QTabBar::tab:top, QDockWidget QTabBar::tab:top { - color: #A0A0A0; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border-bottom: 1px solid #A3A3A3; /* same as tab content background color */ - border-radius: 0px; -} - -QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - color: black; - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #A3A3A3; - border-right: 1px solid #A3A3A3; - } - -QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; - color: black; -} - -QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - color: #A0A0A0; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border-top: 1px solid #A3A3A3; /* same as tab content background color */ - border-radius: 0px; -} - -QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - color: black; - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #A3A3A3; - border-right: 1px solid #A3A3A3; - -} - -QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; - color: black; -} - -QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #F6F6F6; - margin-top: 2px; - - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; - min-height: 5px; -} - -QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #F6F6F6; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; - color: black; -} - -QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #F6F6F6; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - min-height: 5px; - border: 10px; -} - -QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #F6F6F6; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; - color: black; -} - -QTabBar QToolButton, QDockWidget QTabBar QToolButton { - /* Fixes #136 */ - background-color: #F6F6F6; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - color: black; -} - -QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - background-color: #F6F6F6; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 3px; - spacing: 4px; - border: none; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - text-align: center; - font-weight: bold; -} - -QDockWidget::close-button { - icon-size: 10px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); -} - -QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::float-button { - icon-size: 12px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::float-button:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); -} - -QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_dark.svg); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - -QTreeView::indicator:checked, -QListView::indicator:checked, -QTableView::indicator:checked, -QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_dark.svg); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed, -QTableView::indicator:checked:hover, -QTableView::indicator:checked:focus, -QTableView::indicator:checked:pressed, -QColumnView::indicator:checked:hover, -QColumnView::indicator:checked:focus, -QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked, -QTableView::indicator:unchecked, -QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed, -QTableView::indicator:unchecked:hover, -QTableView::indicator:unchecked:focus, -QTableView::indicator:unchecked:pressed, -QColumnView::indicator:unchecked:hover, -QColumnView::indicator:unchecked:focus, -QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate, -QTableView::indicator:indeterminate, -QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed, -QTableView::indicator:indeterminate:hover, -QTableView::indicator:indeterminate:focus, -QTableView::indicator:indeterminate:pressed, -QColumnView::indicator:indeterminate:hover, -QColumnView::indicator:indeterminate:focus, -QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #F6F6F6; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #C1C1C1; - color: black; - gridline-color: #A3A3A3; - border-radius: 0px; -} - -QTableView, -QListView { - background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ -} - - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: #ffffff; - color: #A3A3A3; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -QTreeView:focus, -QListView:focus, -QTableView:focus, -QColumnView:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:!active, -QListView::item:selected:!active, -QTableView::item:selected:!active, -QColumnView::item:selected:!active { - color: black; - background-color: @ThemeAccentColor1; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: black; - background-color: @ThemeAccentColor1; -} - -QTableCornerButton::section { - background-color: #F6F6F6; - border: 1px transparent #C1C1C1; - border-radius: 0px; -} - -QTableView::item { - color: black; -} -QTableView { - /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ - /*qproperty-aliasBgColor: #f700ff;*/ -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: transparent; - text-align: center; -} - -QHeaderView:disabled { - background-color: #F6F6F6; - color: rgb(174, 174, 174); -} - -QHeaderView::section { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - color: black; - border: 1px solid #C1C1C1; - font-size: 13px; - font-weight: bold; -} - -QHeaderView::section::horizontal { - padding-top: 1px; - padding-bottom: 1px; - padding-left: 5px; - padding-right: 0px; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 0px solid #C1C1C1; -} - -QHeaderView::section::horizontal:disabled { - color: #BABABA; -} - -QHeaderView::section::vertical { - padding-top: 1px; - padding-bottom: 0; - padding-left: 1px; - padding-right: 0px; - border-top: 2px solid #C1C1C1; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 2px solid #C1C1C1; -} - -QHeaderView::section::vertical:disabled { - border-top: 2px solid #C1C1C1; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: transparent; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QHeaderView::up-arrow { - background-color: transparent; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox -used in PATH - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 1px solid #A3A3A3; - border-radius: 4px; - background-color: transparent; -} - -QToolBox:selected { - padding: 0px; - border: 0px solid @ThemeAccentColor1; -} - -QToolBox::tab { - background-color: transparent; - border: 0px solid #A3A3A3; - color: black; - background-image: url(qss:images_dark-light/down_arrow_darker.svg); - background-repeat: none; - background-position: center left; -} - -QToolBox::tab:disabled { - color: #A3A3A3; -} - -QToolBox::tab:selected { - background-color: #A3A3A3; - background-image: url(qss:images_dark-light/transparent.svg); - padding-right: 5px; - background-repeat: none; -} - -QToolBox::tab:selected:disabled { - background-color: #A3A3A3; - border-bottom: 0px solid #cccccc; - color: black; -} - -QToolBox::tab:!selected { - -} - -QToolBox::tab:!selected:disabled { - background-color: #F6F6F6; -} - -QToolBox::tab:hover { - background-color: @ThemeAccentColor1; - } - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: transparent; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 0px; - border: 0px solid #C1C1C1; - background-color: #A3A3A3; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 1.9px; - border: 1px solid #C1C1C1; -} - -.QFrame[frameShape="4"] { - max-height: 1px; - border: none; - background-color: #f6f6f6; -} - -.QFrame[frameShape="5"] { - max-width: 1px; - border: none; - background-color: #F6F6F6; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ----------------------------------------------------------------------------*/ -QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ - -} - -QSplitter::handle { - margin: 0px 0px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - width: 1px; -} - -QSplitter::handle:vertical { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - height: 1px; -} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } - -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); -} - -/* QDateEdit, QDateTimeEdit ----------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit, QDateTimeEdit { - selection-background-color: @ThemeAccentColor1; - border-style: solid; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on, QDateTimeEdit:on { - selection-background-color: @ThemeAccentColor1; -} - -QDateEdit::drop-down, QDateTimeEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #C1C1C1; -} - -QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #F6F6F6; - border-radius: 2px; - border: 1px solid #C1C1C1; - selection-background-color: @ThemeAccentColor1; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QAbstractView:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -Gui--NotificationLabel { - background-color: #f6f6f6; - border: 1px solid #cccccc; - border-radius: 2px; -} - -/*================================================================================================== -Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 -==================================================================================================*/ -QMdiSubWindow { - border:2px solid #ffffff; - border-radius: 2px; - border-top-right-radius: 7px; - border-top-left-radius: 7px; - background-color: #f6f6f6; -} - -QMdiSubWindow:hover { - border:2px solid #cccccc; -} - -QMdiSubWindow:active { - border:2px solid @ThemeAccentColor1; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; -} diff --git a/src/Gui/Stylesheets/ProDark.qss b/src/Gui/Stylesheets/ProDark.qss deleted file mode 100644 index 87f9fa1c07..0000000000 --- a/src/Gui/Stylesheets/ProDark.qss +++ /dev/null @@ -1,2583 +0,0 @@ -/* -ABOUT -============================================================================================================ -ProDark -A Professional Dark Mode FreeCAD Theme by Thomas Plank aka turn211 -based on the stock theme from FreeCAD by Pablo Gil Fernández - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?f=34&t=55134&sid=0466734fc3349eccd8921eb356f70ad7 - -LICENSE -============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - -INSTALLATION -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -THESE COLOURS WERE USED AS TEMP SCRATCHPAD FOR DESIGNING. PLEASE DISREGARD! - - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #333333 = main background color - #3c3c3c = secondary - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - @ThemeAccentColor1 - #696969 - #3874f2 - @ThemeAccentColor1 = main selection color - @ThemeAccentColor1 = used to build QSpinBox up and down buttons, it's used as color in the middle - #adc5ed - #cbd8e6 -*/ - - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #f5f5f5; /* Default color for labels and different text elements that usually use dark colors */ -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*================================================================================================== -Style Links -==================================================================================================*/ -QLabel[haslink="true"] { - color: #55aaff; -} - -Gui--UrlLabel { - color: #55aaff; -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QWidget { - background-color: #333333; -} -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #333333; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - -/*================================================================================================== -QToolBox -==================================================================================================*/ -QToolBox -{ - background-color: transparent; -} - - -QToolBox::tab -{ - background-color: #2a2a2a; - border: 2x solid #3c3c3c; - border-radius: 2px; -} - - -QToolBox::tab:hover -{ - background-color: @ThemeAccentColor1; - border: 1px solid #6492d7; - border-radius: 1px -} - -/*================================================================================================== -QStatusBar -==================================================================================================*/ -QStatusBar > QLabel { - margin-left: 4px; -} - - -QStatusBar::item { - border: 1px solid #333333; - border-radius: 0px; -} - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #f5f5f5; - background-color: #2a2a2a; /* top menu main background color */ -} - -QMenu, -QMenu::item { - color: #f5f5f5; - background-color: #2a2a2a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; - background-color: @ThemeAccentColor1; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_light.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor1; - border: 2px @ThemeAccentColor1; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: @ThemeAccentColor1; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: #949494; -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: #949494; -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: #bcbcbc; - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 1px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #2a2a2a; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 1px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); - background-color: #333333; -} - -QDockWidget::title { - text-align: center; - background-color: #2a2a2a; - border-bottom: 4px solid #333333; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - margin-left: 6px; - margin-right: 6px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 1px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: @ThemeAccentColor1; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: @ThemeAccentColor2; - border: 2px solid @ThemeAccentColor3; -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #3c3c3c; - border: 6px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - min-height: 24px; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 1px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: @ThemeAccentColor1; - border-radius: 1px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 1px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: #2a2a2a; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: #696969; -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 1px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: #2a2a2a; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 24px; - border-radius: 1px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ /* was transparent. fixes no color undocked Combo View */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #333333; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #33333C; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #333333; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #333333; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 8px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 6px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; /* Hack for Undocked white background - was transparent*/ -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #333333; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: #3c3c3c; /* was transparent */ - border: 1px solid transparent; - padding: 3px 12px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 0px; - margin-right: 0px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 0px; - margin-bottom: 0px; -} - -QTabBar::tab:selected { - color: #f5f5f5; - background-color: #333333; /* same as tab content background color */ - border-color: #3C3C3C; -} - -QTabBar::tab:top:selected { - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom-color: #333333; /* same as tab content background color */ - border-radius: 2px; -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top-color: #333333; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid @ThemeAccentColor1; /* selection color */ - border-right-color: #333333; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid @ThemeAccentColor1; /* selection color */ - border-left-color: #333333; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: @ThemeAccentColor1; /* Hack for Undocked inactive tabs - can also change to #696969 */ /* was rgba(255,255,255,20) */ -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #333333) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 108px; /* narrowed for new smaller icons - was 130px*/ - max-width: 108px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 1px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { /* Preference left icons*/ - background-color: @ThemeAccentColor1; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { /* Preference left icons*/ - color: white; - background-color: @ThemeAccentColor1; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 1px; - background-image: url(qss:images_dark-light/close_light.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #333333; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #e0e0e0; - background-color: #3c3c3c; /*Also controls Default Spreadsheet background */ - alternate-background-color: #333333; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 1px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: @ThemeAccentColor1; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #333333; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #696969; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 1px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #949494; - background-color: #2a2a2a; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 1px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #2a2a2a; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 1px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #d2d2d2; - background-color: #2a2a2a; - border-top-left-radius: 1px; /* 1px less than its container */ - border-top-right-radius: 1px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #2a2a2a; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: #2a2a2a; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: #2a2a2a; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_light.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ -QMainWindow::separator { - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - margin: 4px 2px 4px 2px; -} - -QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_light.svg); - margin: 2px 4px 2px 4px; -} - - -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #3c3c3c; /* Python Console */ - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; - border: 6px solid #333333; - border-radius: 0px; - margin: 0px; - padding: 1px; -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -/* Action group */ -QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ -} - -QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #2a2a2a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: @ThemeAccentColor1; -} - -QSint--ActionGroup QToolButton[class="header"] { - color: #f5f5f5; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #3c3c3c; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #3c3c3c; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #3c3c3c; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #3c3c3c; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #3c3c3c; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #3c3c3c; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #494949; -} - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QToolBar > Gui--WorkbenchComboBox { - color: #f5f5f5; - background-color: #2a2a2a; /* workbench picker and drop-down */ - selection-color: #ffffff; - selection-background-color: #2a2a2a; - border: 1px solid #2a2a2a; - border-radius: 1px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 16px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -QToolBar > Gui--WorkbenchComboBox:!editable { - color: #f5f5f5; - font-weight: bold; - background-color: @ThemeAccentColor1; /* workbench disabled color */ -} - -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #f5f5f5; - background-color: #494949; /* lineedits and drop-downs */ - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; - border: 0px solid #2a2a2a; - border-radius: 1px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 16px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: #ffffff; /* Addon Manager*/ -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - color: #f5f5f5; - background-color: #3c3c3c; - border: 6px solid #333333; - border-radius: 0px; - margin: 0px; - padding: 1px; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - font-weight: bold; - color: #f5f5f5; - border-color: #333333; - border: 1px; - border-right-color: @ThemeAccentColor1; /* same as up/down or drop-down button color */ - background-color: #494949; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #696969; - background-color: #494949; /* same as enabled color */ - border-color: #2a2a2a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #2a2a2a; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: #2a2a2a; -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: #2a2a2a; -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #2a2a2a; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 1px; - border-bottom-right-radius: 1px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: #2a2a2a; -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; /* was transparent */ - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - padding: 4px 20px; - border: 1px solid #494949; - margin: 4px 4px; - border-radius: 1px; -} - -QPushButton:hover, -QPushButton:focus { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #f5f5f5; - background-color: #2a2a2a; /* same as enabled color */ - border: 1px solid #2a2a2a; /* same as enabled color */ -} - -QPushButton:pressed { - color: #ffffff; - background-color: @ThemeAccentColor2; - border: 1px solid #3c3c3c; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* Inspect Widgets Addon */ - -QDockWidget#InspectWidgets QPushButton { - background-color: #2a2a2a; - border: 1px solid #3c3c3c; - min-height: 16px; - margin: 0px; -} - -QDockWidget#InspectWidgets QPushButton:hover { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; - border-bottom: 1px solid #f5f5f5; -} - -QDockWidget#InspectWidgets QPushButton:checked, -QDockWidget#InspectWidgets QPushButton:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* CAD Navigation Style */ -QMenu::item#NavigationIndicator { - image: url(qss:images_dark-light/NavigationBlender_light.svg); -} -QPushButton#NavigationIndicator { - background-color: @ThemeAccentColor1; - padding: 2px; - margin: 0px; - border: 1px solid #333333; - border-radius: 1px; - min-width: 90px; - min-height: 24px; -} - -QPushButton:hover#NavigationIndicator { - color: #ffffff; - border: 1px solid #f5f5f5; -} - -QPushButton:pressed#NavigationIndicator { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* BIM Views Manager */ - -QWidget#Form QPushButton { - background-color: #333333; - padding: 4px 2px; - border: 1px solid #3c3c3c; - border-radius: 1px; - margin: 2px; - margin-bottom: 8px; - max-width: 100%; - min-width: 16px; - min-height: 24px; -} - -QWidget#Form QPushButton:hover { - border: 1px solid #f5f5f5; - background-color: @ThemeAccentColor1; -} - -QWidget#Form QPushButton:pressed { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -/* Addon Manager */ - -QDialog#Dialog QPushButton { - padding: 4px; - margin: 0px; - border: 1px solid #494949; -} - -QDialog#Dialog QPushButton:hover { - color: #ffffff; - border: 1px solid #3c3c3c; - background-color: @ThemeAccentColor2; -} - -QPushButton#buttonUninstall { - margin-left: 16px; -} - -QPushButton#buttonClose { - margin-right: 8px; -} - -/* Ok Cancel Apply Help Preferences Buttons */ /* Hack to move Help button left */ - -QDialogButtonBox > QPushButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - border: 1px solid #494949; - padding: 4px; - margin-right: 8px; - min-width: 60px; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: @ThemeAccentColor1; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor1); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor1); - -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #2a2a2a; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 1px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #333333; /* main background color */ - border: 1px solid #333333; - border-radius: 1px; - padding: 2px 6px; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - -QFileDialog#QFileDialog QToolButton:hover, -QFileDialog#QFileDialog QToolButton:focus { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ - -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - border: 1px solid #494949; - padding: 0px; /* different than regular QPushButton */ - margin: 2px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #f5f5f5; - background-color: #2a2a2a; - border: 1px solid #2a2a2a; -} - -QDialog QToolButton:pressed { - color: #ffffff; - background-color: @ThemeAccentColor2; - border: 1px solid #3c3c3c; -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - border: 1px solid #494949; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: solid #f5f5f5; - background-color: @ThemeAccentColor1; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #f5f5f5; - border-color: #494949; - background-color: #424242; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: @ThemeAccentColor1; -} - -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #f5f5f5; - background: #2a2a2a; - padding: 0px; - margin: 0px; -} - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: #2a2a2a; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: #333333; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: #696969; - border: 1px solid #2a2a2a; -} - -QRadioButton::indicator:checked { - background-color: @ThemeAccentColor1; /* QCheckBox has the same color */ - border: 1px solid #2a2a2a; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 12px; - height: 12px; - border-radius: 1px; -} - -QRadioButton::indicator:pressed { - border-color: #696969; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: #696969; - border: 1px solid #2a2a2a; - width: 12px; - height: 12px; - border-radius:1px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #696969; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ - border: 1px solid #2a2a2a; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #696969; - border: 1px solid #696969; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:0px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #696969; /* slightly lighter than default */ - border-color: #696969; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #696969; /* QRadioButton has the same color */ - border: 1px solid #696969; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #696969; - border: 1px solid #696969; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: #2a2a2a; - border: 2px solid #3c3c3c; - border-radius: 1px; - margin: 4px 0px; -} - -QSlider::groove:horizontal { - height: 8px; -} - -QSlider::groove:vertical { - width: 8px; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #3c3c3c; - background-color: #2a2a2a; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #696969; - border: 1px solid #2a2a2a; - width: 16px; - height: 16px; - border-radius: 1px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #adc5ed; - background-color: @ThemeAccentColor1; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #2a2a2a; - background-color: @ThemeAccentColor1; -} - - -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ -} - -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ -} - -QToolBar > QPushButton { - padding: 2px; - margin: 0px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 24px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 24px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 1px; /* same as regular QPushButton */ -} - -QToolBar > QPushButton:checked { - border: 1px solid #3c3c3c; - background-color: @ThemeAccentColor1; -} - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QToolBar > QPushButton::menu-indicator:!checked { - image: none; - width: 0px; -} - -QToolBar > QPushButton:!checked { - background-color: #333333; /* Current Working Plane and Nudge */ - padding: 2px 4px; - border: 1px solid #3c3c3c; - margin: 0px 2px; -} - -QToolBar > QPushButton:checked:hover { - border: 1px solid #f5f5f5; -} - -QToolBar > QPushButton:!checked:hover { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QToolBar > QPushButton:checked:pressed { - border: 1px solid @ThemeAccentColor1; - background-color: solid @ThemeAccentColor1; -} - -QToolBar > QPushButton:!checked:pressed { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 1px; - border: 1px solid transparent; -} - -QToolBar > QToolButton:hover { - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QToolBar > QToolButton:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid #333333; - border-radius: 1px; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 1px; - border-bottom-right-radius: 1px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover { - border-top: 1px solid #f5f5f5; - border-bottom: 1px solid #f5f5f5; - border-right: 1px solid #f5f5f5; - background-color: @ThemeAccentColor1; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover { - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - border-top: 1px solid @ThemeAccentColor1; - border-bottom: 1px solid @ThemeAccentColor1; - border-right: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; /* transparency for @ThemeAccentColor1 color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; /* transparency for @ThemeAccentColor1 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QMdiArea > QWidget > QMdiSubWindow > SpreadsheetGui--SheetView > QWidget > SpreadsheetGui--SheetTableView > { - background-color: #cecece; /* Default Spreadsheet background color */ -} -QTableView { - gridline-color: #a8a8a8; - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; /* Default Spreadsheet cell selection background color */ -} - -QTableView::item:disabled { - color: #eeeeee; -} - -QTableView::item:selected { - color: #ffffff; - border-color: #cecece; /* same as focused background color */ - border-bottom-color: @ThemeAccentColor1; /* same as focused border color */ - background-color: @ThemeAccentColor1; /* cell background color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 1px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: #f5f5f5; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #000000; - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; - border-color: #3c3c3c; - background-color: #cecece; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: #f5f5f5; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: #f5f5f5; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 1px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: white; - background-color: #333333; -} - -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; -} - -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); -} - -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); -} - - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; -} - -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; -} - -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; -} - - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; -} - -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; -} - -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} - -/*================================================================================================== -PREFERENCES PACKS -==================================================================================================*/ -Gui--Dialog--DlgSettingsGeneral > QGroupBox > QGroupBox > QTableWidget > QWidget > QPushButton { - margin: 0px; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; - } diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png new file mode 100644 index 0000000000000000000000000000000000000000..52fccd3287b1a2e551b8c8f6703dbb7e715d294b GIT binary patch literal 1447 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 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ad95022824ced966050eaaddfa11355eb49a23 GIT binary patch literal 1680 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 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png new file mode 100644 index 0000000000000000000000000000000000000000..e5340ac2e940023af3a5b798c3a16fea3b1c3795 GIT binary patch literal 1012 zcmeAS@N?(olHy`uVBq!ia0vp^p+MZp!3HE_IZOC}6lZ})WHAFnj2j3uicE2K1PV%) zxJHx&=ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk#lXPa=;`7ZQZeW4-P@CH83?pI z+?Kuh{r^3)xu2inWb8S9>B||9cmLCZPapg+HA3a~gw)$+Jr_3V*x%k(n{LnNo&Ak@ z!xo*>=O3ScHPyYgO@?us$t%Hx(i@vrq!&z0^j;KoaMht{&U?8+1-FT0X$P3z2wJf@ zgzc)qt-8{Cc58%Ih&!}5_`2sxEPR?69B3W)X=&o+fa?Ek^J3?5&Te|ekhLpLEXQJ% z@`{(gBsVNv5viXOm zTu}-5{MRT^bH&L8&wi&LOk2C+#)6Btf9jWq9D1^E`-h{A+F6bPm&^7h-VNYxp0({g z=j$dbh8J-hIp(h%7F3tq(7VFu_ihk&^Y?-&Pkt-fx|6 zpPKLfDy29u%H2kx_kaBOiwQCcD-(SCU_E&7Z!}0KUvgd+(7nfdp|I4~IZhnoO-@kmW+pJs?VIk(tZ`oLT zPG6aQU{?c^__cqN5ASMZ5-(rj!}Xer%jC_{UAJYnJ^g9+_Lp%^#*~Y{J{E4{Tk!1f zO5p=R4vpvLUSU3b$$_!m_CNEXAV5?Zvo%CpTm+VECDzC6uG3A@IRXlxH>{7t7w?><6bY zure(VNx5OPz~O_9X?A?hm$Jj^|64-Ce?0lOX3FPa*~HV0Or7d~tqx3MVV!h-$-4$! zZY~iE+r7X9t`Wc>x`QQJPDJC|{fl2~zAfO=2uN9SE==>vwToeyQ<#nhG`@DY>d@G< zqCs|*l16}ts0I6KE-n!_*1m^Y%}hrF8^aI0T5y12#R2;hf)0!i__uaX5KAbETLH|m N44$rjF6*2UngEE2$J+n^ literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..d31d98fe6368159659b7f45968067256699898a0 GIT binary patch literal 942 zcmeAS@N?(olHy`uVBq!ia0vp^p+MZp!3HE_IZOC}6lZ})WHAFnj2j3uicE2K1PV%) zxJHx&=ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk#lXO9?djqeQZeW4?Z`Z7LxGlu z-xQ{wW}I`{qTkY&?}1Ezr2)r@OFA*TZn*mWZAfr7Q}~wdwV7etlu2hlRQ&(pb1_?^ zHpk3yf8BrY{`i}V-D}(CFiw;D$}vH9n%GyaKFMi9TSak^#CwN;B|FnbUEC%a1ncd3$LTBX@SU_f-4uB-45`%_TI8w z9A7Sx_2ppllh^!?y=-TDqu6DpvYMDD*#?A|U684YH3$j2AX8K;5K?wQCTs4)>;JT$ z^;w_so=tt!imbobL=!L&B}eD>~NtfhB1-!A*Y9D056{cnF-vh=O@ zEmiSA?z^}7_UT5i z4W(}@-^%@EjlMQxUcUZPzd|9!b zb}!Pkv~{XtKQN0*zv=kOWBF_Ifxf8Y8-iD5+?crD{)>$%SJ{`>eD*)(Z4-{j8$IdD zy0Refeb0u|Azuzmod0m)^?xf4F6QrgXdbeMagpO$j)1d&6eJwZdIX&Pg5-u&wghk#lXPa;_2cTQZeW4-P=Wv3$-H55<=*~7q z&)!Uj*Oc>0&3>N=b-(PHd6T9Ht*UR~pe_FHhi~mSGW!|qmwXW({ z59ibg0i1LsE~qa!|GRqIy4Tk?{Z;;b@XUp0J8b?rZ3Q~*=5B|Z)g{$ci-q3ojH}#R z^Id$+THEFK)-Rp?b@#u9zV&x*&s{F%{(8;*ujN1X-21s_?w@#(ZQLRTYgXv7-R9+z zn7&fHv6PY3Z_Quz_EKh6zjpyMMXrg8WZdvB-D;V0`g88Bujw}~Xe|Ev_HmA^!`a`# z>J3X9nC4oqWN%yA$i!FukG*AS6O&(iFk92oW~RR5E7%%%8CmD>{}FBDWo9kvTjqAS zt%-@{O490eQ^MI&mxwi%#@9tH-uq{A;$;WMPxr5=+z1I!c+jgQVJ0iWQT3g_Ntcm} z#c$<_4XF-|4=S^+?Yr^fZJYl;&eiKaoctT8`Fy$6p=r#lLjJ!>8+19jROWl$WsDXR z(I}{@V$R77SiqoFz_rarBjC;c#jk(9aTE<$aKdBm+MpF{7q7jf!P>Qu>3QR-Mkdxk zM(YsQfCU;_1w3J*A{sqhZw`mDv34zHI^S^Bv5_&L@&5$n2Brh{(FZ3!3I1@U4VY;e NJYD@<);T3K0RUoK!G!<- literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..e833e1d996adff1b3a2276c0d6dac766d24bac70 GIT binary patch literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^p+MZp!3HE_IZOC}6lZ})WHAFnj2j3uicE2K1PV%) zxJHx&=ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk#lXO<@9E+gQZeW4?blha4Fp;* zuC#nF`~2ipd3MKFKa@^xHjV!DPhrcF){L;JKbW>onbi9s;<~Bp`h{OM-eA~!|NWPr zQ*EoR=sw}taAk#i!*$Q=-CjmVy#0CklgIjTvfi^@NF1Z zh`xZ>je?MT4z?QsAtDYYITBh`A3SadT!~|LKUn7e);5DBC;ZBaxtD*J?q297Z&S6e zPW(#7g_!lF2LdA_so=tt!imboYy2!L&B}eD=;?tfhCa(9rnzkYtw{?52FJgLW1f45`--34@>R{ra6r3-{|VyokJyVoC_ zR{CT~u$Dvnid$=+&;2>)UC2R@FMoa$e{P?%H{dWv?_gtSCKn@86pZC%!t`2S+AeeBC6! z;zmOCn&qc2&S%|r-D=m|AlJj+YW}W!zA|vb-uUgmPu9O@RQ@+XF+5~1TW?i*OYE{m z?0tWD`1gKu=as7s;Mu?M5w8GmmRm#CGxmcFS#C{PW%4boS9&-~m#qkhE|2J0ac2nccQ!WYgm&OKvk@Aw? Z-=N^(;;A|F7BGJ?c)I$ztaD0e0szTJoRa_m literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png new file mode 100644 index 0000000000000000000000000000000000000000..d48147818dc1a88152b0f96d49fada163184fe67 GIT binary patch literal 921 zcmeAS@N?(olHy`uVBq!ia0vp^p+MZp!3HE_IZOC}6lZ})WHAFnj2j3uicE2K1PV%) zxJHx&=ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk#lXO<=IP=XQZeW4?bCU;4MbWV zZoK%tKDG3sL2FKIh4ef{)BkE7y9~~UpIXH8V{5LoS|;;{t~eLJ_b*sew$=WblE-$% z-=i|3^op@VW<=^0Ym3N;&?_+po)NBBf;226Os_;KXaY&qAgA2BxkkG~S+|OJu&iOq z%I_$+kr5*1ppm1ZRsF%>hQ^gZ=Jo?_3;N_rEZ$^XS>avu;&q=(?>=q*>c4?2E-qN9 z_*$ZI71OLm>)U%*vCUevuDf#;*Q`Zr`&(D>&04g^_?KbnNr@Gk-&_j${`H&NTwar_ zrFU%u(^-8>qwDpr+;j|%efFYp7gxrr%6VZ|t~vz!7H?g!j%(JcdF#bWOD}|6onyMf zpV3$Je00|@lM5ji@2IZuXZ1}zKfn7|$%T+<&U~vJzu&F8vry{G4)5vOAJMq@ z@j9`Bo`goN>D~L^-(S~$8&ZFNzrTJ${ZHv_YvcEy{~mJq+SX$0U4fF@*66R_ynBD* zXRDG=6T2>mt}1_By4HM_S)ubFGbt&=+U%;|X9Y1{0+Rj<<0DUDUm z3(4B>VPsMIJw)9BT4r!*%&uzuqR9JYD@<);T3K0RSZvvWWly literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-black.png b/src/Gui/Stylesheets/images_classic/Arrow-down-black.png new file mode 100644 index 0000000000000000000000000000000000000000..9a72428cb3436e6e046acf86b2d6b967f6eb6848 GIT binary patch literal 581 zcmV-L0=oT)P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10n$lC zK~#90?a@be!!Qs8(Gu@}XL!YD1qOrxCU9zJOCo{(FQAaQs+98DN+~bxgJkvXUfcU0 zneE=4wxfS$_WJhOu0G6cbmX$td@0lG%;N{{>dV>Mt{e{G?tYZb?{5E7xSAhlbE?_> z60Y_knOwDd-@>&#EE}t3=PJ0?hi2`y?pqDl^YE;$o?V;ZdS8;A*Slvk+{nwa&qj9a zf*XBlHojjsoW#qYn#68Ha8ieOQc`;j!$IQJCb^Rc93$RIfsGMbvT|N^IIuIuU6#&i0uF4A za+J06nSld)ne3=V#gBBDV+IQYkkiU#lpvzJGr TJXlTr00000NkvXXu0mjfPvs11 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-down-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..bd578f501b9bddfba1733b91688f7bd6caaf5a12 GIT binary patch literal 593 zcmV-X0z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10p3YO zK~#90?a|3~!axv3(I;g`0FK66q9Fj%vsXICAgSlBLG^YvAa(z{e0@KEh)ngk-YU%7iH;YuDBwNa|xh90Xo&J$LE?2Z5KW_dea= zAn=YFu}fDt2)y@3?a>_$0&i>N4nyD|@J8Q%7#v&|Z^pfc!ol_MX5Du<99#!)<~^st zfq%T&_nQU>e(@ykH5Cs0;Yrmnt~WHFn>e~XkY*i=8b6u4UE9S_)#sPfgv~;H?B1_Fa`(xN4AIt2H~LJ*jCZN zC>*qpZW#>>!$JM{*3rN?9F!w?Km!MGkdNU74V=J18pRVDID&&?9B*jg3=Te#JfeX^ fIQYZziU#ltcVwdrpPmZo00000NkvXXu0mjfAH52< literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd077e5a0a944a0e7194c24c5b8ebb638d148c9 GIT binary patch literal 585 zcmV-P0=E5$P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10oF-G zK~#90?a@hggD?<9(P#F@X0^d&#ED}A>QxQ(W{GW({(bHH{zGJ{l+tTUDZQi*5|wv& zZSQ|Xx_fup&i)zc>(ghu`!Lecnafu4rAV$Tk1x2pFGp*;b2x>|{V1AWZvRWTk{?HN zD%t%OuJj?%xJviV!qq%1>Z@kwBDmUzM)lS1TMXCo@TjboU8~?)UlLu{x@R?9&! z_3YRL*Zb0_f4^q95ifsgBX;Y88+C{$HEOSJI0(GbM(#8O4gxRN=zWI4LEv3AW0#?D z5O|->+G98z1m4li9j3rR;LX1OG&p!J-imuqg@fnet-9}YICu`;%6l$>1OIrd@3#yN z{NhR6YbhM~!;`wtayamVCwUJMIIxc=eSR@GkiUFu8qO^W2RcTmNy~Y~;XuzAxipE>&=#ZzOH!IZ_7)ddAXnj|(7*s3tQ*q`8W@3t`J-Aw14D2yZ(M6=U& zhJ*I;t)qc)IH*VPfCdiWpd7;s8aRQ2Jc=hYa0Ca}INs2}8612gc|-$;aPWua6%F7Q XiE8E_`DbSt00000NkvXXu0mjfNfZj% literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..3441914a4ca95a4f8441271973ab0e1aedf537b8 GIT binary patch literal 590 zcmV-U0z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ozGL zK~#90?a@hcgFp}k(S(b`&GCu|Sps_Q8mNrW!nO?E|1JBzA4I0wwryFrZCj)d66JS# zt)D+cy8ComuYMWn>)U62`eUS{E0;CrOOaf69zSqTUykPX`lo1osr_%^a{f6Q zQ_k*>aJdhO`jxwP60YQ7QClTDXTg;|G%Bxj-)y*=hevtU>{#4g&A45xaDS zgTVW4)E?d8An?vc?l1%n0&n#Fhrz*n@n+n6C>*>GZ`OT>!@+y-X5MoO9QenZeZOgN z;1^HgUQ^+~AD+~Gro(|BJjr{Az=3@{>GO-hf&Arb({OH4IM6XdNm|Y;4hMS1NTunV zD&RoZC|7AapBgyOH_n;HbE$#@eIsc*&zU+n&@+~nb6lko4&+CZet#;pa3D9Hb~I29 z2lGd?fCdKOVBVNk(7*^Bj33n!8W@6uapPJ;17mQ|e`JejU=R-ajcpYTjKV?t=$6sI zFdWp6ZygPc!$CQM2Q+X12l*IY(7*{Cq)|Mffg?D$$MJ>+&fwq|$s-y7$8os)?E8L5 cpJC+Z57p}G+(4b2F#rGn07*qoM6N<$f;2`D9smFU literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-white.png b/src/Gui/Stylesheets/images_classic/Arrow-down-white.png new file mode 100644 index 0000000000000000000000000000000000000000..5aaa258c49194b6db5fe15cc2b5579fb1346559f GIT binary patch literal 578 zcmV-I0=@l-P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10nbT9 zK~#90?a@hMgD?;U(SrNmnXHmH0fEMz=-MT=LHchyj^iNn*0uwi_9?QaHh}%}kIZ~O zPW#nAGn4)C+3!Bg%ye@34|n;cOtnjoE4bp9Gx3TJCAixkWg^|~e+T#Y<7`=vyFbBI zJtUi2)!sF5)ep;ttKPX5uIZs!S55o2z%@TStFC$1R=BR0WVdzg*#p=8vg}m%j=gY0 zFU^3#{YK!1U;g5TcN>M9a)_5TWv>}r`c;7ACVHF%C-qQQ8goF3uEx-3_ICvkP$bBW?;5~R^_mqNz_;{lClZ1n~c;fex zhJ$!`D)-TVgE)9<_t1g^|9GnB*MtMVcV-`+_|j5fxVHeod>W92X@A?a*k70;Xr>h?f2hi84mQuGmQrJ;Xr;w^Jw4$ z4&=skfd+oyVEw3W(7+cQtQ*%A8u){Q`6IhS1D|j(Z)}%n;1>?YM|X<`zTu#MeAj5; z9}e0P+@nDZIH<=6fd+Bl;29+h8pMKwGEOKohzAE}q;O~u6Apf{LZShD0Y%jW*R1H) Qk^lez07*qoM6N<$f+vj+h5!Hn literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-black.png b/src/Gui/Stylesheets/images_classic/Arrow-left-black.png new file mode 100644 index 0000000000000000000000000000000000000000..dcfc9f2ae5ff688e5a7249b135cf37bd0227487d GIT binary patch literal 650 zcmV;50(Jd~P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10vAa{ zK~#90-P>1^-5?MJ(4*P^p5-5VJmCcepaU!5l&S=D-`@6p*L8hFZ(!Eiwry{T+qP|| z;g|adqZ#fij7GShFq+^V!DxVc2BSFc6^z2TcQA_Lj=(60I|`#1?hK4VxU(>d;I6D|_TMc6oE&|2^TojDSxJVcianUd);WEIOfXf17FfJ2}fw*ii2H`To7=X(P z<0dXMj2pP@FfQUMz_@^`0^=mE5{whLYA_DsD#AE`s|w={t}=`lxau&T;5xu~fa?O| z2d)#0FSu?n{^B~qU_(n7eC+$aMQ>u(`hc#$&mT%h;J2fo8}Qd5-U;~d`qc&a^y1tB z`0~k99r*UKS{Zn#%up40xIk19c&fBl4S2dJTM2lnoL&WZxe-zUc&mk#9eBI>m>D>v zZJZT2tl^&#I5et}4LCexlL{X9B}<%mb#tF$b6i$9P~W9Akm$aEt?{#4!e# z7RP;HY8>}~>2X{KmcVfhSO&*=U@08ufaP!;2bRQf3|JP&dthlCuYu)pJO{SG@fg?! k$8TUO9N&TMaQp}U0Z?b$*O!|;-2eap07*qoM6N<$fz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10xd~I zK~#90-P_4=95D<9&^M!?9D@^3G&(98C!kCmjjP%hThd6g^uh%IBjBs9YLdXmX;~Ik z*Ln5^dadV|x1}WR`Q>e);FtRkqZsZpj6%4tFpA)=!6<;c1tU4`9*o4eM=+A&*1$-J zTMHu@ZVQY=xUDdf;P${sfZGcrIPM6Hz__C@g5p}h2#9M1BN(nFj6k^7FoNKEzzBfr z1!FR-Y_QNM!=YW8wF!9ZX}F>xX~~M;by=XfSU!QGj1k~j=0${I^iO~=zxm? zqcJWLjE1;qFdE?^!f1et3gaLyGK>Sb=rDHTGQik@%K~E~E)$FmxNI<1;xfWmfy)Zx z0WLF)JGksHZs01wxPq$!;|s15j8C{~F#h2x!rh-G%@aDz20`TsWCp+-rV>L5yRhc0xaCLzwBXCn`FB@=kQ8p8B zS2;ZkaCajl1MpA_D?0FS^D#28N!vIouvx=DBCu&xBO0)I$R-l7OFSwHuv@S#0F?jfuV4;1%|`X4j2+g8(>%*$AO`790P{Ou^*TM$39>h9NU4ZaBKsn!?7Ni z6304VS{#posd3x~rpIv`SOUj&U>O|Wfu(R<0?Xm}0R9E>SKi_^Ih8;F0000P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10w765 zK~#90-P_r5>o5!j&=aRW73)IWlJfJG#POnq3jkKYGnx@e;NoLlS5?<#_6B;bWm(pe zxMf*Z3Vyl2FpA;6!zhHihfxIg2u1aU)?2#EphA2sZ=90NgAXopCc^bi~bu(Fqp;Mh9FJ7>#j}U^K)=CR2V05kzt&`MTc<^mjT8BToxERahYK3z-5E65tk9h23%GcZ*ZAmyuf9L@dQ@^ z#sgdx7|;2z+I)iY{1<`*-XGg<@7AT!;O#(z*8-( z=)lv>$H>4YZR4oGW)1&{z@|}+Xu#$nn@GSe@u(=kZo#$)z^;+R*}(2$(wV>^G2mIi zVFB(Lz@gFm(ZJzD6C;6B#$84MrwuBN08Sk->kXVf9M}^$9Y;T42poNYVQ{nuhQiSn z7!F4}U`QNofMIc*2ZqLR4j3NCabOA@$AD>Y><6a8u@9II$97;!9NU0tal8kn#_<}M t9>;TF2^^1sWpMlkmcsE9SPsX3;1{GZ-$VF?DC__L002ovPDHLkV1h7-6)XS% literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecb3ebd58eac690acf471be25e57cb0e479b452 GIT binary patch literal 656 zcmV;B0&o3^P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10v$<2 zK~#90-P>1^+%OCUz}D=+r*v}p$7^qxpuhltCt#PVL=t#dwrx{&-DYo~*IL(gD~Vgz zb)(>y`-D*p_Z3DV+)o%qaF1XVz&(SJ9QO)FV%$3zNpX8%B*g87kqmbPMk3r%7)fwv zU?jkug%KQg1x8@pRTx2WEno!1wSo~0*Ahk`Tx%FXa6MoI!1aPL8P^lWL|ktelW-$o zOu&tTF&H-z#z5R?7=v&#U<|;`g3%c_6GlheY#5zz5nyz{MS;;67YRl~Tr?Psa1miN zz(s{|5f>T81zdC(Cvh2IoWNy)aS)dY#sOS57&~zpVeG(Vh4BWL8O94-b{J1^6<|ET zRe|vXR|&=!Ts0VfaTQ_ku`EkT7~Jmn`!ahIz19t?0{{I`DgwV91=WDR4)IFBhu5zv zz^51I3c#07p6tN4kJZe;U1f%>z}*F+jKD*sy==h4McGWiQ|0t5z|)P848Th*tmweY z&Bw^VCT-)Wz-A5qh`^>%jcCB;A)83RF7c=+z;3~|2*9q9#M!{^VbYnvAu-@tz+nOI z8Ni{@`_aJRLlYx`Q^s9J0jCWrjQ~y^G3yPSJ{;H+I2}hnUq&$P- qUf8Za+BHY{&z8W|H0000hw literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-white.png b/src/Gui/Stylesheets/images_classic/Arrow-left-white.png new file mode 100644 index 0000000000000000000000000000000000000000..6b31a607df662392e5b5e64b06262c1e73aff037 GIT binary patch literal 662 zcmV;H0%`q;P)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10wYO8 zK~#90-P>7~gD?z4(U;!;p6QSDkO?rhhLTtT_mJ3fNxp5{M%U*n`vn}Itt)PWo?q_o zf7T86w19NNy{(L0a37ca4!GUDtUB&+ldgD?gLRxN4AyYcFqp^5!(a|q0tVM{Wngd(R|*E>xNVPcgubWujlt?*%J7;ptJ+NZUwD? zpEmI}z`gRT1@NeFE)P6A@{|US99GK$M`MPPz$*b!IpEc3uM}`5lr00Cjnhj2R~jMm zz||I(G|-~?C=0Y|8%qK$8~$=Y>ro9UpvRDn4A5&lN&@IP*p?3T9!X3EMhugt0i(u% zQ-F~J+~L6J(fd$f#-)icVAge)5Mbs-C3j%<6*E_0HVzzt3OH~As^Gu@sDuM!pc)Pg zfr>aV0;=M`0H}z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10h~!h zK~#90?a<3{q(Bfw(Ibo;Yvh;AYi*_@2t-2_6i}bMtIW4NU$56ol;8C4`zPcMG(q6y zH@%O*%WIlHftTL290D(`KX3$IN~>@L-d-Q!2)wN};Rw7>?ZOdwYbC)Ec*~OE2)ub& za0K4FY&ZgsgKz}iVK~OdI|awMc&FhQ6R!vycy)bjymz0fTKRVX5gp`uPHd{!D|kV zI`Eo=<9WPh;dmCWX*iz4YaWhg@VbEGe!OnrxEHT0IPSyi4vu^9x`g9;yl&yR7O!hK zuEXmdj%)CSfTKL#FmRN`8w!qcc*DU_25(3>&f^UW$2q*A;W&;rJRHaH0`7mgcmX#n z2QT0jrQ!wLN-1~&_n|$!fZJ#bFW`3igcooLt>Fb+VoSV$%V>@laGAaFegSTe#)0O+ R5!V0!002ovPDHLkV1m~P?Ro$J literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..7b66315058ee8fc3e6b57a59468848d890282eda GIT binary patch literal 523 zcmV+m0`&cfP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10hmcd zK~#90?a)bbgfI|A!88Z#``@O$aYqmsXo*2+sJE*6%lvu2-=h4c*XtE>2bv)8@|!+K z;N>;VpTJ9RS`LAi);~A`FQrvD0`FU!a0K37yKn^FR$t)=ytR_x2)t#M;~~Pz|lV5V{o*M_b43g;yn&Wn|M{g(H>qk zaI}S26&&s0RR>2KcvZqtKVG$P)Qwj)9QEQ=4@aGNO~6qfUNdmih1V1u_24xJM;&-g z!tp#_vv53%*EAf@;WZD(Gk9IVQ68@wILhL61xGo&?%*hc*CibH<8=$iy?9;2aUWjy zaNL781RU4n4FkuuctgQ)9o}$oT!S|x9Ovz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10i;Pp zK~#90?b1n(LNN?L!GgXRSL5XLrjfpAhJ-&PPW)DmS5_&f+wCT+@8@(n-7c5Qwe=y< zI>YsP&2LxP`936GUFYQ^@ya_tE)uV-e{dvTNl)QOyidJ^Bk|t#7LLSw)kioI?^#7~ zB;I4ia3tQcDmW7FUNszv$Cq#<-q&!p9 z2i`7ljE}b)9Ao3{3dgv3yTdUi-XU;|hj$npW8obN$2fS0!!ZV46FB1IHG?BIUQ;;Y z;x&gOCSDhC#KY?bj#zkI!4U_qJ2+zCbqPoRc-_L$H(u9p^o!R$9DU-2fTKUWFmUvR z7YdGk@WR2-2VO`x+T(?Vqb*)&INITbhocSN5O5riHw+xd;td7Iad^YQaSYy&aO{sa zEFAmd4GqVBc*Dc758f1TY>zh$9NXee1;=)H)4{O~-jr~x$D0<8b$C<5@jc%3aD0cC zaDUa}CETJKyo7tG6ffbPRDzdqFZzU+aBq5tmvA3?g_m#zJ;O`5!XEJwuA(Jg!c}(1 Z`vtoM#C4qS4haAN002ovPDHLkV1llA>puVh literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png new file mode 100644 index 0000000000000000000000000000000000000000..f498bd1bd39cb276ffc1de8d81cd4e8d8b00a6e2 GIT binary patch literal 520 zcmV+j0{8uiP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10hLKa zK~#90?a;|~gD?<9!HWO?pUEOQPHZzsAV5RkP50Z@*ECI{{2mCo9X)<;;AQss_Xl1^ zkGCCoiM_)ScuCE{5qO&|!4Y_?t-%p^i*3OXc(bLz5qKY^!V!2c<-iem&vM}iJnVxb z@OHy7INlLB2F5!I$Dnv6;203E6dZ%$m4ss;ywY$Cf_DZS1K^znN9TBF!qG9_*>H4< zcLf|B;#~ztXLwh_(GlL&aCCxq2OJ&X-33SEcz43lFy7s8G>TUP91Y^t0!L$bHNnvk zUTttRf>$FP4dB%ZN9A}m!%;C_?Qm3z*8&_B;+g0>{O8J;8AyUT<(*gx4b+7vS{@$H{m-!*L>B?{J)iHv$|d z;Ee)DVZ4#xD2O*29EI>kgrfl7sBj#_8ySuRc%#Fy6EEO?%Ek-0zq0TG?zLpRfcq>7 zFW~0e#0$9PR`CLEy+yo$+in&w;L`fQ3%K-N@B%KcCtkqiH^Dd9GEhv*%g_b@0000< KMNUMnLSTX_gWFF4 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown.png new file mode 100644 index 0000000000000000000000000000000000000000..b2fc76019c4a32e4dd210d84d715526da36fed1e GIT binary patch literal 521 zcmV+k0`~ohP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10hUQb zK~#90?a)iIqc9Lf!G!(q**$4T5In#V2+*g_sOk=L`g}g3{N`zzLheK}1YUmg_Xxba z=H(N3>CNjQ@Y4DNN8qKj2}j`lY8Q^cJL(XQz}xF59D%o05*&fIE*Xx%Tb2b!;C;)6 zBk(v0N8p`?V{E)jaEyz08ICdWioh`*UNJbv!Yc~LIC#b37z6JXIQqxC4UWF?ZiS;? zyxZaE6Ymi?`ont+j=u07g`*$5$KmJ$?-e-O$9oNqw((wtqg}k$;b;@D3OL%ss|Jp? z@T!8N9lYw`XalcGIO@l%7LK~{s)nOpyz1eo6R!z4>ceXWj=J!gf}djck!Br<2}6Q;dlqH3pk#~>jsWz@w$TJIlS)Rcm}UaIPS;m7LI%Ix`yLEyzb$+ z2X6>C%Hs_KM_Ig~;3$VT92{lvhJ@of-mq|7!y6io^LWFz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10rg2l zK~#90-Q2fz#83!jS`b8b^HK zB^5 z*MQ-1oCl`BaSoUU$8lgP9LIp^aO?-B#IX;U7RPsBY8;<|>2bUVmca2ESO&*4uoRB} zz;ZbLfF*Ial*Db@wonjvgHa5352Fz75k?W*D;NcE?_eayeS(n~_YFo;+#VPSaeHAT z!ySQ<2zL}l65JUW32 zg3%Bc4MrneL>LWlQDI!fMTT(!7ahh)Tm~2?a9Lm+#ASkU0GAEMPFzM9J8)THe8FXg z@d1||#v5D(7%y;DU_9U|!MMX!gYk>22!o~aF#Hbz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10s=`y zK~#90-Q3A_8&M1dz~W@51Qd;rj>ZWnJnCXT)6|fhp!iunUeDz-~C^1H0mw3+#?# z9&iYbIly5!#si1q7z-SZV;pb_jxoS#IQj#p;^+&Uj-wwi1dcwyFgV%+L*Zx(42Po~ zFeHvPz_2*Z14H9D2MmwnI4}i{W56^x_5)Ml*au99V>>VrEvTYEQjMCuq5u5lDI#=KQ0u+-Cz{M-NPt^dxTL0w+5pC?iq~axK}U| zj5JGt{05SxSlX3;(EiFgc|{40&WzH!MKqy2I5A;7=)VvV*qXzjLx{3FgoI9 z!{~&I0HXsg3XI0MNH7}WqQPi{iwL6uE-H+ZxX3V0;G)Agh|2)u04@uRow!UecHpwX z*oeyrV*@TLj5oNz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10r*Ko zK~#90-Q3A_0#OVEz+wUnr@GFkIz*RVM0$1b62i$}s7jQFzG;CKd> z!tozi4#yv`B<_}yxXa~oq9E=DqZsZUMj_lIj3T&KFbd$_!AOq#1S2u-8;qp5H82w5 z*1|}J+X5pIZYzu=xIHiu;P%1@jynP)FzzUfptu$=0^(Z12!?A3BM`1Nj3BrkFaqFu z!I+He31cFzH;hTR5ilm;M!^`28wq0|ZZwQRxEU}8;AX+-jGGCgBW^Z~PPhm#I^d$f zXpD;lqaiLDj7GSKFdE>Z!Z?VF4C4SUI*gsT3@~=!vcTAg%LHQsE*p%MxQsAX;IhK_ zg3Ao!11>v^H@FHgUf`<0c)(SHafho0;}=&E2B*ry@IUG@+`eNq=$Zfk002ovPDHLk FV1na|{bB$B literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..2538cf3b8349de00ada1aaa812eb8837407e18e6 GIT binary patch literal 633 zcmV-<0*3vGP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10tQJ$ zK~#90-P}o%Vo?YM(DSX0xiiC+o0BriGHrhI8sLtA5hs|l+-^5j^JiI>+xdLH&R(QP zPH??mOP=p^FDe30k4-h;>3L8I_zOoJ;7c4efNyc+2Y$qn8~7DRUf?PmIf1Kj6)QfZcG+2X@6V z7uX%gJm3%Y5Aeqah5`+#Y1YzL;ou??6G$9iB&9P5B-aeN1+#_<`L z9>;rN2^_D1WpMlkmcsErupEwmz>>IoO5!e;%R)ii9Y!(SBaA}0XBb6ruV56wy@Qb) z_X$Q~+&36Wacf{C#I1#q47UYFBHUIONpO2$B*5*35gc~}Mqu1g7(sC@UTyGeYa3f$$z>R`27&j8eK-_2;gK#ro48YBT(HS=r zMn~Li7@cqtV06GmfzcQj2}VO)G#HI=5n(jIMTKz?7a7I@Tyz*aaT#Fjz-5845tj+Z z23$56D{&cNtiWZ3@dcL|#s^$>7;kVDV7$Opf$@Z^1mgi$4aQ$wMHnoVAH)9uQL5b; T(Rsz*00000NkvXXu0mjf0tWHO literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-white.png b/src/Gui/Stylesheets/images_classic/Arrow-right-white.png new file mode 100644 index 0000000000000000000000000000000000000000..ac30f27ef8e7c39836c98953fdec763e83bed81f GIT binary patch literal 612 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 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-black.png b/src/Gui/Stylesheets/images_classic/Arrow-up-black.png new file mode 100644 index 0000000000000000000000000000000000000000..e21088ecfc9d2f804c9f6adb247f0c11d361f2df GIT binary patch literal 534 zcmV+x0_pvUP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10i#Jo zK~#90?b1n-!!Qg((U$LjXJ@5qS7KQc2av{JCRtE;Dd&0qv3MQc2WVAFIZG*N|CK4> zu3%a5(!t$9WyDJb_XLy;FAdxXOeVY(a5ErT@WR8bKxDuR4Yvaj9WN}L#PE^vLc&Q7 z9u+SfoW{@*@j}6A4jc_H44lQVk?=ymSq>Tn4<62A$Ow4QaGnFAGDcFS-?+iz#XB{-tVwYudr9MR-k*>nnyXnM_VI}ArO{bn{Ef+Lz;qg!|3 zh-Tl&=8teh^Q*Ug6OL&9JsI4>5e=u7#Sa|O@VYZOdOu(oecK$ZFBo1|qvQJnhF!J# Y0Px3fLpKt!Q~&?~07*qoM6N<$f^^m58UO$Q literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-up-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..31a959017bdecaa5e52331c04fd9e5471260c31b GIT binary patch literal 539 zcmV+$0_6RPP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10jNnt zK~#90?b6AS!axv2QIL^XgI}1ZIdzNz)atF4tWy3XaH!75bKmy|i`V9TfL5>fXMepv zY5$ce;f`Qg@zTMaL1n~C1$PCM4KEE`4@@S!6mTOTS@6Qc%|K+p3k|md5FIZpoW$^v z@j}8$4jvUR9Gu3`5%EI7X$~9>FASW;u#xaWz*!C&1rHw1W5@`2&~TmuqT|8BAqtJq9Lf+QA>8Z=hcLiw z-nYBKc|Tkt&o{WhWk4%=y~P|Z6I#jRO{Q=e(Mr~DGlR>FR*=Ghr1J6 z$>PnbaCby2X}?_!?#^f>%?(uGi1we>7UFP3`%PmLQ8=R2lio%Qj%e*9Hxhv(T7Obo zEyEFQJc-Sg;D|Qg>UPs`L|boV!znnT$u+y>FdWh3o7r>-j%a#~Zrcqz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10i{Vq zK~#90?b1nd!!Qg)(L@L2{coeJSW(%cIALf&{g<{EU_bw!=lR3pb$B13RVn2xrKJ5= zri8nKWyMPecL$XbFBRMqP&T|Ya3e68@KV6dfMmf754Qr50WUP%4nTCguy7K?N5%^Y zCpmajyl`+DLr2651*bW1G`uiy7Q;ru3jt?2XcRnnIFBJC;6cNA4v3Bi3x_Zq!VRq; z;gAMHy5$-i9O6)jH$lN64pc+C4F(Qvn7fc}gn&aDq!-Gq?r~T3d+25$!vTO+?{{)=qjGF*u_2liWxIj%edaZM6+Y zwD}}9+kzw7db`^#!x3%2oeh`Zh$h$SmeX)VlW%3yDLA6(HM{LF9MSZf*?0(!Xm*Wm z-Gw8XeIuJc!V%4{-u6v6qWSk^a0^E?oLUxNa74rF&gAI*fMN7$bF{u-cwLQ-&kq=O a)#?x7htap;-ga#O0000z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10i;Pp zK~#90?b1nd!!Qg)(L^`r$(0o=Dq9pM3=OFN()I%E=il=@e^|T@?*p_drJSXdwExPK za96ObcjN)PGb1Tcp>2= z2ak#u4o+j}hvbLl|H+@7vwr zydN%+=Nnw$GN9GG-eL}y39aVwCR4bKXf^A%nZad7t69F$1nv!JHLJI(!@UWuX7OfK zxHqEJwBN1<_hz)3<_0QoMEg%`3voE2eW$UBC>+t+NpB+tN3?#D8;QUXZ9J*1w&932 zpTuTca70^gce`acqV2b{;SwCtM@=w;hHfntn4I55W=5uFkNoN|pcs002ovPDHLkV1i3V=&}F+ literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-white.png b/src/Gui/Stylesheets/images_classic/Arrow-up-white.png new file mode 100644 index 0000000000000000000000000000000000000000..017d65f2d4fa5c5d27503cc7f14d7a5ea5fffdd4 GIT binary patch literal 534 zcmV+x0_pvUP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10i#Jo zK~#90?a@hY!!Qs;QAYQ_GqVYu#135NxDl8%cv;|PKvLjkfLnnGj~5+o2OuxG zUPL&Jp~K-tgVP*16ka4ai($jyMS-&%Gz4A*IFBLW@zCKs2ZY8$hC>(*;fB*t;gAMH zy5$uj9O6)LH=)774fH3d+mPU(hUo-zBMKbMAOk_%iU0>O#ANO_d&9X8u#xNSo^X-T zT5fOfg3Ex`a(RmfTqd-Z`J1faGNQFi-)0Gy8LegZMk}}{ptVfiY615ow3hmtwc(zK z)>3`DCft+JT520;!4d5@l`S;ji1wNICem<3>nFO6BplK16Wd4%j%eeFY$X9lwE4C- z+l3?AdRyD=z!7b~m)l>#5zW7@K@W~-IGtLY!4VCw50iH|qT%+>=IH&wAbS}d?>{j3YAL0B Y0}k_U{{$9gr2qf`07*qoM6N<$f&m5QJ^%m! literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-black.png b/src/Gui/Stylesheets/images_classic/Check-Checked-black.png new file mode 100644 index 0000000000000000000000000000000000000000..32768dffcc7ad783f0f849f5b5e855d608d7749d GIT binary patch literal 851 zcmV-Z1FZasP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10^mtR zK~#90?VM3^>mU#W2UqTYW!}%T%W-50#IidJ(+6fxJN0a)>@0z>piSq zXje)pwUlBq(M4t40sLwHC=}z@rL4Wl-?^0GEslys7{sBb@ht043uD z&nf`P2<7uwL^8hMT?HT+VH_P6O2z>ZRREF^f{xG|iK+sS40q0M!Aiy(kyQYa;mXw) z6C~q5(NzGF;YQ2XbtHob$-w+AN?&42$o4W=ssJQ|imhcZRRL@+gNdW zRY$BSc@_`m|CmR}Rt4a6P^dcEcmO`~&C zCRSm%jO;>~u3y^}5hgO2rmF|G>sA>=n8{$9vMU&`S7i`kDuZ#_j$pk`l|h8L4A!Z8 z!hC&G%3yxO%xtwyu@A{K8SHPIk!{MzFdS25WLN+uwkRXZP)wJRWg!??zKl%6;36Z_ zf<&@(8QF%wO-8nbiNLiCPazrQFTG7=!(E2Q#Ad7lP#IK&$e1~~S*rk41{Gm4W=wGA dDgc#1#XpBMWzOJs1`YrK002ovPDHLkV1ma2ZJ7W7 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-blue.png b/src/Gui/Stylesheets/images_classic/Check-Checked-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..933768f5f75a4b7919b8e0d744d2a8dab71f9cb1 GIT binary patch literal 864 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 FCII7+Ntgft literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-white.png b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-white.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f2a48a0413f302f155e5801dbdfacc200f18f8 GIT binary patch literal 209 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 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/FoldOver_Blue2-dark.png b/src/Gui/Stylesheets/images_classic/FoldOver_Blue2-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..073b7da8554f25679b515254b2d07ac856fd3704 GIT binary patch literal 1787 zcmVz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H128c;S zK~#90?VU|>6G04xWrtDWpOqnDa6IH5EGG!KMib!IGkf}$B#zc^cTBefd8fK{|Wh#l5VU+6ZeF9@j zq;)XXi6)sCixUNwlyaA;B*Nh>mFqHBB4P2ar<+XP4?HWLbv0k+N+LU~mp#*DDv@ll zuD4k-F^cr(_Ye3n@9rPq$2^KvLYc_KB9ewYOR&ggA(XmIo+5e3vxKKy+Cr(yeNUS!`O$)qh(ZxY=?JEaf_bvT(yBpbBrfav2PnMx#E*oFFlIuRr# z(KJJCSbj~@vOAfyQmI5*hgO}A^mUg^B@zd0LT#3*N0B~$`RRQMlQ0QI@lmG;BK0WL zRyN6`kxDFuxW!nY-h|rPZ`WjsB+}B)8St*>YMIcfd!lwScY;TVMzs+^FT88 zCG|3gXyC8!pWgm3oDVZ_nOK%Mlt^=b-vf(K8hv_`Dbo_CA=1*%x4xq>`pc zYyW)>3_>CL)rL^2J(GnAEBa@{_d;k9}G6|JJCJ&L0-mWE!P-hX$=G$w( z3M3Ip98$~F3nIemXy#EM7 zQO*Hx@fHC^md7y%eKHksD4A9eVToa&WLhA?=w=p5rWqoQZf2llnjqrnW^YQS8$=%6 z>`BQqqNeTcr(|l#G;P;|lIcGgr|nu(G8HgNCdoaz*^=&Ms?p6j&WP``k4i72n=N>K zc|LWUOf|Y04@4%$uSK7u$I;Dmp!(NcGW9&VS(~n8s?p85bR$!ZZr0~4@^2@8^gzt} zChvxN-~Swlz777QPbQW|vYdw|sbykoAlvz%q5pJ>H|?iNvdeH3XfiSFn`(6PGRXas zNF!6GU#ryUW*^{tChv5r(ar17=u@fS}cJHnjQ^ zewkyKk`hrU4X$KDEp-;@#2^y#I2J;o`f|&Yu*t+E67qPF6Y8c+?CHcP67slOLTRRw zNWf%b772NLv``k?4t1HlU&I_^HNmZiNpWK)WkSB@gc2&+e&VQ5sK<-Epy#{@v&=pLrILv8`#w+v0Q1FmXalbO z(J1D^d7xd7qy0SmY_5c|fn6jKk<;aJL7a;`K7GR+Xoen_J&TJ86$mhyL`om54l)gC$pHnWg?RZk5DZdaagoOyM#Q?_rpeS&DW!+kMeFvq-AXAPJnQO~Oaqlr7#J>2cbNuC zs{JsCBtj(9KuNV87KsKZKI+uMRv=aw>qM7KEtOK&FiJE)Ez>|r#Vyf52$=?Ylq!Nm z1EFMU$t+eRfm*`KG>}QEs1gl?m#HP9SkVP)NhMPYt5})j8Ix9~TX+bTS)MUn$utE* dvYw=w;xDV7#TmoY{jvZ6002ovPDHLkV1lB(K(hb< literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/FoldOver_Blue2.png b/src/Gui/Stylesheets/images_classic/FoldOver_Blue2.png new file mode 100644 index 0000000000000000000000000000000000000000..6688b30a7e327f0afea659473d9ebfd66d89080a GIT binary patch literal 1770 zcmVz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H126stB zK~#90?VU|>>qZQOVOQ?rgQV*1e3+ahhw;u;IfzfAED|O(E&exvZVbMvw|KTiQiG2@ zBT9r`9*>8O&d2B1?Lm0|_4a}|7G+*Wk_jQrSw@nqtV|i=9HpvYrDS3jXpKr@$;+fD z&>HGu$;wnoq9v+QNy$`Mpf!}ll8|XciIylxMJ-cH^b=;OC}nDi_Ffdfq7o`ZCKi!Azo*C~kF95NSlA&T>j7 zk5pnAh-WMX8cnFP^-fJDC6V@i&Or8f9+nB6O4(0*i#=gR66#Fd56Lu=NEOHuiedrI z#L?7YPNyt(Wg01!&I-aTR7N_5CQ~Jm?mjMp=<(i^37JY2MM6E^6Xdw>`7r#N2_*uv zP*JSPG(sw&1z;5_DxKVuX%vyXx2wRA)0}s~8HI{Csh`S(n&KE!DXP$wgOQq&JUiJAV6H8MrBrK`GavVsOzLcKk z5C#0}kN^KM91k;anOLSclt^3uzXFR;9(DRprb<(she&%rKLd+UXrRf&kV>8+9sT_g z7=%L9YaT+S)=Uv1o&CEl7=%JnMy5!SuKxWqDhX9WrVNqpK5kAGpekJ^3?oywZuaNZ?4OnR-3>9Xo3aa^T}XfiRao4R%LKFIZw*-WNNZ>x0c z<{aQ_rtEa;*3HN8s8gv0c(-oO<(o{(Q(d=ij%VqMOEN`Ib=|u89A5R2pXM04q$mpI z!4H{GQ(Z(lF^GiRPJ~dXx;*nlHkp`2LT*nvp`Oabo=%J+A-C%#lxHfL2__S>NXYG@ zg^E~qxXYA%5p#)Bw_P<>WkOzaLJ6g|p13O%>iHs1=q)c~ra6V_%>$(qXj3MZbW#>6 zd;JuZN@iv+kH_{G6rjJsfZ=<5M*+QF-IHl|nnS-|$F?A^O0-C3LTjdmpF=WrI%$!S zN@gdLsfE%YOC+=8X|9FBl0BZMWb*j%T=oD|!DAfH)|+Ah-a_4jK_s&aGI@Qpw}rX} z)3{wqrWT3=ukpHC-^>FvQaxXNyUJviCzKhdRGF7L zyf5Rp%Vd@-)SL{tSgw;r^xg`Q$&5#+IUaJc$TKIZiCdUVW}HG*C$bx0=!fH!+Z-wq zJ>H?oG^bO_kF1k6?PI&0Qa)skYg#f*bV6ZZI62d0nrNx6!yu9wkxUaU)p1xPnxMGV zX%5=}vBEe`bjdWQQ|c#-5=~IcG|^IVOEe)N)5M5UDM&OSCDWYBVkrqUM^>hZN>Zsx zG$Ak397VCz1)5Vzra7!)Rgz~(S(%=ZAy{R3mJB7+8VJcol4gy+0Wbe+I_S)TDF6Tf M07*qoM6N<$f=6mG#Q*>R literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Fold_Blue1.png b/src/Gui/Stylesheets/images_classic/Fold_Blue1.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4e9746cc13f8dcf8131f7b9230e31bfba16b9f GIT binary patch literal 1781 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 P00000NkvXXu0mjfvXdw( literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Fold_Blue2.png b/src/Gui/Stylesheets/images_classic/Fold_Blue2.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a67cb6285ec2c84058eb038268e5ae9fdb9199 GIT binary patch literal 1770 zcmVz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H126stB zK~#90?VZhW+dvG3Ax(O56}kH622x-e@Xgm$;cApavYs`?e?9;YSbQ@%#I{Ik@$v17 z5~17U@sQDZ|M%Wy&Pcl&DgLk}0!5OGFYYgiIq!G$n#m)H0Ps&oE0xDN{+b4Wm?d?*o`pBJG25 zoM@7Xad4u*l2Yz6l|(qarE;C-N+c}aG=eU|rb0v`-*3+J8GL=ZSSdX_^ zGBJwu_WAY7E4Pg6`3qWiY(C-OQ|%3g3DwjQYML}SV@Hz3M!L@NSP&?Vj&e$ zDA+~I5($sR^F`JTl1$nnjV93?+9`!dsLRPzBH5rl4v0EllBqMilAx^SAdQEW#ud#jQ>eL>f`3qa2b+ zBb8VNVveamqX~7i-mb|MNu;fxGvGa*yJbSBlJ^r|V@sHkggR39T{4X%QU<()qF8`4 zu{U*?)5(iXnMO*bqk=FC<&jRN$&^W?tBP~j6zwQ)Uz_7rZ~n_vMO|Dp_cp@Dw(Vc z%qWy5PcmgqC9lG=38k4%LnM=TLB02Hg^EmUsZ@MNt3KakVrj~Sge4VNjswZmm(xq>`pcdw;(N z2B8r3>O&~in#n?>qkp#sgHTA)$Yd$f*}tD7lTayS@(}6j<9f0Pbr-=bzP;8j#2N9+i21=$4BD8L1p=4SiQtM_0N~Q%Owr=*OWSSvz>t;_%rU}(; z_dF$2N2YGO9+XV~$=Geznv$u2Q8G#H*3Fg-FH^N{#&Jh{pM6wDY29qW+w041*kr2K z&3GU(F@7!j8Y8xDUISIX;gV_O*3H@sB~!I-)@2x(s&%tIcaeW9@v9qRUN?Cc)O-JH zAnMlqNuNwCg=9GnO;XFmRzSAnK|_CciZ}gTCD~=T3N)FR)=kyAc^l+V7%sJhH~5;mEbL_%&aazf3@#GX!!A|bb{C6s0=i3Ch0W|5HF zM+;@K>`<4<`y%F)NZod$u_zPrniEQ>XzPiqLZO~7@`PUVBFr=wVS3Xb(h0OG6H7Wp z7Rh`4WR*%HBDcq5{R;}v-(bM-J-(xWUaxM+v^mY8->+j^kY~kOB#}UCrh=bcGF3Xo z!XuSL4kS|v6$3AkM4YF&5(Kshtb}E@lC=Rs7>uh~bPje-dFKi--klr5N2CCkAd4~C9yR-n;zBP(@;5^VCkE`{( z{A#X*vVmPBksY5J*bDm81#^rz?OB{ms6c?pBvL{lu}Wm*%mS53#6~EQ+)_mpNkl;= z5j&woa!F;mKGaz2s>mc_E0joVsjOdQXuW7slS#y0s73^_yk4bhzWP>`NyJYm5l*Q* zFLh{N#!;6^#8;>u54l*blUelMGLcDyN2neRxme`sv1;OGCX)!KP}#BU259=>xX5h| zBVs+?rpeS(DW!+kN$d8p-AXAPJjc~7nHrT)7#L1YcbOU`)p;015+RbQQBv)PMWP19 ztxi2`1H=mBIMF3jPo>l|j1o1dWondE+!8fH$kZ57st6J_Ldn#VS*%C`^@NqFkx8nk z5;elh)Duyx=mPbmlBtJPtW5GuNh{MF9)e|-XUb4AErF11Bx#oT3+$}06evmb6aWAK M07*qoM6N<$f`W`7F8}}l literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png new file mode 100644 index 0000000000000000000000000000000000000000..9dfbbd9e9d40b495dd4270174a88d33a7d93e8bc GIT binary patch literal 1397 zcmeAS@N?(olHy`uVBq!ia0vp^`xzJ**K)7{S? zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCuYHz{=$5;uumf=k1+?ohptz z3DASySSY>@xrTWsUQnQc{@wWn8@1!~3=63szu}$>8bg K=d#Wzp$P!k-OCpM literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd33174d68054b55347ba9c64abbbebcb738723 GIT binary patch literal 1421 zcmeAS@N?(olHy`uVBq!ia0vp^`xzJ**K)7{S? zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCuYHz$)eG;uumf=k1+?E1wt$ zI2^qC=*gUh#WNQ#E@a~Kw`Y!Ld)OE*>TtQkUEcKBoc{}6{J+h8Ao_^^v>zvh>?0qk zd;dx4oUik7vTEHXVg%Q`eapJ9wC3GXdH&evc46n@Pu{jE{z;Zm5KE8E@!nt7IREJ< zVqHMITZvMcU0vOnFFU__-JJTlzauQ`Rr5cec}i-iAlW2UtoQd8Yu&Wd!|z zQ2W-sdk<{yJ8v6)ZvVO3HFNe)+FtpLlHl#NoL={q$^JAY!9u22z^U@uw{J}Mt?a(X zSpK*AzOm?^*S%*mDG6TFXEDFFa{tkpPC~k;JXTOL*lV|EGKwfzR9%y=SM%_0-#A?!Sd=n&y85}Sb4q9e0OPmN0{{R3 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd1783d0d6d4e200e5fa2217dd8361b5289b8cb GIT binary patch literal 1407 zcmeAS@N?(olHy`uVBq!ia0vp^`xzJ**K)7{S? zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCuYHz{=z4;uumf=k1+?D^(16 z91ecH^wBax{l)x)F>Du^*K08-o^f_xU;W-* zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCuYHz{>6E;uumf=k1+?D^(16 z91ecHR4MKLZvMd-wu{W`wHOr7IJ>W}es8bw>;E^V4`LrDtJZBg;y>-jNg?~lN9x{x zQab1B5F_}yvbr&UZn2xa+^y>MCx1@fb2eR%G!szly0)wQOSbrrNJ`8g-4jSon73X0 z$2H66e&_BF3-289zxMeX(|xPwcTWDSes5}7KWY2VGfzo~U!`zl- z28l@w#R zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCuYHz{>9F;uumf=k1+?oktCL z91fnH^e_6``vc24ChwWa)Fa3*Te^1ZzXdP;e_?+h@^P|i-KHb{(|(*3vX6YE?)@jF zbG{BSg0JoVHnRK3%k65rKR?Ax+Ke>aDE3?vfA?+Aud*`+n{RITNvbwk?-#H`uGRix=8ri1KK}4~ zf1}yFvx$pUbiaTT#cS^J>bP3#v>7*ZZV;V5u$n}^;4c6A2aMT2{sNI_+UCU1N&IV`Ir6KFh2{l4N&IV`N&IV`K>>{)}ghl1yvw{N6HYj?}fgmzRF~QNhE))aalfz(FJG-|p^>Z2v;pPAvqwh{4m< K&t;ucLK6V|k3zcu literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..945d0a66d569241e1ea461b3f4aff91f09154286 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^QVa}?JREF5)~!v;{s1Y?0*}aI28I|n5M~sa;_L_% zlq_+LC<)F_D=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&IV`>@3qW{)BG;x{1Nl L)z4*}Q$iB}5!*k@ literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png new file mode 100644 index 0000000000000000000000000000000000000000..88890c551de378aa3377c9b64454b21f954d9e97 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^QVa}?JREF5)~!v;{s1Y?0*}aI28I|n5M~sa;_L_% zlq_+LC<)F_D=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&IV`Ip_f8nuaNv5@Tes9_J`^pBD%S*rgsNi8?YIIN#;GhxpZ+G%tHjx*Vns0$FV(@hJ Kb6Mw<&;$VMc|vml literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-black.png b/src/Gui/Stylesheets/images_classic/Radio-checked-black.png new file mode 100644 index 0000000000000000000000000000000000000000..3624982a13f7f24502bbeec287f50b9191084a1b GIT binary patch literal 1898 zcmV-w2bK7VP)o00009a7bBm003M@ z003M@0Th%&K>z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12KPxs zK~#90?VZb(qc99aMW6ZqUuG6F?nBcMj4j)$Qr&$LEZtPZGuyuJChFO?&8=YjzHeUd zm4QvNUgIg{TO{!{lGWCVS&IZtDl3AVPh^xgjjRlU-jPLIYFU{Dy@Od?N?9{XdWKP2 z8d)XiHB8dN%PL9hK^GTRR!Q0psV@2r2SgG0dJ6~zM$0;B3UC9)w5pP7AM#c zQZ}@#i_g!m`sk$+N0v6Mtg}UpS_iZF@~vY3?+*2Pt2B5@J6qVP*9J(`^*Em{p4xF6|1R*bsNOO4Qgy>5q%7J>Q-vg%F?V>62HwcFQVJ z^RQajE?FgNK2{1FVrCVhhGtons(D$Ju1&H^RIx(XsbhddUK-)FaWi?+)*DO`WVr z5-4SFk~KrBB8hqgZM!|wHRb76w1%HS-~LuyWJO9$;*_R)i6Ny`c!}^YG+{tc)W7LL)t3T<6)xu4Ij#s*DZ%1p9i^%&cNP zz2QbHD|^b^!MyHoS()Zl=7!b4wEm-)&B+>lUKKIv@rG^;U`mx980$bMtKfx7R>m~x zfvp~2X76{dG_Q&t-uhGgq)Aq`6!C(oE;OiXI`80rKstH^_76);Fv0mIkR-)1AgFprHSVtw9TU%T)7_BvS^ zF5(rKXbccA(8wC`r!E3ab)k_}@FQ7?VMai>*1Vv>XXAQ?d#m=wwy8 z{)4d&bh4UpHtG$m>u;7d>f9<~)8oyztPH1JkFci86Kv}~dPzA36xbT~1p9iaWfigL z9UZ%5MVMRJ)25JNoj+t{n_CO)jbvTl*~jiN03lt?s2jR^6RPm=B-PA{(%4$q*7L+K zSy@Mc0!xEg)^W#`hc3yAG71#-eTQu};HKY_#R!GYr=_uS~-L{RU;Ky~0 z6qlu5N4!(j>_OIj-#7gc@juQ&^~lR8=M0970Zi$72mAVZ81*akcr<|hjFyN&jc3CS zT}9ZV7V{a|_bORi(^bOeqP5?(e(9uufT3DerK|YF=u|a(nXD34TropbGmQZPh}W_z zUB!`EscJSkStTqNv-{a3YtM-S3Cls}>E@;vHz%uv&C3c=&9s9hfasD{>6(vKscPns ztP(a4D@8SP8UrLOKdVJG3o^4x*w{qrkDIK$-<~K15kKkei|6&wuE{E4xrijH*~6{a z&2Q>(-1L+;0~6A#Urw)W`mCgNLU=Ai)uD#X8rXc zPR}0D9P5u)7|gf}ddhKDuZ1XOeL)h{Y*Mm*f0*ObU6iuzcz)?;K38Ju87$9*DP`M0 z71eBVvVMQ4^YgQmvd?&bxmP@?XNjz4{=%9`+ABu<0lQWS8zJESI$)Y5QQ7v=ByCv$4V!BCWTV8An8-h-wy0RnxuuWvYO2o_Q>L+B+EWKs;FkcWi3Sd6AsUMMLG)? zS<(W8tc6I@vVb6IA;jISwICH10knETCF>ETY&&R@7GPy9NZNW(B`v_qT9CBYpbL70 zM%E(|mrK$DrL2XF(lSa~pqBLrv$)KH9!VqX5e9Ly2zn%?tY;A9%_!#?$$G=$>k`t7 kd4*(siSzB`lJW(A0UImJ(KJ0gYXATM07*qoM6N<$f;!8P+W-In literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-blue.png b/src/Gui/Stylesheets/images_classic/Radio-checked-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..214fc4462ed2fbe269a16f5aa37f9eb29e4c1b13 GIT binary patch literal 1912 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 JPDHLkV1na6WiJ2# literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-black.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-black.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dfaae3b757d04751354e799fbe96676b726089 GIT binary patch literal 1596 zcmb7Ei#ODH6#w<`JWFgwnKBz1Vq(i<3Rx919>oyzGaggSqc%f@nY2^0wJ4Kkmfsda z4aRF?#t4mN$z#azXwo#HlpaEpCXZ@_9lK}$fIa7P@BN;8Klh&Vz4!aQSN(iFbhP2x z008KCdAc7_*{W61R99)EcTq+vqjknJI1T{9u&c7hAjj>%YK)E{&;w2%r^iRcQi1sR zc$<@_XmR9-GgO%Gq@KU7erC~-5sH$r=R+ttIDLf!>9K6rjOhyunZcgThP@)1 zOO4jDPC#eMG8k|7kL5a!T9S#oB|&yrXCK~rW;FL_IT_y#+^8vn#>Jmpr>c{&HywxT1Pi(j(=peS;(P}g zU9ga1KQj9(C+N?o93L1h)6dRjEX0M=XAqS~2)&Z`#<70Lc64W(ZYJbO?%OIKB!pfT zkxFVpFwVBJ2tmCj%FE0;I?tmLxW&LVsEN6!|iQ(VmgXQ@lSV~=UqFmXqCdujO zM{y?+cd(%cKHtH%_Z`ZSJ47@c1`qaGPMurGK z_tB}4-x6g*y%#TO3KhqH=}eQaLrV5VewMv6MyqI3VUYtKb4fZX+C+|}%wX&ka%i;n zX3;eQ?Wjwz?)qggu8_l}F?dO$jE8Mtr+4|Zkx^7i0j#ljFUXw|VSS!(2wE_+1i46E zZz_ygG$0oI(PE{^@GYIVTVnP+ysfL4kXzX(p^2VnKz@qrh_+hw)~-9NzT$a$G&)#| z;bT3pC??n~6}rAMR0BE5z+R>W!mG(XOvtQT8OXIe}@a$dvXtGB8P z?*EIf>vJmw((D!Xp5Su-Smb_E?S0LEV%Qko`#U@QAN9raF1$}k>nE!EsV?B;4?h-I zfeYZ=oS90mUUnYdO7Aq*FW?LBchwMr)vmSSlTETAJaF;qRH6fbwjo;wtKFz>JR<3A zTE4;KE6^Yp6^Zf1U+vL0dnvFbnsnmulWx4QIE=ZE6yQz|hZL-2s{9Yz3;Oe#+eo77 ziZ{Rf1*1*Uk+Qovg)>d87}bbQi678AkA>UcwwJBEMp|aF8a}UJ8}2Bvq5Et` zH}19%xzJwH(+^kd&#fg>bnua1)KkNkD7yH_3#zIt$_9L7op4!{eaRRkWk#DsZl3#M zNWVVK^T#DwZt1lQtawCOY7ySjLhYu~+*{tAU#@n4g5#SOZ4RhUqm>_-=uxuDe%lC= z9z54y8b>G&xww&_@kEHd;GMd%E?wzW5h3u7PJq~8WP^G7H@Wb(z+0XGNz>}z*tjY^ zlvl*eZNpA>9!$@TRYPc*8+RhKN({@|dE2{(1S!{}zG6paeA9t9$Wghc93+XX)x%rFyQlVoLj4b6SqN_0JfBo&hh^Syk_vO% z3mgZ9RFX@+$tZrUOQ@|hNLNw4c>+aZkw1WX6vr~t$}pFjnwAhP!;kejNz+UaBU3YZd!aCpp(1{w_}SM`(@<>hmUT+Q zIa$Z#Rlw9`O0Du^#U^P5N@*WfCLAr7WLeX_p6#6W$NsqYKIi`K?>_h5=Q+=FG9rv@ zy~t@13Wc)X6+(n!jD0Dw8Cfho z2bGnT<;6|rrL$S79Iq69T*bJb6AHE9;VxoeRCeXqU|=SOU_*gyA{IZmmYuL4y)4P_0Wx_CC%ho;`D)2@#F=*YXD=!$;mCoc(S?C zRW{KURG*ySc&0aZp>ev+tYDjDLfzT0d!z*h9_hrel$sZCfUbgwRH^1sYA4R zNctAt;3NO3bKoeY$^+lG8juFUA^9NGH45gW7Vh<${q(UYZr)cN1G9n(HtI8Op~U=~ zqS%gW^B>~>02A*_IjYhbj6!lbh5KQ;Jvz+WIB?xuadQLeGj({+^em)37toRK(NvqW zc1H{ivixU{2TFeOT-7sOchn6?8#rXHfpF@*+>As~c{<+juVO@FT3;(atoZfnGh_@t zmoef)O8)X4=6NpXJ@8~RKlX!#2ubP8`(y8ML8s)rm#e9}5ra&*u_2z*T4$>k5r1cM z7;Xddx=9QmNhhsgl$pUseJ*46EE4l3ReCuYtpIgfOzq=EG4+i7LdNbflfT|!?yPPh z5!n}~>L_2HEoUmbu~8@4C|iOH-YD{vQ_Cw6=g6}o+hs9HIn~FRBX{{OypNZn0U<+I z9Dzfw4RjHt=}e_`>TM>?D$@lUR9;$UX6}2vx0({z1DiV^IBjIx^Niu)r+v)>nxh@m zkBhc40O5t*(g@rr@?LnPgnvIdGckC$=1|rC67L0e9>F!;zM)quX`a_2fXvd`YKqG$ z=CVY8D5!i}fb$MT4iQZ?WW=iC(oU57biZS6v2cAY%*>HIFgUX~Nt{JgK3#h=frSHF z3SXdABO{b6*Myu8Vr8SC@x*$9H;>h-u*K&Un9x(j;RZ)r**B|TVpCr3r^TBM*q={y zt~Xf$82Y8h8@SKos;tFSg9F?Y+q7NtXH9@KB^zGQ+j5T3hY5uvA2UnN-85wfuc6dN zDnMKn^XK;7Tz`&(dz3p9F5KTldY-MS+E-@JUA7gt9nfD7O_UwJfla85d;^w1y+fBv zefngn5Y{uYgH9A>+B;%Aceb~gYD2RUEe6IlQR=ImceHAIF0@rEj6bDz;zIt&Vv2*# z;GGA5vCL`+DRF0e0;QQlZ55g}+D77voe1{YUp8e*tP2DU8^#lPUZg*gyP* literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb8f5c7cf77c1a86ca97470092e5ee666e382ee GIT binary patch literal 1600 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 DsrMaS literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-white.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-white.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d323930d19bad2ce83409d7c2a37045df08dd6 GIT binary patch literal 1589 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 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/UnfoldOver_Blue2.png b/src/Gui/Stylesheets/images_classic/UnfoldOver_Blue2.png new file mode 100644 index 0000000000000000000000000000000000000000..c99d6dc8312a4ca85c8851e4e216e3868e5fa8d3 GIT binary patch literal 1765 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 D5F$os literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Unfold_Blue2.png b/src/Gui/Stylesheets/images_classic/Unfold_Blue2.png new file mode 100644 index 0000000000000000000000000000000000000000..c90a23f5db543042ad0780c8b9d8f71ce5418616 GIT binary patch literal 1805 zcmV+o2lDudP)z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12AWAk zK~#90?cK?B+ej3J;Y*#)MN#xtJ0;)%I|1#qbrg<thX7A0EI# z;O&0Dqk12ozb-Gr``hbH;%AB6tr8{)G)Jq1EG;GvID5+qEEOhZKx<`!6&_PWKx;*Z z6&6z_M9ZS03WX^%ptT~w3W2F2qGb_KQDbUE-(yBaiK!87$B631`v+LokoLv6PBfE= zadD!=GNs%xH6oc9K)GUSNb-52a=T_~NIH40tNCPVM0QzEDbvZ+kZiMFZ?nn72r_iG93;sUg|M4(czdA4IZ7wBA@7mX~SfPERJSsnn46 zrL|61_VpB|hQtvYsKb~V5?4&?M)9XkObZe*rT1kW9vX)*X-uVtBohND*U8k7WbF;;{`Q!Bejh^(gOPbTT>q$r?RAdM`pSHqm<=GZ~8L9*&0CaF`L=Fz|kiW!pB zeysTjIhjUmpqL?9^bJ#lsWiv3_)#EfPN&e5X>@fHu0n_cNjnux5nsqX3&Qis(6edn z&lgNAH|08$$MusGq^MJA=_SQ!Ze$6nI;2O5WAZ-5S%As_Nn@Y>!xZ@xw@edM21r_o zPA2cEG^YV78zhPSnuk!TYo=vvPig`@kTgn-36KNT&n0b_9uvT^i3~r3b}xX;#W&OS z5?joWB(IxFOeVl@Lzy8-R|XSczp<4d0mU!@b{kv`5+H;r+Vzt5Mn{7rwSVO%(@1N> zqd}7FCDY3&N0Z+8%8))jf8EPYrjZnY%8*9oF#!!hs>bxEE1(+Vzcr?dHKhM*OjAc; zG^DRJrbT;!G^Fn}rUz|7X-JQ2Oe?K{X-MlerY9}oG^FP>ri})mhO}K{+EGK=S7YkL zqWti}xqc&moaiy#fBq1;ONl3_DhEV}(;Va9zgd3Y2#|mvn1Gm|DnSB(7m3faw<;2- zi1%%}()-)%EzD#ZMF5rUo&x|&CT_#o8@|nsls%Uh#8XAR051A6Dz2!w{5mw?@dh7uh(S) zRSD7_2j#Ds=8oWChUC>QOjV{6un!44B#)^C9GFZEYWv?9@`407pXQ>0ss`z3hcIcp zdCq$Qo;BmC2bjQ>U>|eI4~Z=7a6hHIw$AMlmm(N80Ogbw4j(fHx?c*dYNYpBi|S z#?uAMDxUT%4koFAAokRN#a{zgn^KV=0fLihWHF(D+*8WxpphN`;+OzCP(UtJmXlZG zOrnAbumuIgMrD2a*19B7!vxra8byHRb^WJ#ZL5k2@B;;KqVjwYq5U999TVUSYR&@} z%Og;WN82Wt03J|t8n{^S%vs&U%?uO32`YP*cLOwiKU3f4&^GJ!Hl0j!J*D*WI%wVA zY1vasC(m_tn@n>(rLMji@n=8WlI9Q3y<rg00000NkvXXu0mjfzZgfv literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png new file mode 100644 index 0000000000000000000000000000000000000000..d7236972073050471aaf4d40927c9f317aede92f GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0y~yU|b7i@8@6xlD_uM!a$0%z$3Dlfg#2Xgc(JqI6DFb zB}-f*N`mv#O3D+9QW?t2%k?tzvWt@w3sUv+i_&Mmvyoz8U{?2ZaSW-L^Y;2d&cg-* zt_O2G{_EyzZTRRqgWZ_b<59fath;|191ebe%g%5hcoC~ZTL$9<#VCf94lxGFLCyVW zU3>7%o0Ff*%l+onPs)9F^Z6_g5mhT~ughTM!rj1gkx9XM3&RNk>Tr|GzP~kRIG|iN z6aohpgZnRwpE)znroR07lb`B0pUtaX2PUp=|9F|IfddQYwDS9P%nUYIv1G~oVPHX5YS~X za^Y^^8Pwd0HTxcX{de}%=l%1aZ~OFTYEJPPyWe2q)$Jddj1v^27*aaK7$g_5I<#d_ zhkN@>%wIMJi=+O7J#3I7@bSi9P1k>$YoGsLH}CeT&*7WS8vcH>8APnkf4rP}VS^OR oImX3br5PTG*bjwdgd9}-Plc??tv|Gg0W%qcr>mdKI;Vst07V5KfB*mh literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..cfeec0316b04e48e033ee2bb81aa20ff3d186ed6 GIT binary patch literal 927 zcmeAS@N?(olHy`uVBq!ia0y~yU|b7i@8@6xlD_uM!a$0%z$3Dlfg#2Xgc(JqI6DFb zB}-f*N`mv#O3D+9QW?t2%k?tzvWt@w3sUv+i_&Mmvyoz8VAk<;aSW-L^Y;3|&LajQ ztOvguebkIl{h`hz9e?CPfM|oty`>jTjq4c#KKy^p&Tt@l5vxO62IB<9D29{{F$T#& z&HZRudoU{7Z{Ggz`~2qBPs*Kl^Z7gw5mzg1ughTM!rj1gkx9XM3&RNk>Tn;=ni;>J zksc^aY32RN&&)=_(S3hrm((L@3;`1P4{l4D$G>PHDvuD=dXJAzopr0E{gZS^xk5 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe61d8da570bb7778a22ff4c7e65f5187685b9f GIT binary patch literal 926 zcmeAS@N?(olHy`uVBq!ia0y~yU|b7i@8@6xlD_uM!a$0%z$3Dlfg#2Xgc(JqI6DFb zB}-f*N`mv#O3D+9QW?t2%k?tzvWt@w3sUv+i_&Mmvyoz8VAl3@aSW-L^Y;3|&LajQ ztOvguRdT!jQ)iNnKXM^Jv_a+G(u=0X^$Y^WaSW-L^Y;2d&cg;G ztOqrA{GV2@wc&%SA-6HB$D>%WwKIP*I2`=`mYv~1@FG@+whYDzict(H9bycUgPL3T z_hFx9%|EM}f1cZJZa!~&`_0YgaaGdxx(r4x+zmVznG~G2Fq{ye4mbJincMjc4eo!a zXCxI}hr_6K_IC{1&&Ri)w?AoC{cUIZY}?;=yz?I~r%5EQnOXUpm*GRl{K1}X&=U7Y Z=AL4)^4ev~Jb*ch!PC{xWt~$(69A^h4}1Us literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png new file mode 100644 index 0000000000000000000000000000000000000000..6031e2e65a07117b319b0be3d53a61e34be39a19 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0y~yVB`U^r8wAtq*F=KLLkLi;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>Bum3g{2hE&XXd(DvdfPnzZ zLI0G7XZ~snH_T1VWIGtTx;pKdbi)H%TZSF&2@EswqMNs>=ig(9Idqu8=pX^KNq*vX WCRN90S8f7bz~JfX=d#Wzp$Pyq?@ELK literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..c202f0d8a76435d70e21d4f44ac8a61d97f63f83 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0y~yVB`U^r8wAtq*F=KLLkLi;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>Bu)p)u%hE&XXd(Duy!GVFr zQQ?MzSk{MD#h42Xt#9q-pV8QnRs6d0?tLbKoW<-6p9Odngz=)=^S?{%Wt`E{&Y03f a2-(}5X4xtut{Mt-2ZN`ppUXO@geCw?u|hfk literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee6f9c878b370ddc3f8b381b61ea9677c67295e GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0y~yVB`U^r8wAtq*F=KLLkLi;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>BuRd~8MhE&XXd(Dxz!9jq< zQDH}Bum3z84hE&XXdu=0cgMk2x zql3u5tGjqJ5{*w^@?jNU`)=OM_e>n~?lLzNbFfX|#EbT3ue~eX;9Mc$phgINW4Bum3g{2hE&XXd(DvdfPnzZ zK^3EVo3!r>H_T1VWIGtTx;i~guHk{TEyIrX1csS-(al@c^Y1al96HQkbdUhrB)@(= WTa?i8^JjoAVDNPHb6Mw<&;$VP_(|0O literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/background_freecad.png b/src/Gui/Stylesheets/images_classic/background_freecad.png new file mode 100644 index 0000000000000000000000000000000000000000..5ed9c67858ee0c6c31dd924509f3a80f40899741 GIT binary patch literal 17064 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 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-black.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-black.png new file mode 100644 index 0000000000000000000000000000000000000000..401232f9fece7983274bf0b649cfe1d730882610 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s7^o-U3d6?5L++{o)>D8PEq z+U39QY_T7VpSaE*;fvd_>xi{+`h!i^-!d8~yC}7IGzoYLC~-QeICiLTOk`1gKs&s|*p{}-OI111gzPgg&ebxsLQ0F%h4?EnA( literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..1de7737549b31a6d3f8006a089b4cfe914685068 GIT binary patch literal 598 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s8*o-U3d6?5L++{nwUD8hR1 za8Y%D4)49K3G8Cp*=lMP2Vbf8SU#^kn7IBj^MhS29xVc%0!o}tDvlj091~d-Cn>lH zwRjx*J^Og|`;V&?|IFWd?fCuUdKfC2uxT3=L<>i<0t6I2RV+J@;{(N<7WPLmoPz4+ S(VKv2g2B_(&t;ucLK6T(jiZGC literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b981d1ccfe0a1557b6348ee89829362f50b29c GIT binary patch literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s7wo-U3d6?5L+G~{b`;9+p= z`0@Sj-Z?djA|0VKR>tm#*!j`!xs7?njpr{}6K=P7vY{7eHaR+-1iB9Hv*FdgQu&X%Q~loCIDBWsyqMy literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-white.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-white.png new file mode 100644 index 0000000000000000000000000000000000000000..1503f1156d186f7f83b069a35521f4b8bc702647 GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s7Eo-U3d6?5L++{oMDz{9YS zedGUAiL4p|>Kk5*X!>PtI(tT^;^x0^OdF;NbP6bOI;l8zsBlbVQJkdUBGls1B;aY0 zcP_s_=U{kjo&0VzDXi*81*sEC1$XAmci;Bldki!lFvIl_=kz1&&heS~O2EXx;OXk; Jvd$@?2>|TApOgRq literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-black.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-black.png new file mode 100644 index 0000000000000000000000000000000000000000..f461514a032960aa85147b1910767927a0a2162f GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_tIwo-U3d6?5L+Js5O5K*Bk3 z=i%S`H|2IL>KSIl{2M@3^6dlgt@S4=0o7LZ_~B6k1F-zoz7p9DFT6 z>Bz+xAn6i48N}W=2gLTi3}R2b17ceXUk9=aWq_oMb})z?7z1KUPX@6K=YZJUmqBd7 zJ0S9D#NqOm2)#sJRi~IP(?1R!M}t6yrA8b+&#^J&l9X4=4wmd6`c67iwzUZ<-s>~{ zBd0jcGsd}7ApfY;KY2wl&sY%qu++aE0dJM{3q|A>UB12Qugb%o)vj$nOb@&ix2ok; zeVO}}vCo4?@8cQmBRY@r#Y*XsJd+0 z^+NI4t~FQdkNR*f$mCU>EU^BEtD{o*&DPM3IkH+gM%2>$x}{iu zn$5aG-leUI_das&t)3fk_;bV&g|$F6d>b=GBM(2{(4jc%dVmqf#zYWLm;a;Q$&Fjq zFH8|i`lN1US)eYa=q20#LR;nj689S|Gc*iy!ow6dbC}~ zTMi2dtF+8HW_0A`YKvT6)yo3!i`3knH%z|SW>F}*Was+ZW-ce+3!asVJ8pF(bJ@Cu zA_9v}Yi(+~zKOrE>twb@Ys-sGT|4|-I#$QZzWic3rO7EpbobGgis|bOH?@85;F{Qd z?ex3cmvx)p|GxI=aKN1i`9)%adzGAXA||z6|KK%Iagl#c$I0$VHQ!brY3tCtsJKbT zc9FBsk+Yxo{t(!?LH3dJl%gab%jaC8ic0am9q+Oq*X_HS<>az$l|XFx@vkv{tDIcc z?Gm_q?f6@pb+4SJ?D)~C-*_v4OR0-XxpxgDzum1Tlul?=yeIf06YuI~_7AE9^cLuKK6wldR2 zQOPMCN1mnMSu8n^Lr{z$GV}b?m!xxC=@645PIM^#2SY^F8s)qxz#@Uc)78&qol`;+ E0J3nvEdT%j literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-blue.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..09da3854dcbccc3c6282d6812650f0564542aa57 GIT binary patch literal 1128 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_tJ@o-U3d6?5L+Js2qMDAMv! z%(aMx;pBmd85|6Unwi;+2I-Q7>CVFew{EE?VmcVn>6>MN9KQY;O>`Xl@^fZ4Dw9OEt$C>Kq@$O}tLhZfW%|ddqjl+;g)SYZH?-XsObYY_DG^%pa6iY! z1zSv~a1>fy`(WdwqgDu1J_o4W-bqKL6vS>b{UfU=HgQi|P(_Dd{_1bDTa4FlSV?I3hX!!p+x5q~0A@Vq3YZ?b0Iw?X^nT6+GP%i#|ztu_=Z{ zxL*6PNmQ;KMIH)r9r z`G%X?id|YyxUN3^F8AfXPoHYaSA9Aha3>;uk(gkqYg@FU`uSeQu?9n)x zF0X3laz#j1>2#2LNk`|7%5&ZP6So&E~dw2JMoAN5ts5XzBx?8rh9(D>OHWES)OaA{j^8D7EQx6iQ0=a}-)+IX%El`N*@FdlB6N zy`_=PodVItATqZ!3P|2A0+G6<(ID|65c#$w1|(hxBG;D0g2W3!WNt|uNW1_<>XyWV z#0x;=^kiOpfuustYz@IjL2DkWJL%}8@~S$;w3+_t66p2<89zON_rGfg>(aFgT{2-}OrDo0oV4i3hSk zlDBK!LJ@&Qr?ob!?a{_KBPFWOKiev{F_l z-^A3F%2r2Q?$~@k+J2&St)iWaruwld#p?o;T%KqPFZz9J$Nc=QMv6+&D+OZ1kAIEv z^J?vgdFoUWEx-Nq4lVITM~?c37`cew5$M;JRuW9nlzx21dTX-hk__L+jfAtplTQ0{HBI(Nfq$%2WE0yxn_edCfe=8LY6-T})722WQ% Jmvv4FO#n>y%8&p6 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..7845e34bcd342542a053fa6c7da9e2b7f3f9cc50 GIT binary patch literal 1117 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_tI=o-U3d6?5L+Js5P`LB!=^ zS=aw*U!SHNY-+Md@SHdE-S>Bq!HGTVqNcK(d0V%CKX=5N^RJj0gcJ|4C>~5(&~{X1@$BfeVE61`jFat8p3rh*M(~7|jB~0}E^=(NoNj(i$t5}V zT7c4#YcW95C3-H1y=@MN?R^)-o^}VswwApPWS7YRNf+%{5IZae#Fm~5Vw=qYvAOSp z*kX4;J9&=hJp~r2kX8^!8AAr1QxF!PQ4X zo|c|T+T5}J*YX*9j3H6ZCsmFJ?stDOwLb3FbN?-0E}mhvUVcl;i(9;~q-C|z^JiAa zA6@Ku9vb7Enb={xZ^7p4ou)SZt~^1dyi1QNhDEtv`yeG|=ZRiSU44zZ{*qdTdOSE`J~B_$a6L?KX{{wu>SU7p`%B zv+T8$7o*~?HA>kQ(`q|nOX8e0Ra~Zr90P!4YwHQEYhuEWbnYjo@ILS0 zn%EsS{qF5cf75Pni=Haq_UPCzk*ysow2h8%c?Uf--4m43u|nPK$P-sjyWbic6&Fo= zArLvuYLTe=W4`UtOf=74yeM)w$##@5eox6onk8ZBkr!thd1Dr9h{m`%8iFhin$> zYC2pdF0AR;Ecnk-*GYx1Ue{^Lvm+iKo^Rz8ycgAKQM57QaCTHHNBmnSnT;{P&@Ft= zW+oN5_M(wX(&x+XF7o)daBveu?fZVW-B0fcjBtriz>R)z_e$n7$eazY1r`kqp00i_ I>zopr0GfW%%m4rY literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-white.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-white.png new file mode 100644 index 0000000000000000000000000000000000000000..5c9ef30f25cf451f88d598696253b0c6ad1309d9 GIT binary patch literal 1104 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_tK4o-U3d6?5L+JsYGPF2eHg zkm39Prz#S~l9{Si9KWBnQs4j8rNA{koZVje-o5+x?<>oGyZ(~dqf?RVkU(ofhm(Pe zqQoKrodFTDQyo8Rs$5=8u zYWH!ixASnGv((JP`OT+{lu}2jM>(dBQc3;qSz7ro36vjX%j}S?vyzLM(6&Qb&BOVL zb4!t_v&f^~tvnNRk4mYv?T}646?RsM-rUxynAaA0_=v#Du(gRv9nlM~85p`OD$SlD z@yKn5sSnS@w5K5DyhR}8k-I_4n__{=HN)0}lrOjrRNnLzq@3*sQ29rb>mQmG&xLIS zDxCL3>fbSe=c_=b`xo-s8y=at3TXNf;h4kv5|3=acHE6Q{6C>%bI3ZNVdX`<|JxPM z1@3P1tnZkyJ@j{To3Y$gsYlNlw#UDCW$H62emVb#CC45}ov+!w%=OP@*1J^)Utc$P z8FA#8Fq%nXa~r4n5$%6{Cp?$i z*Ui1$pQe8!+ih)PQJLWSz7HW!?#1XYu$lFBM`8AiIlLeH{9oLC{X}Zt3D-A9MZA+g zEBZybUjHEN*S_L-Z|va~!AC8jCA|AP1s=uDN|xLUGWnT*N$~@TDFTxv`(J3A++V`4 z+v-ne<5{mfv$`Gt$^kCe?Jq=pZR(I!aW=9w&*Tu%i=9O zG|8ue*M6C)3-4u_q|b{?=KmEstC%(6n?UR|#aqrfPtJaB{^bB1*NnFP>Xx1$Ahd>AJjn6>z@QP}gPZED5FD+KlIpvm}xp9bIp1>cW-Z!S2g< zk)z9p@1se6i@Fd0MF}q-{*NO04eGfZ7d5zYI6mgJ{cqA$lw!X#O<;0$lF1M8T&}=` z+fI9mHpU#zzah40fmvI{(W0Gg_pkiOO9(e!#k{R8Bga5m{w$LbdY;0_EG_BvzmM%t jU*o+4OAdsq{==J{mFf~z#r+&u8Zdae`njxgN@xNAbDY&# literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png new file mode 100644 index 0000000000000000000000000000000000000000..a742eb8d012955ee16e5a8baacafb5b09989d6cf GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s8Do-U3d6?5L+apYohv*{LX_D00T!nZ^Y-AAe&qP!JX!=i1(Z0QR2(~0 zI3}_vPEv3YYVkPqb8^4@_tQVFDgBxM_M6q8-#1)Q6*OVfMNdJC^Afx6#{KTuDf4+p z{IT`vyO5nvzC#S2zMU#sZM`iy!QQ3bQ&A#dVM{?qRN SB^!Y$hQZU-&t;ucLK6UnFSqgl literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7bd62cb7d4dc12fc5097b3025bed71dcdeca65 GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s9Oo-U3d6?5L+G2}XIAi&^g z{iFI)@>j>_+ALSaPoN{fyJb*=s*vH;#omn?gt2 z`1I{;-}caqVnI&|O`@{)bB4$ER&y5Mc2<6KFTalI+qVwDbi&~2>gTe~DWM4f3SzNq literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..26de520ac3d9d4835efd83aab017256f73a09484 GIT binary patch literal 622 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s98o-U3d6?5L+G0Zz`Ai&_L zd13#`>YblhcNgp^NXuf{lT^sdIPZI{J$uf#&D9JRe2PMfE-@7MmZRx+SbIp+5PQIgZ ze*R87eqU?LO=u{PZxT2Vsi*zAb$j}=pH~$A_7xv2g$Z literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png new file mode 100644 index 0000000000000000000000000000000000000000..5bcecb68bef5d2a084b74e5e4440e80d58683f7a GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s8ro-U3d6?5L+G2}a}Ai&_* z@#FvWlj3gz>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10})9? zK~#90?cCdL<1h>a(6RsjpS4c}jMPpn@iwG(Ub;ZL5$80(ZWEQq7z498j$@25j_JSH zAgkTam4mJycZ#O_6!hl-J7H_PzlMH#;2p3ny1#<{^?;qRt-Ak&e)~Wju`RoQg`UOh zgl*mZ5qcG^1GY!^TWBp-Wo)nRf1s_9Dq?$fKYx9J^?|JM?tVUf!s|fBM07tr54t;$ zEm7SM0AUDhFGNK?0nW(sOwa7dS;iR0DSwDMlmR;$8MypoxC?d$GVt-=yYARo$iU4H zEM2iPk%5OF!MkB+BLiPvRO*7wfDHV2nY21K3o`KHh5xG9Ovu2?x3a2XvmpZ$Z_ZZ1 zW<&-iuN$yqvmyfv7id_qnUR47=+%Q(^9GO|8CZnY9JrEikQI;t1+@0y+1!CvK?ao2 z76Z)W3R?*o0FISwySEQS@H(?cte!~fXS9UvZ7Pdcb~1wodSP34F@*+tV0&~hhX!h6 zd(G|w4b;T;oY@T;sD<~KMEdbgxOcfaKLnH1<sDtqY!!6&)!9ne%h1`#Z$4)oP3I+O7UY?)vC3-q z<+a8UnE_Jrp*d}X@En@-2h;6pk*dmrdY}lr2jWzLrVZt_F zYrGOq5Eg8gwZ=1vfMCFOTWkC#kpS7)u4|3IrTZnv@U_Nw+2z`9_*&y@cDsoFf2}c^ zt~F*u2I6K4TWidSEQ#vwzSfu-SrXCRb**s)WQliox3$KVkR_hoUDg^`M3#7UH(zU9 z8Cl}d-E^&S2V{wLceAy|oscD#-A&dScSM$0byu%7?u;z4=&o98yaTdC+kJVh@lMDR aP4|BdLtwwn;4{Gh0000z>%8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10~Sd{ zK~#90?cB?8<3J1qP)ON10Y#&uqj3TbPd=f_mh~BO(2WL$eci1k`dOuwsUc3c+s%&f zbIu-M)g16inS#Guzi*f8_j2!55xsZA|Gw}__))!g!9Tj-3iy$|H^aZWP-pz;-kab@ zF3=Gl(R&zv%Rk%+AJuyZeh*{^d}Qyp@H2pw@zK3s!biYW#Aoz=3Lgnp37^&bAv^-A z0zR|%KX@dNGCsTa`Q2Y&43V9T-YIt{mGHA>`2+v;`Eg=hSOK3o!@cdlSNtmYndoLu z-fFtzXQP|Fc#rRjuYhj$=0DeN_$ugT1D|TT;47h<4St-gj<1Gpw&8PpReVKsvyHz% zRl`?BH{0=>YZZKDbhDke4Ak+}(ak3A)u`fEKsTGbNv4Kh1>G#*?xYHSC3Lf(+rruS z)zHlX@5g81S41~6J4HX3pm3iZk?0pz_%~3@S3WC8J|5H{Un(pe#T5GNBETRvt~(qvReT^ zbB5GM>NAUH|KQVi8Ds!tqnio9ubOoD?uS;NB^7>^W7?0B2A^F#dxqmt9EC@57*Rs^ zWXwc`S48))XQRO@qkEV$Qs66~dswr=;VYqg7&AlRE24YQv%}ykqkE7YAn+Z~J*Y0> z@SV^-h)$vK>;t6Pr<7+B2A_3mw<>-JeD+c4iulv;+2|vG7M+OB)7!LX2N=x=Y$g1V zZQAH;0j+``woMzAJ&+afL$_&1X9iFmKYW{ZR3hM%@gdu^XA=pgiVxeSy*CIbMSSQs z?X5uqso}%7X^(~hql8b{ru{BV5EXpdHtlEWerQ!(dSoo= fy9`#%0iTo~1#nOAYzzYW00000NkvXXu0mjfcq6`0 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/close-darkerred.png b/src/Gui/Stylesheets/images_classic/close-darkerred.png new file mode 100644 index 0000000000000000000000000000000000000000..724e6dfc2b00e9fbde81764db429de0edc487b30 GIT binary patch literal 904 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 + + +Arrow-upArrow-up-blackArrow-downArrow-downArrow-upArrow-upArrow-downArrow-downArrow-upArrow-upArrow-downArrow-downundockblueundockblueArrow-upArrow-upArrow-downArrow-downArrow-upArrow-upArrow-downArrow-downTransparant diff --git a/src/Gui/Stylesheets/images_classic/more-black-lightgray.png b/src/Gui/Stylesheets/images_classic/more-black-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..0d550559f7c5f5d576c6fd330f0404afae3cb402 GIT binary patch literal 701 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-1|)5sdx0c43p^r=85m;RK$uZvinAk7P_o1| zq9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm1|~007srr_IdAWJ=RFD#ad4dd zWnbpBW2asSPW&NbFu$)k*3^yT<-C}l2S*=2EReXDx&8Lu@0>GpcHixLU$gJyRf{7Z zs`pBrzFgSxsMtpOdvgsS1npL>Y2Xp22y_4pV_^<%=NlNsD16myyu^{TYB6tydlMNIFsFsJ=2(H z8{6_e+Z!?}g%gfA{*pR=@hhA7x8Hx`XE&?xO|tNKq|k}XxHNxf`~jJHmJxf7%{PT= z5@Pp+=q8!5B+~!p{;Ks~=bK#5p8L6E|5-YwV@nK@Y8h3Qf}BA3=I zfAf6PG2zeWH&~*35UefN?j>LEpE+;KtZzYlc8lk5`d!Ic|KHzeKI{0a@9?(-2|sI~ zX7$1wa<9wm>Ss5X2)4fk1$A9%F-J;l*1ezGlqQt!FnvDzx(rj~w(8G&s~xo_fFjCs zei+Lpo#5w|a(w-Bc}k{yD7O9O{;xpBUFoOH`MiJ2A6p2WeE;>;(*vgq=Lny!xmTO} agFoWyLi46#)>vTDWAJqKb6Mw<&;$TsIWPwR literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/more-black.png b/src/Gui/Stylesheets/images_classic/more-black.png new file mode 100644 index 0000000000000000000000000000000000000000..0a97eb09ae87f71441ee32fe0a2dbb6cd0cb71c0 GIT binary patch literal 681 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-1|)5sdx0c43p^r=85m;RK$uZvinAk7P_o1| zq9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm1|~C47srr_IdAXY&UzIf;&9RB z-2eYY=Ym^9mgngwoRxcglP&S=I=75Fuear%wqE=C*FA2doZH*J&b=NT-|Ng%e|_~v z8`*Y^eaAOXw2=YQ*B4LZIj-3CSfcld$tR^mnbR+9-XBx!NtT-V`m9AuVb1qwvkN(r z`L;i+G384ZZ3%ui*DXK zUoMAll7+`3g|(+Q?YRFyYj(2=gx`tGxU}DYf1`iJvxAQ$|F1pxOaVm_teqs0+ArQ& z@wVBuZ1Zb&-N$2E@I1bkuh$;GA)`__;fSLUyC<29C7Sa$rT3i0YQoDWEpF>>Zp+zuBXZOYV&`{+kBn-@HN}DUSKj~@O1TaS?83{1ORCJ BBE$dy literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/more-blue.png b/src/Gui/Stylesheets/images_classic/more-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf1f9958ab5b9f69ed44111dad64602491ef325 GIT binary patch literal 693 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-1|)5sdx0c43p^r=85m;RK$uZvinAk7P_o1| zq9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm1|}y@7srr_IdAWJ=Sew=I9$w| za<-E3WZI;K;g4BWPAe<&%UFA^lfGwv|E;T95?}w%_8V*D+sA)% z>z=$m`~8?=+xyq|BJ%p2Mb}D0dNfsWT&)=_~Yi@D!nL;N-;1M$8%j28-4;bJ1l<=|R z|FwkT2}c}-*ga)b3dv;5`=z?|`@OApP3d-b^KqNDL@~ep%hzkKZ;)>j#Gy+R=Wj}v zh58i5V=8=?&hhrn`SkIh*=>j|z;KzpFw*J^(3f_PH`vZtmdb9%4h+G!&=Axwydjrt zW%_;cY-fe!m6gwLcR3s@$UB#QUWV!BHt)}SD-=Xen5~`p8W`|QH>Yj=Jm>rG*YnzB zK7P8pcE`8=Kd&tKTs~Rl-Th;Jyij2hFrFVDxLYVAeEPG^ubdz9;;swc9(L+Y1132J MPgg&ebxsLQ0F}!t-v9sr literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/more-darkgray.png b/src/Gui/Stylesheets/images_classic/more-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..fa7406462b446d135d8ed952824701cb47187820 GIT binary patch literal 683 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-1|)5sdx0c43p^r=85m;RK$uZvinAk7P_o1| zq9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm1||zn7srr_IdAVqXK6W#I9v>S z_oZZm--X|)3w-l)(AliQcj;Y$g+=~`6A<1c3y()&VJPFv`^)MM9Vtd-bD8p(Bt=b zdvz@5`dLGze`gjMn-ou%%i+7^FSCvPvdQ}c&lJu++F*OE%(i}Z^A~Nt+sQuO#qoD! zm?XW=THg<2F=~r0-dFid;Ka7Ov)|ukUg@wc^K49bZIs}NZENN}e^*oYCi8@#{{6dM z?*C87_dRw}0Y>WC|0OcwN?r8TVvn9vwJUHx3v IIVCg!0PG+j)Bpeg literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/more-white.png b/src/Gui/Stylesheets/images_classic/more-white.png new file mode 100644 index 0000000000000000000000000000000000000000..e283ef9eccd01b6c1a62b5b164ed4c59ca188487 GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-1|)5sdx0c43p^r=85m;RK$uZvinAk7P_o1| zq9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm1}0li7srr_IdAU<=B)}4aR@ZY z{}=qNc4ok9HCl(^=y9m!fs+9|;`W=zFeQi!X7G z^SPZs-cFmj-#1&d6#DIdX7~Lvm--ip_O*q1_RsQ*CmbuhA;oie1@r9YlK#Wj65g2c zn6V2VaTH>IX=RcB;m+A-3Z2a=e3L9Z9w9Tf9Mk=68&$ONM@hW#4H=cf2_PMwWHOel z&A(ayCHi%J&g$#CZoaLXjm1K!6LS9^y&V>>_4E5R>R6lqw8Z?`^bMA%zJpp8+g|(E zNxA-cQZd+jFXh^c*^{RyZm^tT(0BM-f`psw4Vfj!Epqyce;d}%ZvLXfcl+_2y0d%D z+8xe4eYt1(y)c#{KFjCf>3oecx1ZEJm+@dN^3i{8_5E^}LtpAOoBKQYD(e@lZu$N7 zn*7g6yEiG_obNjO|K#o~NBy$Jq37HFGj=IxDM?>(m;+3044$rj JF6*2UngI9)A`}1s literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-black.png b/src/Gui/Stylesheets/images_classic/sizegrip-black.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf4e8a7e3ab2b265ea666a2b21b3ca8a8110ffe GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0vp^z97uO1|%PIzT5z$I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s7Uo-U3d6?5LsK3H^EfyagS z^8f#-RWDM!3NCqN=TAtuKl8*HZoh`sOHtNG^p{SVJmFeYWtMWL{hmptpC*L=yxZCD z8gbw662rE7+qH|=xGVEITw+iG5!Q?OMZ4;L+HS`c)W8lUY1XRQ?CwZGi`5NNs+IbCkehHbMX&-+)NJ%0P8hYCDeoksi zN8}yNzyW|D{0??K<=Z~J+&I^5!=V?iZ(F~am+;VweciP!S5mLMc^&qe-R7;0!gTqx zD{pSMdMuWRmoi?yVokm(cjCIAE`qBQR0SrnEl6NppmdOFvGQgQ=`|JkJ$LS2^Zshn tV5qejsA;ZIlmA*<$%Ch4OLa~6Gd|bwFIX2~rw>d544$rjF6*2UngG8t?&bgh literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-blue.png b/src/Gui/Stylesheets/images_classic/sizegrip-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..d1897c3e8662c3372e1ce56e9725f7196c8e38dd GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^z97uO1|%PIzT5z$I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s6lo-U3d6?5Ls4$M2OAmEaF z<@8e~OJBR{S#b)-i|tpf;7~vN?nZD~;=Op4O>XBc7>}*Fy-oMg^w)3q34i)p8TtDB z>Lq_a_=KHyj(b?HZYP#lYVFB9YhAPbg{o{ARd^jPF(3%Ls`3XMZ(XkJ?%Q&uHq7|xlW%wPw6)%^-&K0Hh&XkSz1Uz`?|X)F2dV~SEH!z4BZWa5iSmtk@GRo;zC9Rf{rBB#r( z*|2Svp(T;;`AdS-cf(UCoN zw#o^6yv@%3&g|JP_EjxK$?1<^iZinJRCp7_*F>BvsID}H%H8nD*0887TK{M<FhMYQ My85}Sb4q9e0JcB+LjV8( literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-darkgray.png b/src/Gui/Stylesheets/images_classic/sizegrip-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..e48b4ad546e844d879c4edbc6815c8cc41fe26dd GIT binary patch literal 585 zcmeAS@N?(olHy`uVBq!ia0vp^z97uO1|%PIzT5z$I14-?iy0VV+(4L7WQwyRP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX1_s7!o-U3d6?5LszRlOHAmB3f z%kLi%^%v|+d^x{uvbJh%waoW@;njD8N%{4@_uUl}i|sgWZp+oRUq9*FgSl&FE#GtG zz2E(1 z`Tg_6z5QF$G%|Vi6cwNQec_VC;@n7+OA0{CGBU%@-p*>9c1$5=!yySvkFx=nY${TG zgx5q&x9ORcxO8jEjpLI$moR!rH6RlgE^8b+GdFa5x2Pk(;)$uHFAs8Mubx@>cf#?S zJ#+I4-wJhYxwg2c^ODAdg-bUA9o%IS#`Prig~_U=PuBJQ+~U_a*rq`tGJQi_B|pGy5&_&j#$zocFgT z<^BCA<0&R=aXT%a*Jfn)T->H3l_>zUY|EC_&vH$jy^{s>A`*LKmZWK9%Gnq#;|yEl zE$4Q2!=)&rH;+%cTw+k+bwDOwWQrs|JGbig(XIvU0#8ou`jXJP_3D`&btjVT?)h!s zQO4;S^*ZpFOQy()3zs51q!?VKv{^qHl}KF;DhfYd6Q%Bc=JjP`renKPF7KIttRg!w z--&Hew|!Fv!f#-fOq1wo$vpk}X}5Y3S}$JjPrqS%@X$=YIcqalo?a1o&G(vq#jQ#Q zKKm^zBDcL(>P@<1lIAxtqFj~huFU6`u4|g6_DwKhVAW>e!NXH8Tj=AMI7<6t{tCOHSnVt4A8O6;uB|S{~?b^da|4&h@UDHxIq{ z=GwFUc9vSEz@%sLsay9hVf2t{fDm)l*3J7iiA^E1zQR4)@Ul_Xc{RUm|AyOv%Wn%i zTw+k+MGy+VZQj}l_O4U5Exn(WHuYQP_OAjBHX+~FrX9O|d9$tTy+dVxeD}`tjdEdA zz7Q())#>0V&Qp(>H+wHu$Yj{;U7dBWETJru=Mt-S&qU#MGkv34I(h;&ObU$J_?y48 z$D{o0nr#2gecQ8+O}r-S$vnY?0h!1!-1&E#;E(y7T8r1MR;yl8d59~ELuk$GUFW7; z`@KX;xkXYdg0pnj*4(x$sPUSf#2q@gKr;7VqQ|4C=r&oAf7T)a2m z_L7Y(fBoepv)&~vHTfeh+_PM4w+-jbpj#$ApPVOfA=^8_q+xZ!({DWH2bP~yP>x9a z@-?8?e&^RSMT=#Vu6((YdSy-N_S?pnGPZit}Rc+KXRsGeyYkyb| XrN_=Vl&Gf)OdSlKu6{1-oD!M<5}E?w literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-black.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-black.png new file mode 100644 index 0000000000000000000000000000000000000000..b98a3cb044422d5557035e0831d154cd7d18bfd7 GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0y~yV5|eOJvi8a zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnP%GT4xF{EP7+iM4TnH2?C z9IyR+zUSP7x;d$(p$rYrE+&Jik8s#K^iYL5GpG35GuGYK=I8h4 zrmcIMJUjhc<+t;{Z#=vCw)W2t#-tW`1vjcuY322Q*%;!U9OoBM{=;B+h+5QVR(nS2 V_KorKUBJ+0@O1TaS?83{1OPNuo%sL& literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..45aee26a2616544078bd2cf0048f7e472ae98f7f GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0y~yV5|eOJvi8a zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnP%G1-uF{EP7+iQ-zOoj}u zj$PI)4U*qFq*xmEJW9yF%Ufy8bnBUXoYk{A;tW>n((M@ zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnP%F)xsF{EP7+iM4Tn+-%* z4_f?n+-UOSGNXC(qPdy}w%tp7YHBRcV6`vbo}nR~)83)y1M?9Ms!(elTckZ_y zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnP%HGq(F{EP7+iM4T4=aeU z9u!!be|lkK!QDXjePBMqVeimG73$1;oAWm-4;IQ~ zKmWP=?VaOh-`^C!pZ|U1*}Zpv|M*Bni$Km@GqdtHFN4jAet8AAAB;&Y)S{j-RmaHk U8ZTse2MlipPgg&ebxsLQ0A^dJ8UO$Q literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-white.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-white.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0ca9e18ea18fc6f48025a58f59810f9879b3a4 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0y~yV5|eOJvi8a zN|v}rlmzFem6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnP%F5HlF{EP7+iM4TnH2?C z95>9VKlPgDN1^)a)l3W~{bJQ=VhpnLx63me*xVwo;P!(ti8|E2?6o^;5np9^w~JrW$2GZwF78%%g|Vz@TRE MboFyt=akR{0Q+N;tpET3 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-black.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-black.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdb57c7636d6895b99b2100e9315583ff886422 GIT binary patch literal 894 zcmeAS@N?(olHy`uVBq!ia0vp^9t;eObsTI!mg3GBXCTE{;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+?-kFmrplIEGZrd3)y|=ivYz z)`J>L{!g1K^leG=Ss%vx8}`h0+`N0fw{h{W#=CP*f8Rg7e}AKc;{t^M0Syij7A_{% z#wOg{;=l24Ug{8`5Wg|lWk2lx*I?bHuTGRpm{`-9npyEW7P~FPcytaYj~KzQfE!=n zZWuwNoAHG$+&rX+I4FBG!I9X=VPY*8p;3@n2uqL<>koVqHV~Phuz4D%G@_=qjCXR-|Csyt=f^>-T;ezWlq>&HjUJzv<6^#h*S}3uthN zuy8T4Ha0mpE>H--%}wZ;ah(|_ULS3B3)zLc(93(gR$6x+jj`X z=UCXdi3tygjvb37bcl2_f$&AR02&z&`jR%_jS*BG)?G9Tk~y3_B*c1wnn47fRD|kg l(t_lm?9l{Aq77)3zxzk$y=OCD0Wcdec)I$ztaD0e0sw%g)^Gp- literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd4ed72787ebfc03d5934c4ef46676ab379b214 GIT binary patch literal 898 zcmeAS@N?(olHy`uVBq!ia0vp^9t;eObsTI!mg3GBXCTE{;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+?-kF!Ou5IEGZrd3)y|=V1c@ z*Mk~M>_k_yJr%l_$!}=Pdg8+m^TX?^-=|-?SN(`(ONbxfpSZ@f(Fj_J?o%0okL|g^6^HapS=zLJr1a3vS;b6rW>Z<0d9N zAUbv|me3*6%>=?1;R0x6Jm^c>fHy`^by#=NC`jgT@{kbg1!@Kncv2Cnn@J0jgR(~x d9EmodmAyh&=lw}0H&8BP@O1TaS?83{1OWC^)7t<5 literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5af9762092dec176fe48751e6e78811ddedc22 GIT binary patch literal 897 zcmeAS@N?(olHy`uVBq!ia0vp^9t;eObsTI!mg3GBXCTE{;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+?-kF!Oo3IEGZrd3)y|=V1c@ z*Mk~M@)w?ZDs(TC-_V%##D^c|hu2lVPrqcD{)M^vz3IH--%}w&&#|y^6B8Z~ z9Xl3F=n&~<0^y5r0W>lm^d)V;8zZPXth;CwBy%`E|sR-50qy@=A*`o=L dL>th`exXL^y=v&Q6Ts}l;OXk;vd$@?2>=I0)k**W literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-white.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3d65edac4ac71b2ad6562a4f7944603e78349cb3 GIT binary patch literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^9t;eObsTI!mg3GBXCTE{;1OBOz!2jG!i*wQoE?FJ zk|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+?-kFmrjjIEGZrd3$FgZ-apV zi(}7={i(r++}_51W2U%0P5Ieh+ci#-$GZT*!kPSG)!X{4G(a1Uo`VgkrKv*J%xG(|f zIM|m|K%*dGweC8|3Ud|VNP43|qaaC8GuVMMU0}Lz=79%I_)-$44kF{6g{w@YnVV2T cMHv6*sx*(#q*KWnz^udI>FVdQ&MBb@0F*(}Bme*a literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/transparent.png b/src/Gui/Stylesheets/images_classic/transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..67b5488e636b6261dca2f85229facae09249c448 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^?jX#;1|&l_M9Bjw&H|6fVg`m7HxOnNnd0mS6qGD+ zjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsA!p|i(^Q|oVOPa@*YqSII!W; z-*P)Kho6TI&r>)xYi9rE|78bGpW%GQQru*Da881sf%*(#`g1ohR!B20A0-B M>FVdQ&MBb@0GTRe5C8xG literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/undock-black-lightgray.png b/src/Gui/Stylesheets/images_classic/undock-black-lightgray.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca3b19fa4baee51e2be66c55d233b8f5934e700 GIT binary patch literal 795 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|w&H|6fVg`m7HxOnNnd0mS6qGD+ zjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq`j-r;B4q#hkZu59T#H@VNLM zsn7pWRJBPc)R%e9+l^=UMDz3BGw;y5VsU!k`$ajozx`r7BayuE*P1o2qg;zbugjL& z9*dBBk@W6NbGmI??(MR9KOHpWIi4~vtWlW4-}0$(jhK8=rTMEy_gb;&lF7#Z^S*P1 zy*Azb=8h`E>C#zopLeq-?6v!Bzay6UL&WscdCQ|2;$9ct&MMcG@p=dG-2pWRn%SpDeyzjI4Z`#on^bfnuS=Cd`MfM#6EC;q(U42zC- zOS~zwVrdZ2Pug;IjSPd=o{ooh`;!=Rt~ zbUfZXw}&xBNdM8F1l?eUn@74?O7v4W6c$%ZTySmTo4dUGJ6D;n$zSfpFtN1F%r})^ zVb{J7eOuQsD!gji!d(}=Vr$2X$Fi)~R{zXA7^k$Tzr5w?-&_|V?%h)w1MCD&u{)uK z3l6~vUo*_ZuiOwh|9_>M?E4kLH)j4{dEiBy?-On*fuHxqWbUr+Ip07C*gwYU9P^?vp?L;DH(U+M|a8RvPIRV|CP_~nY%ef$o})s zr)s{bBKE~|jEt`tbrv_ohAK50u$zQ&! zV(FbFEA<{t1zNGIGyIaj_#3S_PwVi_yDL=hy4>8|5x(YH_NT8ka=#z0i+A|XhaNta ycXIpZwHh8fWGsI|>(j11|<7@q`v|w&H|6fVg`m7HxOnNnd0mS6qGD+ zjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq`kEr;B4q#hkZu9VZm43RY%OUc2x5ch)h!iMT%PuHSZsvbE{A!!~;}SYO{*IzQgF;qGU9o%(Z@ z>)t$H%~p_lFI{%7-KX~g2SPul-!Fc-<+5di#>WGPEcYifOnlUMRR4}2qf0ltOqsPT zQ$h#(oNcqFGADGh%Y6SS%AC-}K1Y9(7V7~q{+u0$)(SYVeLS%2Hup^C6H0P7D)QBn z8D<_~o}IrYl}llEg~Ea=MP~-dqs)#=m9MUnUi3^lYi^G2c{vg{r!TqS=wm z31_;4^nToT+Ux4lUoH~0_StsU_d-SyFvA*>=Ef6 z2EEhoRql20J(%>T?@{jw2EWtqb?$X=9eA2=T^H#4$2#@>TZXMinOlFq4H3_u^4jF8 z>z=@6$D_U_|GfUvSN<3G1E(6Hrj`EPZ!c~( tcrIi0sne$MI;-!s?umYT=4bw6xY06Y-*1gqz@*K<;OXk;vd$@?2>@XdXlwug literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/undock-blue.png b/src/Gui/Stylesheets/images_classic/undock-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..379b9d30a3a054d48fa46d836e8db83d75dfc629 GIT binary patch literal 807 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|w&H|6fVg`m7HxOnNnd0mS6qGD+ zjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq`j@r;B4q#hkZu50)Ns;Bh&= z$Hbk{)A;1XEDZ(C{yAR`DK@;lnx#_tub27FJ9+!fW}71NwoCW)ub;nPJZ0VV&yT)F zMqdBQ_GDH}`I)a@i{kv=oRpb4xvz>(KHlD3_NR-={EjEW6Kj+v`MZ4T)OkPu{^4lf z^Q$jvRpeZZ?fbJhR=Z;D^|xD!r!d%De_3_zy}E4ajtwrezRNUY>%7e9 zvwDnYVvb*_t^3N5cD{b=pVv?Kyt#QkoHyb8p6yn*YM#g|Htc=0eP8>>Pj^8ntsY8t4;!T+q%K-s?i(FG}_5(uv7Vkc5vmFrOw}?*(y(_smp_NJuWe#GFhhK4%!jK^dtF`nw~IxseYTkOypW*nJ*jEGmkYY; ztO`<7LJJWOJHeCcxCFzt*UbDF{k(o^igA5#uT*|+tIXRI^(F^jMEO2rmJ<27UQ8x- z^+_&;7`xwr3)~H!iE7!eu28P3OZ>FC+g$0nq|*Mb3gxVQm!GCr7$_cQmij+&-F?53 zwa<(%eYt(pOYNib{P=a3L)<>Cn{d<<_;6EH_E%UZ`RZ!{XO&7EzWWM z$Y$J-_;cz}=`{>(Ps#=I4VZ4|?w?$tY}F9^$-2v2iTQ@k{>>H2S`5?ozpZdH{rG*# z-tEj+#P~(tZ4Zv!69}|H{G;1Ux$L_~q=CkliRLePyZUDAo{8%gzX?1d9rt?fzVr9J zuiG!!?;d&zHMz{`+va}$5HL}dJQ1#B{->9*DXypF(LbNh-1-XBPi644$rj JF6*2UngHX&Y`6db literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/images_classic/undock-darkgray.png b/src/Gui/Stylesheets/images_classic/undock-darkgray.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb97030036090fe7c9d6c51db16433864382ed8 GIT binary patch literal 796 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|w&H|6fVg`m7HxOnNnd0mS6qGD+ zjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq`kIr;B4q#hkZu9m@_G@VKb& ziR+iSCcZ>_?^HGxsMmZu|d)Rb3;gdT*S;x7z=ej%hs`D{I59mDV!uRJ$%) zYh}vv>q38bZ z?mE#u*It+1+Ud9cf>MBY+R?hdu|@%nyB-e)}~Eo2wRu@(r$kh z!|Lbt5&tBTcW;`%Uh2Tq%K4=wzfSCTW(YqzzxMpn%YM%p79C+0e*UMA(WQ%BZGV9^ ztAMUt!Hu^i91V(c1-G)o_!?B@3hq1)=V{QCE7*5pl?X$$&4veD+npFBk1%)V>8J21 zbXO!i+&j02F-3@9XWzzYnhiOR8XI1<@-U`|@Uu+q3t64lF)KgfuHRG!rRS1SCR1%2 zUi@qgUz5t)V5sl4^FclLS201`dx05SXU!Me#o4Aa`7;8Z{NMiIMU-zC!^2NE`#~;M>ge#)1Rz6%@;B6P}#q@LfNR{@+a$V^F>SrKX3Q#U!nGI?xyc$4YwXO9{O9h zs@wcj>8w{u_cSgiubo|?Tw8u{-J{+uwWhnf%`cTs+1p)lID7Bu??1y|{$l^~9zA>} z9>4qTMWjS>j@75m8b*6@lSq9xtB-ZdezGNen%2X1|<7@q`v|w&H|6fVg`m7HxOnNnd0mS6qGD+ zjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq`j(r;B4q#hkZuFXkOG;Bk#T z^8bI)ccaCEzDH=}m^W_r3qt9KXNeCe!@xqS*8A=le{4-M9Om z+=a|LbJ{bnFTSz$bEAiyz)5zcpAIVW9Z#4mPO;{fwWu z|K^R#ommXZpZ7hL7{~wldDTMBcJd?TH znc?N5vyb{_O=WKAFz>c~9?rv{c2DP@+Ug*NfRAa}?+Ub87{v3py?e^~j6vhb?6tMI z?S>3eAJbmPMo=9*(zBVdCP(EQUi}de z&0fQ}giCP3 z^117uoywZM>67i%H6Q&fUElrj7e2G@YRlfv-bwXa9=wV2^m@*?l8Nsgx!LV?8oY?Z*HCS-|=$(b1k1o>GSr-EZ21V zX#9A}%Ze6g}y=xLZa=yp=cKGH=KW2V>X>}@0dOvW_WU&Jsf6hIcJB49gP44j*^TSO)o=dxaz2@b|p1)-?G;ZfF-&L_Z zX8B6JM{|vAukGqAf3cgpO!WPQZ&%;w-COutqgwo<--)Wl`{v~zwYH7j-|(*$J$x!} v{5|(VC+F5rhd*kk%k7_@^)QYLpQX>~n0f@bh^^>bP0l+XkK`;U5b literal 0 HcmV?d00001 diff --git a/src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss b/src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss new file mode 100644 index 0000000000..38b5408b9f --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss @@ -0,0 +1,152 @@ +* { + /* color: #ffffff; */ + } + QTabWidget::pane{ + background-color: rgba(0, 0, 0, 0.01); + border: transparent; + } + QAbstractItemView { + alternate-background-color: rgba(0, 0, 0, 0.119); + color: White; + border: transparent; + padding-right: 5px; + } + Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; + } + + Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #ffffff; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #ffffff; + background-color: #181d2a; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #ffffff; + background-color: #181d2a; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #ffffff; + background-color: #181d2a; +} + + /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. + To customize for each overlay docking site, use the following selector + + Gui--OverlayTabWidget#OverlayLeft {} + */ + + Gui--OverlayTabWidget { + qproperty-effectColor: rgba(25, 25, 25, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; + } + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(100, 100, 100, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; + } + + Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; + } + + QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + + Gui--OverlayTabWidget::tab-bar:top, + Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; + } + + Gui--OverlayTabWidget::tab-bar:left, + Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; + } + + Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); + } + + Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; + } + + Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); + } + + Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); + } + + Gui--OverlayToolButton::pressed, + Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; + } + + Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; + } + QFrame { + border: none; + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_lighter.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton, + Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_light.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, + Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_lighter.svg); + } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss b/src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss new file mode 100644 index 0000000000..513a92fff5 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss @@ -0,0 +1,195 @@ +QTabWidget::pane{ + background-color: rgba(255, 255, 255, 0.01); + border: transparent; +} + +QAbstractItemView { + alternate-background-color: rgba(0, 0, 0, 0.119); + color: White; + border: transparent; + padding-right: 5px; +} + +QTreeView { + background-color: #cecece; + border: 0px solid #696968; + /* alternate-background-color: rgba(255, 0, 0, 0.611); */ + color: #0e0e0e; + gridline-color: #696968; + border-radius: 0px; +} + +Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; +} +Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #000000; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { + color: #8b8b8b; +} +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #000000; +} + +/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. +To customize for each overlay docking site, use the following selector + +Gui--OverlayTabWidget#OverlayLeft {} +*/ + +Gui--OverlayTabWidget { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + + Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; + } + + QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + + Gui--OverlayTabWidget::tab-bar:top, + Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; + } + + Gui--OverlayTabWidget::tab-bar:left, + Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; + } + + Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); + } + + Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; + } + + Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); + } + + Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); + } + + Gui--OverlayToolButton::pressed, + Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; + } + + Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; + } + + QFrame { + border: none; + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_lighter.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton, + Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_light.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, + Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_lighter.svg); + } + + QTreeView::branch:closed:has-children:has-siblings { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + } + + QTreeView::branch:has-children:!has-siblings:closed { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + } + + QTreeView::branch:open:has-children:has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + } + + QTreeView::branch:open:has-children:!has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + } diff --git a/src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss b/src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss deleted file mode 100644 index 8472252fd6..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss +++ /dev/null @@ -1,102 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(42, 42, 42, 0.278); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(100, 100, 100, 0.6); -} - -Gui--OverlayToolButton { - background: #444444; - padding: 1px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} -Gui--OverlayToolButton:hover { - padding: 0px; -} - -Gui--OverlayToolButton:focus { - background: #000000; - padding: 0px; - border: 1px rgb(135, 135, 135); -} - -Gui--OverlayToolButton::pressed { - background: #000000; - padding: 0px; -} - -Gui--OverlayToolButton:checked { - padding: 0px; -} - -Gui--OverlayToolButton:checked:hover { - background: #000000; - border: 1px inset #525252; - padding: 0px; -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: #444444; -} - -Gui--OverlayTitleBar { - background-color: #444444; -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #750000; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #444444; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #313131; -} diff --git a/src/Gui/Stylesheets/overlay/Dark-Outline.qss b/src/Gui/Stylesheets/overlay/Dark-Outline.qss deleted file mode 100644 index ad962b7bea..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark-Outline.qss +++ /dev/null @@ -1,190 +0,0 @@ -* { - color: #f0f0f0; - alternate-background-color: rgba(50,50,50,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background : #6e6e6e; -} -Gui--PropertyEditor--PropertyEditor { - gridline-color: #20a0a0a0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: darkgray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: rgb(180,180,180); - background-color: rgba(100,100,100,10); - padding: 5px; -} - -QTabBar::tab:selected { - color: rgb(250,250,250); - background-color: rgba(100,100,100,50); -} - -QTabBar::tab:hover { - color: rgb(250,250,250); - background-color: rgba(150,150,150,150); -} - -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(50, 50, 50, 200); - qproperty-effectBlurRadius: 2.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(200,200,200); - background-color: rgba(50,50,50,10); - padding: 2px; - border: 1px solid rgb(150,150,150); -} - -QToolTip { - background-color: rgba(100,100,100,180); - border: 1px solid darkgray; - border-radius:2px; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(50, 50, 50, 0.6); -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset darkgray; -} - -QTreeView, -QListView, -QTableView { - background: rgb(100,100,100); - border: transparent; - selection-background-color: rgba(94, 144, 250, 0.7); -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: rgb(50, 50, 50); - qproperty-groupBackground: rgba(140, 140, 140, 0.6); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(100, 100, 100, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgb(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(80, 80, 80, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #808c8c8c; -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #a08c8c8c; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #808c8c8c; /* Task Panel background color */ -} diff --git a/src/Gui/Stylesheets/overlay/Dark-off.qss b/src/Gui/Stylesheets/overlay/Dark-off.qss deleted file mode 100644 index a11272af5b..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark-off.qss +++ /dev/null @@ -1,34 +0,0 @@ -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset palette(dark); -} - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(80, 80, 80, 150) -} - diff --git a/src/Gui/Stylesheets/overlay/Dark.qss b/src/Gui/Stylesheets/overlay/Dark.qss deleted file mode 100644 index 3e74e12b36..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark.qss +++ /dev/null @@ -1,158 +0,0 @@ -* { - color: #f0f0f0; - alternate-background-color: rgba(50,50,50,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background : #6e6e6e; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: darkgray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -Gui--OverlayTabWidget { - qproperty-enableEffect: 0; -} - -Gui--OverlayTabWidget::pane { - background-color: rgba(100,100,100,150) -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: #f0f0f0; - background-color: rgba(100,100,100,50); - padding: 5px; -} - -QTabBar::tab:selected { - background-color: rgba(100,100,100,150); -} - -QTabBar::tab:hover { - background-color: rgba(150,150,150,150); -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(200,200,200); - background-color: rgba(50,50,50,50); - padding: 2px; - border: 1px solid rgb(100,100,100); -} - -QToolTip { - background-color: rgba(100,100,100,180); - border: 1px solid darkgray; - border-radius:2px; -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset darkgray; -} - -QTreeView, -QListView, -QTableView { - background: rgb(100,100,100); - selection-background-color: rgba(94, 144, 250, 0.7); - border: transparent; -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: rgb(50, 50, 50); - qproperty-groupBackground: rgba(140, 140, 140, 0.7); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(100, 100, 100, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgb(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(80, 80, 80, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #808c8c8c; -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #808c8c8c; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #808c8c8c; /* Task Panel background color */ -} - diff --git a/src/Gui/Stylesheets/overlay/Darker_overlay.qss b/src/Gui/Stylesheets/overlay/DarkBehave_overlay.qss similarity index 100% rename from src/Gui/Stylesheets/overlay/Darker_overlay.qss rename to src/Gui/Stylesheets/overlay/DarkBehave_overlay.qss diff --git a/src/Gui/Stylesheets/overlay/Dark_overlay.qss b/src/Gui/Stylesheets/overlay/Dark_overlay.qss deleted file mode 100644 index c66a46775f..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark_overlay.qss +++ /dev/null @@ -1,102 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(42, 42, 42, 0.278); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(100, 100, 100, 0.6); -} - -Gui--OverlayToolButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - padding: 0px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} - -Gui--OverlayToolButton:hover { - -} - -Gui--OverlayToolButton:focus { - background: #000000; - padding: 0px; - border: 1px rgb(135, 135, 135); -} - -Gui--OverlayToolButton::pressed { - background: #000000; - padding: 0px; -} - -Gui--OverlayToolButton:checked { - padding: 0px; -} - -Gui--OverlayToolButton:checked:hover { - border: 0px inset #525252; - padding: 1px; -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: #444444; -} - -Gui--OverlayTitleBar { - background-color: #444444; -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #750000; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #444444; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #313131; -} diff --git a/src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss b/src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss deleted file mode 100644 index 2b25f99ac6..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss +++ /dev/null @@ -1,209 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); -} - -QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; -} - -Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #8b8b8b; -} -Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #000000; -} - - - -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_lighter.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_lighter.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss b/src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss deleted file mode 100644 index 4eeba2d459..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss +++ /dev/null @@ -1,209 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); - } - - QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #535353; - } - Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #ffffff; - } - - - - /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. - To customize for each overlay docking site, use the following selector - - Gui--OverlayTabWidget#OverlayLeft {} - */ - - Gui--OverlayTabWidget { - qproperty-effectColor: rgba(25, 25, 25, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(100, 100, 100, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_lighter.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_lighter.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss b/src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss deleted file mode 100644 index 242f312db1..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss +++ /dev/null @@ -1,209 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); - } - - QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #535353; - } - Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #ffffff; - } - - - - /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. - To customize for each overlay docking site, use the following selector - - Gui--OverlayTabWidget#OverlayLeft {} - */ - - Gui--OverlayTabWidget { - qproperty-effectColor: rgba(25, 25, 25, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_dark.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss b/src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss deleted file mode 100644 index 1ef36ab552..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss +++ /dev/null @@ -1,227 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); - } - - QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #8b8b8b; - } - Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #000000; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:pressed { - background-color: @ThemeAccentColor1; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:active{ - background-color: @ThemeAccentColor1; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:!active { - color: white; - background-color: #353535; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:!selected:hover { - outline: 0; - color: white; - background-color: @ThemeAccentColor1; - } - - - /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. - To customize for each overlay docking site, use the following selector - - Gui--OverlayTabWidget#OverlayLeft {} - */ - - Gui--OverlayTabWidget { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_dark.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss b/src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss new file mode 100644 index 0000000000..5dd957e23d --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss @@ -0,0 +1,205 @@ +QTabWidget::pane{ + background-color: rgba(0, 0, 0, 0.01); + border: transparent; +} +QAbstractItemView { + alternate-background-color: rgba(255, 255, 255, 0.119); + color: #000000; + border: transparent; + padding-right: 6px; +} +Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; +} + +/* Overwrites Properties panel to use white text. */ +QTreeView { + background-color: #5f5f5f; + border: 0px solid #696968; + /* alternate-background-color: rgba(255, 0, 0, 0.611); */ + color: #fdfdfd; + gridline-color: #696968; + border-radius: 0px; +} + +Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #ffffff; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #000000; + background-color: #c7def5; +} + + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:hover { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:active { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:active { + color: #000000; + background-color: #c7def5; +} + + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { + color: #9a9a9a; +} + +Gui--OverlayTabWidget { + qproperty-effectColor: rgba(25, 25, 25, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + +Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; +} + +QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + } + +Gui--OverlayTabWidget::tab-bar:top, +Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; +} + +Gui--OverlayTabWidget::tab-bar:left, +Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; +} + +Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); +} + +Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; +} + +Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); +} + +Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); +} + +Gui--OverlayToolButton::pressed, +Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; +} + +Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; +} + +QFrame { + border: none; +} + + +Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_light.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton, +Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_dark.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, +Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_light.svg); +} + + QTreeView::branch:closed:has-children:has-siblings { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; +} + + QTreeView::branch:has-children:!has-siblings:closed { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; +} + + QTreeView::branch:open:has-children:has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; +} + + QTreeView::branch:open:has-children:!has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; +} + diff --git a/src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss b/src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss new file mode 100644 index 0000000000..fc77aac61f --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss @@ -0,0 +1,151 @@ +QTabWidget::pane{ + background-color: rgba(255, 255, 255, 0.01); + border: transparent; +} +QAbstractItemView { + alternate-background-color: rgba(255, 255, 255, 0.13); + color: #000000; + border: transparent; + padding-right: 5px; +} + +Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; +} + +Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #000000; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #000000; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #000000; + background-color: #c7def5; +} + +/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. +To customize for each overlay docking site, use the following selector + +Gui--OverlayTabWidget#OverlayLeft {} +*/ + +Gui--OverlayTabWidget { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + +Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; +} + +QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + +Gui--OverlayTabWidget::tab-bar:top, +Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; +} + +Gui--OverlayTabWidget::tab-bar:left, +Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; +} + +Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); +} + +Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; +} + +Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); +} + +Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); +} + +Gui--OverlayToolButton::pressed, +Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; +} + +Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; +} + +QFrame { + border: none; +} + +Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_light.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton, +Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_dark.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, +Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_light.svg); +} diff --git a/src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss b/src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss deleted file mode 100644 index db9f6ceb8b..0000000000 --- a/src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss +++ /dev/null @@ -1,107 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(255, 255, 255, 0.394); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(255, 255, 255, 0.6); -} - -Gui--OverlayToolButton { - background: #d4d4d4; - padding: -2px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} - -Gui--OverlayToolButton:hover { - background: #ffffff; - padding: 0px; -} - -Gui--OverlayToolButton:focus { - background: #cfcfcf; - padding: 0px; -} - -Gui--OverlayToolButton::pressed { - background: rgb(159, 159, 159); - border: 2px inset rgb(196, 196, 196); - padding: 0px; -} - -Gui--OverlayToolButton:checked { - background: #bebebe; - border: 2px inset #bebebe; - padding: 0px; - border-radius: 2px; -} - -Gui--OverlayToolButton:checked:hover { - background: rgba(255, 255, 255, 0.8); - border: 2px inset rgb(255, 255, 255); - -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: #d4d4d4; -} - -Gui--OverlayTitleBar { - background-color: #d4d4d4; -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #ffdede; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #f6f6f6; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #ffffff; -} diff --git a/src/Gui/Stylesheets/overlay/Light-Outline.qss b/src/Gui/Stylesheets/overlay/Light-Outline.qss deleted file mode 100644 index b3c76bbfd3..0000000000 --- a/src/Gui/Stylesheets/overlay/Light-Outline.qss +++ /dev/null @@ -1,183 +0,0 @@ -* { - color: #202020; - alternate-background-color: rgba(250,250,250,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background-color: #e0e0e0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: gray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: #202020; - background-color: rgba(100,100,100,50); - padding: 5px; -} - -QTabBar::tab:selected { - background-color: rgba(250,250,250,80); -} - -QTabBar::tab:hover { - background-color: rgba(250,250,250,200); -} - -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(200, 200, 200, 100); - qproperty-effectBlurRadius: 2.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(80, 80, 80); - background-color: rgba(128,128,128,50); - border: 1px solid rgb(100,100,100); - padding: 2px; -} - -QToolTip { - background-color: rgba(250,250,250,180); - border: 1px solid rgb(80,80,80); - border-radius:2px; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); -} - -Gui--OverlayToolButton::pressed, -Gui--OverlayToolButton::checked { - background: rgba(150,150,150,80); - border: 1px inset #f5f5f5; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; -} - -QTreeView, -QListView, -QTableView { - background: rgb(250,250,250); - selection-background-color: rgba(94, 144, 250, 0.7); - border: transparent; -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #20d2d2de; - qproperty-groupTextColor: rgb(100, 100, 100); - qproperty-groupBackground: rgba(180, 180, 180, 0.7); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(200, 200, 200, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgba(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(200, 200, 200, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #80e6e6e6; -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #a0e6e6e6; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #80e6e6e6; /* Task Panel background color */ -} diff --git a/src/Gui/Stylesheets/overlay/Light-off.qss b/src/Gui/Stylesheets/overlay/Light-off.qss deleted file mode 100644 index 0c5ec79e65..0000000000 --- a/src/Gui/Stylesheets/overlay/Light-off.qss +++ /dev/null @@ -1,33 +0,0 @@ -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset palette(dark); -} - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(200, 200, 200, 150) -} diff --git a/src/Gui/Stylesheets/overlay/Light.qss b/src/Gui/Stylesheets/overlay/Light.qss deleted file mode 100644 index 6ee020ac01..0000000000 --- a/src/Gui/Stylesheets/overlay/Light.qss +++ /dev/null @@ -1,155 +0,0 @@ -* { - color: #202020; - alternate-background-color: rgba(250,250,250,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background-color: #e0e0e0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: gray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -Gui--OverlayTabWidget { - qproperty-enableEffect: 0; -} - -Gui--OverlayTabWidget::pane { - background-color: rgba(255,255,255,80) -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: #202020; - background-color: rgba(100,100,100,50); - padding: 5px; -} - -QTabBar::tab:selected { - background-color: rgba(250,250,250,80); -} - -QTabBar::tab:hover { - background-color: rgba(250,250,250,200); -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(80, 80, 80); - background-color: rgba(128,128,128,50); - border: 1px solid darkgray; - padding: 2px; -} - -QToolTip { - background-color: rgba(250,250,250,180); - border: 1px solid rgb(80,80,80); - border-radius:2px; -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); -} - -Gui--OverlayToolButton::pressed, -Gui--OverlayToolButton::checked { - background: rgba(150,150,150,80); - border: 1px inset #f5f5f5; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; -} - -QTreeView, -QListView, -QTableView { - background: rgb(250,250,250); - selection-background-color: rgba(94, 144, 250, 0.7); - border: transparent; -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - /* gridline-color: #6e6e6e; */ - qproperty-groupTextColor: rgb(100, 100, 100); - qproperty-groupBackground: rgba(180, 180, 180, 0.7); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(200, 200, 200, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgba(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(200, 200, 200, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #80e6e6e6 -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #80e6e6e6; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #80e6e6e6; /* Task Panel background color */ -} diff --git a/src/Gui/Stylesheets/overlay/Light_overlay.qss b/src/Gui/Stylesheets/overlay/Light_overlay.qss deleted file mode 100644 index 1a5ef633c5..0000000000 --- a/src/Gui/Stylesheets/overlay/Light_overlay.qss +++ /dev/null @@ -1,107 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(255, 255, 255, 0.394); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(255, 255, 255, 0.6); -} - -Gui--OverlayToolButton { - background: #f6f6f6; - padding: -2px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} - -Gui--OverlayToolButton:hover { - background: #ffffff; - padding: 0px; -} - -Gui--OverlayToolButton:focus { - background: #cfcfcf; - padding: 0px; -} - -Gui--OverlayToolButton::pressed { - background: rgb(159, 159, 159); - border: 2px inset rgb(196, 196, 196); - padding: 0px; -} - -Gui--OverlayToolButton:checked { - background: #bebebe; - border: 2px inset #bebebe; - padding: 0px; - border-radius: 2px; -} - -Gui--OverlayToolButton:checked:hover { - background: rgba(255, 255, 255, 0.8); - border: 2px inset rgb(255, 255, 255); - -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); -} - -Gui--OverlayTitleBar { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #ffdede; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #f6f6f6; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #ffffff; -} diff --git a/src/Gui/Stylesheets/overlay/autohide.svg b/src/Gui/Stylesheets/overlay/icons/autohide.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/autohide.svg rename to src/Gui/Stylesheets/overlay/icons/autohide.svg diff --git a/src/Gui/Stylesheets/overlay/close.svg b/src/Gui/Stylesheets/overlay/icons/close.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close.svg rename to src/Gui/Stylesheets/overlay/icons/close.svg diff --git a/src/Gui/Stylesheets/overlay/close_light.svg b/src/Gui/Stylesheets/overlay/icons/close_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close_light.svg rename to src/Gui/Stylesheets/overlay/icons/close_light.svg diff --git a/src/Gui/Stylesheets/overlay/close_lighter.svg b/src/Gui/Stylesheets/overlay/icons/close_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/close_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/close_red.svg b/src/Gui/Stylesheets/overlay/icons/close_red.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close_red.svg rename to src/Gui/Stylesheets/overlay/icons/close_red.svg diff --git a/src/Gui/Stylesheets/overlay/edithide.svg b/src/Gui/Stylesheets/overlay/icons/edithide.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/edithide.svg rename to src/Gui/Stylesheets/overlay/icons/edithide.svg diff --git a/src/Gui/Stylesheets/overlay/editshow.svg b/src/Gui/Stylesheets/overlay/icons/editshow.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/editshow.svg rename to src/Gui/Stylesheets/overlay/icons/editshow.svg diff --git a/src/Gui/Stylesheets/overlay/float.svg b/src/Gui/Stylesheets/overlay/icons/float.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/float.svg rename to src/Gui/Stylesheets/overlay/icons/float.svg diff --git a/src/Gui/Stylesheets/overlay/float_light.svg b/src/Gui/Stylesheets/overlay/icons/float_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/float_light.svg rename to src/Gui/Stylesheets/overlay/icons/float_light.svg diff --git a/src/Gui/Stylesheets/overlay/float_lighter.svg b/src/Gui/Stylesheets/overlay/icons/float_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/float_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/float_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/mode.svg b/src/Gui/Stylesheets/overlay/icons/mode.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/mode.svg rename to src/Gui/Stylesheets/overlay/icons/mode.svg diff --git a/src/Gui/Stylesheets/overlay/mode_light.svg b/src/Gui/Stylesheets/overlay/icons/mode_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/mode_light.svg rename to src/Gui/Stylesheets/overlay/icons/mode_light.svg diff --git a/src/Gui/Stylesheets/overlay/mode_lighter.svg b/src/Gui/Stylesheets/overlay/icons/mode_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/mode_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/mode_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/overlay.svg b/src/Gui/Stylesheets/overlay/icons/overlay.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/overlay.svg rename to src/Gui/Stylesheets/overlay/icons/overlay.svg diff --git a/src/Gui/Stylesheets/overlay/overlay_light.svg b/src/Gui/Stylesheets/overlay/icons/overlay_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/overlay_light.svg rename to src/Gui/Stylesheets/overlay/icons/overlay_light.svg diff --git a/src/Gui/Stylesheets/overlay/overlay_lighter.svg b/src/Gui/Stylesheets/overlay/icons/overlay_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/overlay_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/overlay_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/taskshow.svg b/src/Gui/Stylesheets/overlay/icons/taskshow.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/taskshow.svg rename to src/Gui/Stylesheets/overlay/icons/taskshow.svg diff --git a/src/Gui/Stylesheets/overlay/taskshow_light.svg b/src/Gui/Stylesheets/overlay/icons/taskshow_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/taskshow_light.svg rename to src/Gui/Stylesheets/overlay/icons/taskshow_light.svg diff --git a/src/Gui/Stylesheets/overlay/transparent.svg b/src/Gui/Stylesheets/overlay/icons/transparent.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/transparent.svg rename to src/Gui/Stylesheets/overlay/icons/transparent.svg diff --git a/src/Gui/Stylesheets/overlay/transparent_light.svg b/src/Gui/Stylesheets/overlay/icons/transparent_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/transparent_light.svg rename to src/Gui/Stylesheets/overlay/icons/transparent_light.svg diff --git a/src/Gui/Stylesheets/overlay/transparent_lighter.svg b/src/Gui/Stylesheets/overlay/icons/transparent_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/transparent_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/transparent_lighter.svg diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp index 560a3bb820..d8e75929df 100644 --- a/src/Main/MainGui.cpp +++ b/src/Main/MainGui.cpp @@ -156,6 +156,9 @@ int main(int argc, char** argv) } argv_.push_back(0); // 0-terminated string } + + + // https://www.qt.io/blog/dark-mode-on-windows-11-with-qt-6.5 + +_putenv("QT_QPA_PLATFORM=windows:darkmode=1"); #endif // Name and Version of the Application diff --git a/src/Mod/Start/Gui/CMakeLists.txt b/src/Mod/Start/Gui/CMakeLists.txt index a6417f89d1..cf1e8e2376 100644 --- a/src/Mod/Start/Gui/CMakeLists.txt +++ b/src/Mod/Start/Gui/CMakeLists.txt @@ -76,9 +76,9 @@ SET(StartGuiIcon_SVG ) SET(StartGuiThumbnail_PNG - Resources/thumbnails/Classic512.png - Resources/thumbnails/OpenDark512.png - Resources/thumbnails/OpenLight512.png + Resources/thumbnails/Theme_thumbnail_classic.png + Resources/thumbnails/Theme_thumbnail_dark.png + Resources/thumbnails/Theme_thumbnail_light.png ) # TODO: Evaluate PCH use with Qt6/QtQuick/Qml diff --git a/src/Mod/Start/Gui/Resources/Start.qrc b/src/Mod/Start/Gui/Resources/Start.qrc index bb09223edc..e02454d61d 100644 --- a/src/Mod/Start/Gui/Resources/Start.qrc +++ b/src/Mod/Start/Gui/Resources/Start.qrc @@ -2,8 +2,8 @@ icons/StartCommandIcon.svg icons/PartDesignWorkbench.svg - thumbnails/Classic512.png - thumbnails/OpenLight512.png - thumbnails/OpenDark512.png + thumbnails/Theme_thumbnail_classic.png + thumbnails/Theme_thumbnail_light.png + thumbnails/Theme_thumbnail_dark.png diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Classic512.png b/src/Mod/Start/Gui/Resources/thumbnails/Classic512.png deleted file mode 100644 index 367c5159dab2ffef9ad349655e998fb6411cdd99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44994 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 C@ZD7a diff --git a/src/Mod/Start/Gui/Resources/thumbnails/OpenDark512.png b/src/Mod/Start/Gui/Resources/thumbnails/OpenDark512.png deleted file mode 100644 index 3dfef600a2b086f22aad1ab4f1380bbbdc8ae460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52140 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