diff --git a/src/app/puzzle/carousel/vpcarrouselpiece.cpp b/src/app/puzzle/carousel/vpcarrouselpiece.cpp index a98903209..cc4261edf 100644 --- a/src/app/puzzle/carousel/vpcarrouselpiece.cpp +++ b/src/app/puzzle/carousel/vpcarrouselpiece.cpp @@ -33,6 +33,7 @@ #include #include "../layout/vppiece.h" +#include "../vmisc/theme/vscenestylesheet.h" #include @@ -44,18 +45,17 @@ Q_LOGGING_CATEGORY(pCarrouselPiece, "p.carrouselPiece") // NOLINT QT_WARNING_POP - //--------------------------------------------------------------------------------------------------------------------- -VPCarrouselPiece::VPCarrouselPiece(const VPPiecePtr &piece, QListWidget* parent) : - QListWidgetItem(parent, Type), +VPCarrouselPiece::VPCarrouselPiece(const VPPiecePtr &piece, QListWidget *parent) + : QListWidgetItem(parent, Type), m_piece(piece) { SCASSERT(m_piece != nullptr) - int width = 120 - 8; - QFontMetrics metrix = QFontMetrics(QFont()); - QString clippedText = metrix.elidedText(piece->GetName(), Qt::ElideRight, width); - setIcon(CreatePieceIcon(QSize(120, 120))); + const int width = 120 - 8; + QString clippedText = QFontMetrics(font()).elidedText(piece->GetName(), Qt::ElideRight, width); + RefreshPieceIcon(); setText(clippedText); + setToolTip(piece->GetName()); } //--------------------------------------------------------------------------------------------------------------------- @@ -74,6 +74,12 @@ void VPCarrouselPiece::RefreshSelection() } } +//--------------------------------------------------------------------------------------------------------------------- +void VPCarrouselPiece::RefreshPieceIcon() +{ + setIcon(CreatePieceIcon(QSize(120, 120))); +} + //--------------------------------------------------------------------------------------------------------------------- auto VPCarrouselPiece::CreatePieceIcon(const QSize &size, bool isDragIcon) const -> QIcon { @@ -93,25 +99,19 @@ auto VPCarrouselPiece::CreatePieceIcon(const QSize &size, bool isDragIcon) const QVector iconModes; iconModes.append(QIcon::Normal); - if(not isDragIcon) + if (not isDragIcon) { iconModes.append(QIcon::Selected); } QIcon icon; - for(auto iconMode : iconModes) + const VManualLayoutStyle &style = VSceneStylesheet::ManualLayoutStyle(); + + for (auto iconMode : iconModes) { QPixmap pixmap(size); - - if(not isDragIcon) - { - pixmap.fill(QColor(Qt::white)); - } - else - { - pixmap.fill(QColor(Qt::transparent)); - } + pixmap.fill(not isDragIcon ? style.CarrouselPieceBackgroundColor() : QColor(Qt::transparent)); QPainter painter; painter.begin(&pixmap); @@ -122,34 +122,28 @@ auto VPCarrouselPiece::CreatePieceIcon(const QSize &size, bool isDragIcon) const painter.translate(spacing, spacing); - qreal scaleFactorX = canvasSize * 100 / (size.width() - spacing*2) / 100; - qreal scaleFactorY = canvasSize * 100 / (size.height() - spacing*2) / 100; - painter.scale(1./scaleFactorX, 1./scaleFactorY); - painter.setPen(QPen(Qt::black, 0.8*qMax(scaleFactorX, scaleFactorY))); + qreal scaleFactorX = canvasSize * 100 / (size.width() - spacing * 2) / 100; + qreal scaleFactorY = canvasSize * 100 / (size.height() - spacing * 2) / 100; + painter.scale(1. / scaleFactorX, 1. / scaleFactorY); + painter.setPen(QPen(style.CarrouselPieceColor(), 0.8 * qMax(scaleFactorX, scaleFactorY))); - if(not isDragIcon) + if (not isDragIcon) { painter.translate(dx, dy); } else { - painter.translate(-boundingRect.topLeft().x()+spacing, -boundingRect.topLeft().y()+spacing); + painter.translate(-boundingRect.topLeft().x() + spacing, -boundingRect.topLeft().y() + spacing); } - if(iconMode == QIcon::Selected) - { - painter.setBrush(QBrush(QColor(255,160,160,60))); - } - else - { - painter.setBrush(QBrush(Qt::white)); - } + painter.setBrush(QBrush(iconMode == QIcon::Selected ? style.CarrouselPieceSelectedColor() + : style.CarrouselPieceForegroundColor())); piece->DrawMiniature(painter); painter.end(); - icon.addPixmap(pixmap,iconMode); + icon.addPixmap(pixmap, iconMode); } return icon; diff --git a/src/app/puzzle/carousel/vpcarrouselpiece.h b/src/app/puzzle/carousel/vpcarrouselpiece.h index a9b0c7782..2dc5b54fa 100644 --- a/src/app/puzzle/carousel/vpcarrouselpiece.h +++ b/src/app/puzzle/carousel/vpcarrouselpiece.h @@ -58,6 +58,8 @@ public: */ void RefreshSelection(); + void RefreshPieceIcon(); + /** * @brief CreatePieceIcon Creates an icon of the piece of given size * @param size of the icon diff --git a/src/app/puzzle/carousel/vpcarrouselpiecelist.cpp b/src/app/puzzle/carousel/vpcarrouselpiecelist.cpp index 037ed73c3..a8f6be62e 100644 --- a/src/app/puzzle/carousel/vpcarrouselpiecelist.cpp +++ b/src/app/puzzle/carousel/vpcarrouselpiecelist.cpp @@ -27,24 +27,25 @@ *************************************************************************/ #include "vpcarrouselpiecelist.h" +#include #include #include -#include -#include +#include #include +#include +#include "../layout/vplayout.h" +#include "../layout/vppiece.h" +#include "../layout/vpsheet.h" +#include "../undocommands/vpundomovepieceonsheet.h" +#include "../vmisc/theme/vtheme.h" #include "vpcarrousel.h" #include "vpcarrouselpiece.h" +#include "vpmimedatapiece.h" + #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "vpmimedatapiece.h" -#include "../layout/vpsheet.h" -#include "../layout/vplayout.h" -#include "../undocommands/vpundomovepieceonsheet.h" -#include "../layout/vppiece.h" - -#include QT_WARNING_PUSH QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes") @@ -55,14 +56,29 @@ Q_LOGGING_CATEGORY(pCarrouselPieceList, "p.carrouselPieceList") // NOLINT QT_WARNING_POP //--------------------------------------------------------------------------------------------------------------------- -VPCarrouselPieceList::VPCarrouselPieceList(QWidget* parent) : - QListWidget(parent) +VPCarrouselPieceList::VPCarrouselPieceList(QWidget *parent) + : QListWidget(parent) { - setStyleSheet("QListWidget::item{border: 2px solid transparent; color: black;} " - "QListWidget::item:selected {border: 2px solid rgb(255,160,160);}"); + InitStyleSheet(); setContextMenuPolicy(Qt::DefaultContextMenu); setSelectionMode(QAbstractItemView::MultiSelection); setViewMode(QListView::IconMode); + + // Because we cannot control icon color with stylesheet we must wait until scene style update. It happens after + // the palette change signal. + connect(VTheme::Instance(), &VTheme::ThemeSettingsChanged, this, + [this]() + { + for (int i = 0; i < count(); ++i) + { + if (auto *pieceItem = dynamic_cast(item(i))) + { + pieceItem->RefreshPieceIcon(); + } + } + + InitStyleSheet(); + }); } //--------------------------------------------------------------------------------------------------------------------- @@ -76,20 +92,22 @@ void VPCarrouselPieceList::Refresh() { clear(); - if(not m_pieceList.isEmpty()) + if (m_pieceList.isEmpty()) { - // create the corresponding carrousel pieces - for (const auto &piece : qAsConst(m_pieceList)) // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) - { - if (not piece.isNull()) - { - // update the label of the piece - auto* carrouselpiece = new VPCarrouselPiece(piece, this); - carrouselpiece->setSelected(piece->IsSelected()); - } - } - sortItems(); + return; } + + // create the corresponding carrousel pieces + for (const auto &piece : qAsConst(m_pieceList)) // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) + { + if (not piece.isNull()) + { + // update the label of the piece + auto *carrouselpiece = new VPCarrouselPiece(piece, this); + carrouselpiece->setSelected(piece->IsSelected()); + } + } + sortItems(); } //--------------------------------------------------------------------------------------------------------------------- @@ -111,8 +129,8 @@ void VPCarrouselPieceList::mousePressEvent(QMouseEvent *event) if (!(event->modifiers() & Qt::ControlModifier)) { // clearSelection doesn't work properly here so we go through the elements. - const QList items = selectedItems(); - for(auto *item: items) + const QList items = selectedItems(); + for (auto *item : items) { item->setSelected(false); } @@ -142,10 +160,10 @@ void VPCarrouselPieceList::startDrag(Qt::DropActions supportedActions) { Q_UNUSED(supportedActions) - QListWidgetItem* _item = currentItem(); - if(_item->type() == VPCarrouselPiece::Type) + QListWidgetItem *_item = currentItem(); + if (_item->type() == VPCarrouselPiece::Type) { - auto *pieceItem = dynamic_cast (_item); + auto *pieceItem = dynamic_cast(_item); SCASSERT(pieceItem != nullptr) if (m_carrousel == nullptr) @@ -169,7 +187,7 @@ void VPCarrouselPieceList::startDrag(Qt::DropActions supportedActions) drag->setDragCursor(VPMimeDataPiece::DragCursor(pixmap), Qt::MoveAction); drag->setMimeData(mimeData); - if(drag->exec() == Qt::MoveAction) + if (drag->exec() == Qt::MoveAction) { m_carrousel->Refresh(); piece->SetSelected(false); @@ -184,7 +202,7 @@ void VPCarrouselPieceList::startDrag(Qt::DropActions supportedActions) } //--------------------------------------------------------------------------------------------------------------------- -void VPCarrouselPieceList::dragMoveEvent(QDragMoveEvent* e) +void VPCarrouselPieceList::dragMoveEvent(QDragMoveEvent *e) { qCDebug(pCarrouselPieceList, "drag move"); e->acceptProposedAction(); @@ -193,13 +211,13 @@ void VPCarrouselPieceList::dragMoveEvent(QDragMoveEvent* e) //--------------------------------------------------------------------------------------------------------------------- void VPCarrouselPieceList::contextMenuEvent(QContextMenuEvent *event) { - QListWidgetItem* _item = currentItem(); - if(_item == nullptr || _item->type() != VPCarrouselPiece::Type) + QListWidgetItem *_item = currentItem(); + if (_item == nullptr || _item->type() != VPCarrouselPiece::Type) { return; } - auto *pieceItem = dynamic_cast (_item); + auto *pieceItem = dynamic_cast(_item); SCASSERT(pieceItem != nullptr) VPPiecePtr piece = pieceItem->GetPiece(); @@ -212,7 +230,7 @@ void VPCarrouselPieceList::contextMenuEvent(QContextMenuEvent *event) QMenu menu; - QVector moveToActions; + QVector moveToActions; if (not piece->Sheet().isNull()) { @@ -227,7 +245,7 @@ void VPCarrouselPieceList::contextMenuEvent(QContextMenuEvent *event) { if (not sheet.isNull()) { - QAction* moveToSheet = moveMenu->addAction(sheet->GetName()); + QAction *moveToSheet = moveMenu->addAction(sheet->GetName()); moveToSheet->setData(QVariant::fromValue(sheet)); moveToActions.append(moveToSheet); } @@ -244,13 +262,13 @@ void VPCarrouselPieceList::contextMenuEvent(QContextMenuEvent *event) QAction *removeAction = menu.addAction(tr("Remove from Sheet")); removeAction->setVisible(false); - if(not m_pieceList.isEmpty() && ConstFirst(m_pieceList)->Sheet() == nullptr) + if (not m_pieceList.isEmpty() && ConstFirst(m_pieceList)->Sheet() == nullptr) { moveAction->setVisible(true); deleteAction->setVisible(true); } - if(not m_pieceList.isEmpty() && ConstFirst(m_pieceList)->Sheet() != nullptr) + if (not m_pieceList.isEmpty() && ConstFirst(m_pieceList)->Sheet() != nullptr) { removeAction->setVisible(true); } @@ -287,16 +305,31 @@ void VPCarrouselPieceList::contextMenuEvent(QContextMenuEvent *event) } } +//--------------------------------------------------------------------------------------------------------------------- +void VPCarrouselPieceList::InitStyleSheet() +{ + if (VTheme::ColorSheme() == VColorSheme::Dark) + { + setStyleSheet("QListWidget::item{border: 2px solid transparent;}" + "QListWidget::item:selected {border: 2px solid rgb(255,160,160);}"); + } + else + { + setStyleSheet("QListWidget::item{border: 2px solid transparent; color: black;} " + "QListWidget::item:selected {border: 2px solid rgb(255,160,160);}"); + } +} + //--------------------------------------------------------------------------------------------------------------------- void VPCarrouselPieceList::on_SelectionChangedExternal() { blockSignals(true); - for(int i = 0; i < count(); ++i) + for (int i = 0; i < count(); ++i) { - QListWidgetItem* _item = item(i); - if(_item->type() == VPCarrouselPiece::Type) + QListWidgetItem *_item = item(i); + if (_item->type() == VPCarrouselPiece::Type) { - auto *itemPiece = dynamic_cast (_item); + auto *itemPiece = dynamic_cast(_item); SCASSERT(itemPiece != nullptr) itemPiece->RefreshSelection(); } diff --git a/src/app/puzzle/carousel/vpcarrouselpiecelist.h b/src/app/puzzle/carousel/vpcarrouselpiecelist.h index 9a0fae51b..42cc76348 100644 --- a/src/app/puzzle/carousel/vpcarrouselpiecelist.h +++ b/src/app/puzzle/carousel/vpcarrouselpiecelist.h @@ -33,12 +33,12 @@ #include "vpcarrousel.h" - class VPCarrouselPieceList : public QListWidget { Q_OBJECT // NOLINT + public: - explicit VPCarrouselPieceList(QWidget* parent); + explicit VPCarrouselPieceList(QWidget *parent); ~VPCarrouselPieceList() override = default; /** @@ -66,7 +66,7 @@ public slots: protected: void startDrag(Qt::DropActions supportedActions) override; - void dragMoveEvent(QDragMoveEvent* e) override; + void dragMoveEvent(QDragMoveEvent *e) override; void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; @@ -79,6 +79,8 @@ private: QList m_pieceList{}; QPoint m_dragStart{}; VPCarrousel *m_carrousel{nullptr}; + + void InitStyleSheet(); }; #endif // VPCARROUSELPIECELIST_H diff --git a/src/app/puzzle/dialogs/configpages/puzzlepreferenceslayoutpage.ui b/src/app/puzzle/dialogs/configpages/puzzlepreferenceslayoutpage.ui index 659be6fb9..07b800a46 100644 --- a/src/app/puzzle/dialogs/configpages/puzzlepreferenceslayoutpage.ui +++ b/src/app/puzzle/dialogs/configpages/puzzlepreferenceslayoutpage.ui @@ -87,7 +87,7 @@ - ... + @@ -107,7 +107,7 @@ - ... + @@ -475,7 +475,7 @@ - ... + @@ -495,7 +495,7 @@ - ... + diff --git a/src/app/puzzle/layout/vpsheet.cpp b/src/app/puzzle/layout/vpsheet.cpp index 8cbbeaecc..c1791b4e0 100644 --- a/src/app/puzzle/layout/vpsheet.cpp +++ b/src/app/puzzle/layout/vpsheet.cpp @@ -33,6 +33,8 @@ #include "../scene/vpgraphicstilegrid.h" #include "../vpapplication.h" #include "../vwidgets/vmaingraphicsscene.h" +#include "theme/vscenestylesheet.h" +#include "theme/vstylesheetstyle.h" #include "vplayout.h" #include "vppiece.h" @@ -121,6 +123,9 @@ void VPSheetSceneData::RefreshPieces() //--------------------------------------------------------------------------------------------------------------------- void VPSheetSceneData::PrepareForExport() { + VStylesheetStyle::SetExportColorScheme(ExportColorScheme::BackAndWhite); + VSceneStylesheet::ResetStyles(); + m_graphicsSheet->SetShowBorder(false); m_graphicsSheet->SetShowMargin(false); @@ -161,6 +166,9 @@ void VPSheetSceneData::PrepareForExport() //--------------------------------------------------------------------------------------------------------------------- void VPSheetSceneData::CleanAfterExport() { + VStylesheetStyle::SetExportColorScheme(ExportColorScheme::Default); + VSceneStylesheet::ResetStyles(); + m_graphicsSheet->SetShowBorder(true); m_graphicsSheet->SetShowMargin(true); diff --git a/src/app/puzzle/main.cpp b/src/app/puzzle/main.cpp index 6585ae0e4..b85540c37 100644 --- a/src/app/puzzle/main.cpp +++ b/src/app/puzzle/main.cpp @@ -59,6 +59,7 @@ auto main(int argc, char *argv[]) -> int Q_INIT_RESOURCE(flags); // NOLINT Q_INIT_RESOURCE(breeze); // NOLINT Q_INIT_RESOURCE(cursor); // NOLINT + Q_INIT_RESOURCE(scenestyle); // NOLINT #if defined(Q_OS_MACX) Q_INIT_RESOURCE(mac_theme); // NOLINT #else diff --git a/src/app/puzzle/scene/vpgraphicspiece.cpp b/src/app/puzzle/scene/vpgraphicspiece.cpp index 82d5a2083..d4e57fb2f 100644 --- a/src/app/puzzle/scene/vpgraphicspiece.cpp +++ b/src/app/puzzle/scene/vpgraphicspiece.cpp @@ -50,6 +50,7 @@ #include "../vmisc/svgfont/vsvgfont.h" #include "../vmisc/svgfont/vsvgfontdatabase.h" #include "../vmisc/svgfont/vsvgfontengine.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vpapplication.h" #include "compatibility.h" #include "undocommands/vpundomovepieceonsheet.h" @@ -72,14 +73,6 @@ QT_WARNING_POP namespace { -QT_WARNING_PUSH -QT_WARNING_DISABLE_CLANG("-Wunused-member-function") - -Q_GLOBAL_STATIC_WITH_ARGS(QColor, mainColor, (Qt::black)) // NOLINT -Q_GLOBAL_STATIC_WITH_ARGS(QColor, errorColor, (Qt::red)) // NOLINT - -QT_WARNING_POP - //--------------------------------------------------------------------------------------------------------------------- inline auto LineMatrix(const VPPiecePtr &piece, const QPointF &topLeft, qreal angle, const QPointF &linePos, int maxLineWidth) -> QTransform @@ -789,11 +782,11 @@ void VPGraphicsPiece::PaintStickyPath(QPainter *painter) if (painter != nullptr) { painter->save(); - painter->setBrush(QBrush(Qt::BDiagPattern)); + painter->setBrush(QBrush(VSceneStylesheet::ManualLayoutStyle().PieceOkColor(), Qt::BDiagPattern)); QPen pen = painter->pen(); pen.setStyle(Qt::DashLine); - pen.setColor(*mainColor); + pen.setColor(VSceneStylesheet::ManualLayoutStyle().PieceOkColor()); painter->setPen(pen); painter->drawPath(m_stickyPath); @@ -876,13 +869,13 @@ auto VPGraphicsPiece::PieceColor() const -> QColor VPPiecePtr piece = m_piece.toStrongRef(); if (piece.isNull()) { - return *mainColor; + return VSceneStylesheet::ManualLayoutStyle().PieceOkColor(); } VPLayoutPtr layout = piece->Layout(); if (layout.isNull()) { - return *mainColor; + return VSceneStylesheet::ManualLayoutStyle().PieceOkColor(); } bool outOfBound = false; @@ -899,16 +892,16 @@ auto VPGraphicsPiece::PieceColor() const -> QColor if (outOfBound || superposition) { - return *errorColor; + return VSceneStylesheet::ManualLayoutStyle().PieceErrorColor(); } - return *mainColor; + return VSceneStylesheet::ManualLayoutStyle().PieceOkColor(); } //--------------------------------------------------------------------------------------------------------------------- auto VPGraphicsPiece::NoBrush() const -> QBrush { - return m_hoverMode ? QBrush(QColor(199, 244, 249, 60)) : QBrush(Qt::NoBrush); + return m_hoverMode ? QBrush(VSceneStylesheet::ManualLayoutStyle().PieceHoverColor()) : QBrush(Qt::NoBrush); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/puzzle/scene/vpgraphicspiececontrols.cpp b/src/app/puzzle/scene/vpgraphicspiececontrols.cpp index 1e199f4b6..45b2c8da2 100644 --- a/src/app/puzzle/scene/vpgraphicspiececontrols.cpp +++ b/src/app/puzzle/scene/vpgraphicspiececontrols.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -43,10 +44,9 @@ #include "../undocommands/vpundooriginmove.h" #include "../undocommands/vpundopiecerotate.h" #include "../vmisc/compatibility.h" +#include "../vmisc/theme/vscenestylesheet.h" +#include "../vmisc/theme/vtheme.h" #include "../vwidgets/global.h" -#include "qgraphicsscene.h" -#include "qgraphicsview.h" -#include "qnamespace.h" #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #include "../vmisc/diagnostic.h" @@ -59,14 +59,6 @@ constexpr qreal penWidth = 2; const qreal centerRadius1 = 5; const qreal centerRadius2 = 10; -QT_WARNING_PUSH -QT_WARNING_DISABLE_CLANG("-Wunused-member-function") - -Q_GLOBAL_STATIC_WITH_ARGS(const QColor, defaultColor, (Qt::black)) // NOLINT -Q_GLOBAL_STATIC_WITH_ARGS(const QColor, hoverColor, (Qt::green)) // NOLINT - -QT_WARNING_POP - //--------------------------------------------------------------------------------------------------------------------- auto TransformationOrigin(const VPLayoutPtr &layout, const QRectF &boundingRect) -> VPTransformationOrigon { @@ -94,8 +86,7 @@ auto TransformationOrigin(const VPLayoutPtr &layout, const QRectF &boundingRect) //--------------------------------------------------------------------------------------------------------------------- VPGraphicsTransformationOrigin::VPGraphicsTransformationOrigin(const VPLayoutPtr &layout, QGraphicsItem *parent) : QGraphicsObject(parent), - m_layout(layout), - m_color(*defaultColor) + m_layout(layout) { SCASSERT(m_layout != nullptr) setCursor(Qt::OpenHandCursor); @@ -147,14 +138,14 @@ void VPGraphicsTransformationOrigin::paint(QPainter *painter, const QStyleOption const qreal scale = SceneScale(scene()); - QPen pen(m_color, penWidth / scale, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); + QPen pen(CurrentColor(), penWidth / scale, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); painter->setPen(pen); if (m_originVisible) { painter->save(); - painter->setBrush(QBrush(m_color)); + painter->setBrush(QBrush(CurrentColor())); painter->drawPath(Center1()); painter->restore(); @@ -221,14 +212,14 @@ void VPGraphicsTransformationOrigin::mouseReleaseEvent(QGraphicsSceneMouseEvent //--------------------------------------------------------------------------------------------------------------------- void VPGraphicsTransformationOrigin::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { - m_color = *hoverColor; + m_hoverMode = true; QGraphicsObject::hoverEnterEvent(event); } //--------------------------------------------------------------------------------------------------------------------- void VPGraphicsTransformationOrigin::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { - m_color = *defaultColor; + m_hoverMode = false; QGraphicsObject::hoverEnterEvent(event); } @@ -249,7 +240,7 @@ auto VPGraphicsTransformationOrigin::RotationCenter(QPainter *painter) const -> if (painter != nullptr) { painter->save(); - painter->setBrush(QBrush(m_color)); + painter->setBrush(QBrush(CurrentColor())); painter->drawPath(Center1()); painter->restore(); } @@ -304,6 +295,13 @@ auto VPGraphicsTransformationOrigin::Center2() const -> QPainterPath return center2; } +//--------------------------------------------------------------------------------------------------------------------- +auto VPGraphicsTransformationOrigin::CurrentColor() const -> QColor +{ + return m_hoverMode ? VSceneStylesheet::ManualLayoutStyle().PieceHandleHoverColor() + : VSceneStylesheet::ManualLayoutStyle().PieceHandleColor(); +} + // VPGraphicsPieceControls //--------------------------------------------------------------------------------------------------------------------- VPGraphicsPieceControls::VPGraphicsPieceControls(const VPLayoutPtr &layout, QGraphicsItem *parent) @@ -571,34 +569,30 @@ void VPGraphicsPieceControls::InitPixmaps() m_handleHoverPixmaps.clear(); m_handlePaths.clear(); - auto InitPixmap = [this](VPHandleCornerType type, const QString &fileName) + auto InitPixmap = [this](VPHandleCornerType type, const QString &imageName) { - const QFileInfo fileInfo(fileName); - const QString imageName = fileInfo.baseName(); + const QString fileName = QStringLiteral("32x32/%1.png").arg(imageName); + const QString fileNameHover = QStringLiteral("32x32/%1-hover.png").arg(imageName); - const QString fileNameHover = - QStringLiteral("%1/%2-hover.%3").arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); + const QString resource = QStringLiteral("icon"); #if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) if (QGuiApplication::primaryScreen()->devicePixelRatio() >= 2) { - const QString fileName2x = - QStringLiteral("%1/%2@2x.%3").arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); + const QString fileName2x = QStringLiteral("32x32/%1@2x.png").arg(imageName); + const QString fileName2xHover = QStringLiteral("32x32/%1-hover@2x.png").arg(imageName); - const QString fileName2xHover = - QStringLiteral("%1/%2-hover@2x.%3").arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); - - m_handlePixmaps.insert(type, QPixmap(fileName2x)); - m_handleHoverPixmaps.insert(type, QPixmap(fileName2xHover)); + m_handlePixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName2x)); + m_handleHoverPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName2xHover)); } else { - m_handlePixmaps.insert(type, QPixmap(fileName)); - m_handleHoverPixmaps.insert(type, QPixmap(fileNameHover)); + m_handlePixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName)); + m_handleHoverPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileNameHover)); } #else - m_handlePixmaps.insert(type, QPixmap(fileName)); - m_handleHoverPixmaps.insert(type, QPixmap(fileNameHover)); + m_handlePixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName)); + m_handleHoverPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileNameHover)); #endif QPainterPath p = PixmapToPainterPath(m_handlePixmaps.value(type)); p.setFillRule(Qt::WindingFill); @@ -606,10 +600,10 @@ void VPGraphicsPieceControls::InitPixmaps() m_handlePaths.insert(type, p); }; - InitPixmap(VPHandleCornerType::TopLeft, QStringLiteral("://icon/32x32/rotate-top-left.png")); - InitPixmap(VPHandleCornerType::TopRight, QStringLiteral("://icon/32x32/rotate-top-right.png")); - InitPixmap(VPHandleCornerType::BottomRight, QStringLiteral("://icon/32x32/rotate-bottom-right.png")); - InitPixmap(VPHandleCornerType::BottomLeft, QStringLiteral("://icon/32x32/rotate-bottom-left.png")); + InitPixmap(VPHandleCornerType::TopLeft, QStringLiteral("rotate-top-left")); + InitPixmap(VPHandleCornerType::TopRight, QStringLiteral("rotate-top-right")); + InitPixmap(VPHandleCornerType::BottomRight, QStringLiteral("rotate-bottom-right")); + InitPixmap(VPHandleCornerType::BottomLeft, QStringLiteral("rotate-bottom-left")); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/puzzle/scene/vpgraphicspiececontrols.h b/src/app/puzzle/scene/vpgraphicspiececontrols.h index a837b3b7b..2a4fd246d 100644 --- a/src/app/puzzle/scene/vpgraphicspiececontrols.h +++ b/src/app/puzzle/scene/vpgraphicspiececontrols.h @@ -31,8 +31,8 @@ #include #include -#include "scenedef.h" #include "../layout/layoutdef.h" +#include "scenedef.h" #if QT_VERSION < QT_VERSION_CHECK(5, 13, 0) #include "../vmisc/defglobal.h" @@ -62,12 +62,16 @@ enum class VPHandleCornerType class VPGraphicsTransformationOrigin : public QGraphicsObject { Q_OBJECT // NOLINT + public: - explicit VPGraphicsTransformationOrigin(const VPLayoutPtr &layout, QGraphicsItem * parent = nullptr); + explicit VPGraphicsTransformationOrigin(const VPLayoutPtr &layout, QGraphicsItem *parent = nullptr); ~VPGraphicsTransformationOrigin() override = default; - auto type() const -> int override {return Type;} - enum { Type = UserType + static_cast(PGraphicsItem::TransformationOrigin)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(PGraphicsItem::TransformationOrigin) + }; public slots: void SetTransformationOrigin(); @@ -79,8 +83,8 @@ protected: auto shape() const -> QPainterPath override; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; - void mousePressEvent(QGraphicsSceneMouseEvent * event) override; - void mouseMoveEvent(QGraphicsSceneMouseEvent * event) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; @@ -90,25 +94,31 @@ private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(VPGraphicsTransformationOrigin) // NOLINT - bool m_originVisible{true}; + bool m_originVisible{true}; VPLayoutWeakPtr m_layout{}; - QColor m_color; - bool m_allowChangeMerge{false}; + bool m_hoverMode{false}; + bool m_allowChangeMerge{false}; auto RotationCenter(QPainter *painter = nullptr) const -> QPainterPath; auto Center1() const -> QPainterPath; auto Center2() const -> QPainterPath; + + auto CurrentColor() const -> QColor; }; class VPGraphicsPieceControls : public QGraphicsObject { Q_OBJECT // NOLINT + public: - explicit VPGraphicsPieceControls(const VPLayoutPtr &layout, QGraphicsItem * parent = nullptr); + explicit VPGraphicsPieceControls(const VPLayoutPtr &layout, QGraphicsItem *parent = nullptr); ~VPGraphicsPieceControls() override = default; - auto type() const -> int override {return Type;} - enum { Type = UserType + static_cast(PGraphicsItem::Handles)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(PGraphicsItem::Handles) + }; void SetIgnorePieceTransformation(bool newIgnorePieceTransformation); @@ -135,17 +145,17 @@ protected: private: Q_DISABLE_COPY_MOVE(VPGraphicsPieceControls) // NOLINT - QRectF m_pieceRect{}; - QPointF m_rotationStartPoint{}; - qreal m_rotationSum{0}; - bool m_controlsVisible{false}; + QRectF m_pieceRect{}; + QPointF m_rotationStartPoint{}; + qreal m_rotationSum{0}; + bool m_controlsVisible{false}; VPLayoutWeakPtr m_layout{}; - VPHandleCorner m_handleCorner{VPHandleCorner::Invalid}; + VPHandleCorner m_handleCorner{VPHandleCorner::Invalid}; VPTransformationOrigon m_savedOrigin{}; - bool m_originSaved{false}; - bool allowChangeMerge{false}; + bool m_originSaved{false}; + bool allowChangeMerge{false}; QList m_selectedPieces{}; - bool m_ignorePieceTransformation{false}; + bool m_ignorePieceTransformation{false}; QMap m_handlePixmaps{}; QMap m_handleHoverPixmaps{}; diff --git a/src/app/puzzle/scene/vpgraphicssheet.cpp b/src/app/puzzle/scene/vpgraphicssheet.cpp index 51519e7f2..08608089a 100644 --- a/src/app/puzzle/scene/vpgraphicssheet.cpp +++ b/src/app/puzzle/scene/vpgraphicssheet.cpp @@ -29,14 +29,17 @@ #include "vpgraphicssheet.h" #include "../layout/vplayout.h" #include "../layout/vpsheet.h" +#include "qnamespace.h" +#include "theme/vscenestylesheet.h" #include //--------------------------------------------------------------------------------------------------------------------- -VPGraphicsSheet::VPGraphicsSheet(const VPLayoutPtr &layout, QGraphicsItem *parent): - QGraphicsItem(parent), +VPGraphicsSheet::VPGraphicsSheet(const VPLayoutPtr &layout, QGraphicsItem *parent) + : QGraphicsItem(parent), m_layout(layout) -{} +{ +} //--------------------------------------------------------------------------------------------------------------------- void VPGraphicsSheet::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) @@ -44,36 +47,56 @@ void VPGraphicsSheet::paint(QPainter *painter, const QStyleOptionGraphicsItem *o Q_UNUSED(widget); Q_UNUSED(option); - QPen pen(QColor(0,179,255), 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); - pen.setCosmetic(true); - QBrush noBrush(Qt::NoBrush); - painter->setPen(pen); - painter->setBrush(noBrush); - - QRectF sheetRect = GetSheetRect(); - - if(m_showMargin) - { - painter->drawRect(GetMarginsRect()); - } - - if(m_showBorder) - { - pen.setColor(Qt::black); - - painter->setPen(pen); - painter->drawRect(sheetRect); - } + bool ignoreMargins = true; VPLayoutPtr layout = m_layout.toStrongRef(); - if(not layout.isNull() && layout->LayoutSettings().GetShowGrid()) + if (!layout.isNull()) { - pen.setColor(QColor(204,204,204)); + VPSheetPtr sheet = layout->GetFocusedSheet(); + if (!sheet.isNull()) + { + ignoreMargins = sheet->IgnoreMargins(); + } + } + + if (m_showMargin && !ignoreMargins) + { + QPen pen(VSceneStylesheet::ManualLayoutStyle().SheetMarginColor(), 1.5, Qt::SolidLine, Qt::RoundCap, + Qt::RoundJoin); + pen.setCosmetic(true); + + painter->save(); + painter->setPen(pen); + painter->drawRect(GetMarginsRect()); + painter->restore(); + } + + QRectF sheetRect = GetSheetRect(); + + if (m_showBorder) + { + QPen pen(VSceneStylesheet::ManualLayoutStyle().SheetBorderColor(), 1.5, Qt::SolidLine, Qt::RoundCap, + Qt::RoundJoin); + pen.setCosmetic(true); + + painter->save(); + painter->setPen(pen); + painter->drawRect(sheetRect); + painter->restore(); + } + + if (not layout.isNull() && layout->LayoutSettings().GetShowGrid()) + { + QPen pen(VSceneStylesheet::ManualLayoutStyle().SheetGridColor(), 1.5, Qt::SolidLine, Qt::RoundCap, + Qt::RoundJoin); + pen.setCosmetic(true); + + painter->save(); painter->setPen(pen); qreal colWidth = layout->LayoutSettings().GetGridColWidth(); - if(colWidth > 0) + if (colWidth > 0) { qreal colX = colWidth; while (colX < sheetRect.right()) @@ -85,7 +108,7 @@ void VPGraphicsSheet::paint(QPainter *painter, const QStyleOptionGraphicsItem *o } qreal rowHeight = layout->LayoutSettings().GetGridRowHeight(); - if(rowHeight > 0) + if (rowHeight > 0) { qreal rowY = rowHeight; @@ -96,6 +119,7 @@ void VPGraphicsSheet::paint(QPainter *painter, const QStyleOptionGraphicsItem *o rowY += rowHeight; } } + painter->restore(); } } diff --git a/src/app/puzzle/scene/vpgraphicstilegrid.cpp b/src/app/puzzle/scene/vpgraphicstilegrid.cpp index 1fd3b922f..6385d7dea 100644 --- a/src/app/puzzle/scene/vpgraphicstilegrid.cpp +++ b/src/app/puzzle/scene/vpgraphicstilegrid.cpp @@ -1,9 +1,9 @@ #include "vpgraphicstilegrid.h" -#include "../vptilefactory.h" #include "../layout/vplayout.h" #include "../layout/vpsheet.h" -#include "../vmisc/vmath.h" +#include "../vmisc/theme/vscenestylesheet.h" +#include "../vptilefactory.h" #include "../vwidgets/global.h" #include @@ -29,8 +29,8 @@ auto SheetMargins(const VPSheetPtr &sheet) -> QMarginsF //--------------------------------------------------------------------------------------------------------------------- auto OptimizeFontSizeToFitTextInRect(QPainter *painter, const QRectF &drawRect, const QString &text, - int flags = Qt::TextDontClip|Qt::TextWordWrap, double goalError = 0.01, - int maxIterationNumber=10) -> QFont + int flags = Qt::TextDontClip | Qt::TextWordWrap, double goalError = 0.01, + int maxIterationNumber = 10) -> QFont { QFont font; @@ -44,8 +44,8 @@ auto OptimizeFontSizeToFitTextInRect(QPainter *painter, const QRectF &drawRect, double minError = std::numeric_limits::max(); double error = std::numeric_limits::max(); - int iterationNumber=0; - while((error > goalError) && (iterationNumber goalError) && (iterationNumber < maxIterationNumber)) { iterationNumber++; QRect fontBoundRect = painter->fontMetrics().boundingRect(drawRect.toRect(), flags, text); @@ -58,15 +58,15 @@ auto OptimizeFontSizeToFitTextInRect(QPainter *painter, const QRectF &drawRect, double xFactor = drawRect.width() / fontBoundRect.width(); double yFactor = drawRect.height() / fontBoundRect.height(); double factor; - if (xFactor<1 && yFactor<1) + if (xFactor < 1 && yFactor < 1) { factor = std::min(xFactor, yFactor); } - else if (xFactor>1 && yFactor>1) + else if (xFactor > 1 && yFactor > 1) { factor = std::max(xFactor, yFactor); } - else if (xFactor<1 && yFactor>1) + else if (xFactor < 1 && yFactor > 1) { factor = xFactor; } @@ -75,8 +75,8 @@ auto OptimizeFontSizeToFitTextInRect(QPainter *painter, const QRectF &drawRect, factor = yFactor; } - error = qFabs(factor-1); - if (factor > 1 ) + error = qFabs(factor - 1); + if (factor > 1) { if (error < minError) { @@ -88,7 +88,7 @@ auto OptimizeFontSizeToFitTextInRect(QPainter *painter, const QRectF &drawRect, } } font = painter->font(); - qreal size = font.pointSizeF()*factor; + qreal size = font.pointSizeF() * factor; if (size <= 0) { size = 0.00000001; @@ -100,11 +100,11 @@ auto OptimizeFontSizeToFitTextInRect(QPainter *painter, const QRectF &drawRect, return font; } -} // namespace +} // namespace //--------------------------------------------------------------------------------------------------------------------- -VPGraphicsTileGrid::VPGraphicsTileGrid(const VPLayoutPtr &layout, const QUuid &sheetUuid, QGraphicsItem *parent): - QGraphicsItem(parent), +VPGraphicsTileGrid::VPGraphicsTileGrid(const VPLayoutPtr &layout, const QUuid &sheetUuid, QGraphicsItem *parent) + : QGraphicsItem(parent), m_layout(layout), m_sheetUuid(sheetUuid) { @@ -114,7 +114,7 @@ VPGraphicsTileGrid::VPGraphicsTileGrid(const VPLayoutPtr &layout, const QUuid &s auto VPGraphicsTileGrid::boundingRect() const -> QRectF { VPLayoutPtr layout = m_layout.toStrongRef(); - if(not layout.isNull() && layout->LayoutSettings().GetShowTiles()) + if (not layout.isNull() && layout->LayoutSettings().GetShowTiles()) { VPSheetPtr sheet = layout->GetSheet(m_sheetUuid); @@ -130,11 +130,10 @@ auto VPGraphicsTileGrid::boundingRect() const -> QRectF qreal width = layout->TileFactory()->DrawingAreaWidth() - VPTileFactory::tileStripeWidth; qreal height = layout->TileFactory()->DrawingAreaHeight() - VPTileFactory::tileStripeWidth; - QRectF rect(sheetMargins.left(), sheetMargins.top(), - layout->TileFactory()->ColNb(sheet) * (width / xScale), + QRectF rect(sheetMargins.left(), sheetMargins.top(), layout->TileFactory()->ColNb(sheet) * (width / xScale), layout->TileFactory()->RowNb(sheet) * (height / yScale)); - constexpr qreal halfPenWidth = penWidth/2.; + constexpr qreal halfPenWidth = penWidth / 2.; return rect.adjusted(-halfPenWidth, -halfPenWidth, halfPenWidth, halfPenWidth); } @@ -149,12 +148,13 @@ void VPGraphicsTileGrid::paint(QPainter *painter, const QStyleOptionGraphicsItem Q_UNUSED(option); VPLayoutPtr layout = m_layout.toStrongRef(); - if(layout.isNull() || not layout->LayoutSettings().GetShowTiles()) + if (layout.isNull() || not layout->LayoutSettings().GetShowTiles()) { return; } - QPen pen(QColor(255,0,0,127), penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); + QPen pen(VSceneStylesheet::ManualLayoutStyle().SheetTileGridColor(), penWidth, Qt::SolidLine, Qt::RoundCap, + Qt::RoundJoin); pen.setCosmetic(true); pen.setStyle(Qt::DashLine); QBrush noBrush(Qt::NoBrush); @@ -166,17 +166,15 @@ void VPGraphicsTileGrid::paint(QPainter *painter, const QStyleOptionGraphicsItem VWatermarkData watermarkData = layout->TileFactory()->WatermarkData(); - auto PaintWatermark = [painter, layout, xScale, yScale, watermarkData] - (const QRectF &img) + auto PaintWatermark = [painter, layout, xScale, yScale, watermarkData](const QRectF &img) { - if (not layout->LayoutSettings().WatermarkPath().isEmpty() && - layout->LayoutSettings().GetShowWatermark() && watermarkData.opacity > 0) + if (not layout->LayoutSettings().WatermarkPath().isEmpty() && layout->LayoutSettings().GetShowWatermark() && + watermarkData.opacity > 0) { if (watermarkData.showImage && not watermarkData.path.isEmpty()) { VPTileFactory::PaintWatermarkImage(painter, img, watermarkData, - layout->LayoutSettings().WatermarkPath(), - xScale, yScale); + layout->LayoutSettings().WatermarkPath(), true, xScale, yScale); } if (watermarkData.showText && not watermarkData.text.isEmpty()) @@ -195,14 +193,13 @@ void VPGraphicsTileGrid::paint(QPainter *painter, const QStyleOptionGraphicsItem const int nbCol = layout->TileFactory()->ColNb(sheet); const int nbRow = layout->TileFactory()->RowNb(sheet); - QFont font = OptimizeFontSizeToFitTextInRect(painter, - QRectF(sheetMargins.left(), sheetMargins.top(), width/3., height/3.), - QString::number(nbRow * nbCol)); + QFont font = OptimizeFontSizeToFitTextInRect( + painter, QRectF(sheetMargins.left(), sheetMargins.top(), width / 3., height / 3.), + QString::number(nbRow * nbCol)); const qreal scale = SceneScale(scene()); - auto PaintTileNumber = [painter, layout, nbCol, font, scale] - (const QRectF &img, int i, int j) + auto PaintTileNumber = [painter, layout, nbCol, font, scale](const QRectF &img, int i, int j) { if (layout->LayoutSettings().GetShowTileNumber() && font.pointSizeF() * scale >= minTextFontSize) { @@ -211,30 +208,30 @@ void VPGraphicsTileGrid::paint(QPainter *painter, const QStyleOptionGraphicsItem painter->setFont(font); QPen pen = painter->pen(); - pen.setColor(Qt::black); + pen.setColor(VSceneStylesheet::ManualLayoutStyle().SheetTileNumberColor()); painter->setPen(pen); - painter->drawText(img, Qt::AlignCenter, QString::number(j*nbCol + i+1)); + painter->drawText(img, Qt::AlignCenter, QString::number(j * nbCol + i + 1)); painter->restore(); } }; - for(int j=0;j<=nbRow;++j) + for (int j = 0; j <= nbRow; ++j) { // horizontal lines - painter->drawLine(QPointF(sheetMargins.left(), sheetMargins.top()+j*height), - QPointF(sheetMargins.left()+nbCol*width, sheetMargins.top()+j*height)); + painter->drawLine(QPointF(sheetMargins.left(), sheetMargins.top() + j * height), + QPointF(sheetMargins.left() + nbCol * width, sheetMargins.top() + j * height)); - for(int i=0;i<=nbCol;++i) + for (int i = 0; i <= nbCol; ++i) { // vertical lines - painter->drawLine(QPointF(sheetMargins.left()+i*width, sheetMargins.top()), - QPointF(sheetMargins.left()+i*width, sheetMargins.top() + nbRow*height)); + painter->drawLine(QPointF(sheetMargins.left() + i * width, sheetMargins.top()), + QPointF(sheetMargins.left() + i * width, sheetMargins.top() + nbRow * height)); if (j < nbRow && i < nbCol) { - QRectF img(sheetMargins.left()+i*width, sheetMargins.top()+j*height, width, height); + QRectF img(sheetMargins.left() + i * width, sheetMargins.top() + j * height, width, height); PaintWatermark(img); PaintTileNumber(img, i, j); diff --git a/src/app/puzzle/share/resources/puzzleicon.qrc b/src/app/puzzle/share/resources/puzzleicon.qrc index ac9af2aac..95b18d4bf 100644 --- a/src/app/puzzle/share/resources/puzzleicon.qrc +++ b/src/app/puzzle/share/resources/puzzleicon.qrc @@ -2,25 +2,30 @@ puzzleicon/64x64/logo.png puzzleicon/64x64/iconLayout.png - puzzleicon/64x64/iconCurrentPiece.png puzzleicon/64x64/iconLayers.png - puzzleicon/64x64/iconTiles.png puzzleicon/64x64/iconProperties.png puzzleicon/svg/icon_scissors.svg puzzleicon/svg/icon_scissors_vertical.svg puzzleicon/svg/icon_scissors_horizontal.svg - puzzleicon/16x16/roll.png - puzzleicon/16x16/template.png - puzzleicon/svg/icon_rotate_90_anticlockwise.svg - puzzleicon/svg/icon_rotate_90_clockwise.svg - puzzleicon/svg/icon_rotate_grainline_horizontal.svg - puzzleicon/svg/icon_rotate_grainline_vertical.svg - puzzleicon/32X32/horizontal_grainline.png - puzzleicon/32X32/horizontal_grainline@2x.png - puzzleicon/32X32/vertical_grainline.png - puzzleicon/32X32/vertical_grainline@2x.png - puzzleicon/svg/no_watermark_image.svg puzzleicon/svg/watermark_placeholder.svg puzzleicon/svg/watermark_placeholder_grayscale.svg + puzzleicon/light/64x64/iconCurrentPiece@2x.png + puzzleicon/light/64x64/iconCurrentPiece.png + puzzleicon/dark/64x64/iconCurrentPiece@2x.png + puzzleicon/dark/64x64/iconCurrentPiece.png + puzzleicon/light/64x64/iconTiles@2x.png + puzzleicon/light/64x64/iconTiles.png + puzzleicon/dark/64x64/iconTiles@2x.png + puzzleicon/dark/64x64/iconTiles.png + puzzleicon/svg/light/no_watermark_image.svg + puzzleicon/svg/dark/no_watermark_image.svg + puzzleicon/light/32x32/horizontal_grainline@2x.png + puzzleicon/light/32x32/horizontal_grainline.png + puzzleicon/light/32x32/vertical_grainline@2x.png + puzzleicon/light/32x32/vertical_grainline.png + puzzleicon/dark/32x32/vertical_grainline@2x.png + puzzleicon/dark/32x32/vertical_grainline.png + puzzleicon/dark/32x32/horizontal_grainline.png + puzzleicon/dark/32x32/horizontal_grainline@2x.png diff --git a/src/app/puzzle/share/resources/puzzleicon/16x16/roll.png b/src/app/puzzle/share/resources/puzzleicon/16x16/roll.png deleted file mode 100644 index 49c30dff1..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/16x16/roll.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/16x16/template.png b/src/app/puzzle/share/resources/puzzleicon/16x16/template.png deleted file mode 100644 index c29755d29..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/16x16/template.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/32X32/horizontal_grainline.png b/src/app/puzzle/share/resources/puzzleicon/32X32/horizontal_grainline.png deleted file mode 100644 index 09e0e5ddc..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/32X32/horizontal_grainline.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/32X32/horizontal_grainline@2x.png b/src/app/puzzle/share/resources/puzzleicon/32X32/horizontal_grainline@2x.png deleted file mode 100644 index 4957393e3..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/32X32/horizontal_grainline@2x.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/32X32/vertical_grainline.png b/src/app/puzzle/share/resources/puzzleicon/32X32/vertical_grainline.png deleted file mode 100644 index f332842f6..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/32X32/vertical_grainline.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/32X32/vertical_grainline@2x.png b/src/app/puzzle/share/resources/puzzleicon/32X32/vertical_grainline@2x.png deleted file mode 100644 index ccfd215a4..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/32X32/vertical_grainline@2x.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/cursorRotate.png b/src/app/puzzle/share/resources/puzzleicon/64x64/cursorRotate.png deleted file mode 100644 index 831f77ed0..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/64x64/cursorRotate.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/cursorRotate@2x.png b/src/app/puzzle/share/resources/puzzleicon/64x64/cursorRotate@2x.png deleted file mode 100644 index 4cb07973b..000000000 Binary files a/src/app/puzzle/share/resources/puzzleicon/64x64/cursorRotate@2x.png and /dev/null differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/32x32/horizontal_grainline.png b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/horizontal_grainline.png new file mode 100644 index 000000000..80fab80c8 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/horizontal_grainline.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/32x32/horizontal_grainline@2x.png b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/horizontal_grainline@2x.png new file mode 100644 index 000000000..7e143af8d Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/horizontal_grainline@2x.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/32x32/vertical_grainline.png b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/vertical_grainline.png new file mode 100644 index 000000000..be1aab5c3 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/vertical_grainline.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/32x32/vertical_grainline@2x.png b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/vertical_grainline@2x.png new file mode 100644 index 000000000..f9b82be58 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/32x32/vertical_grainline@2x.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconCurrentPiece.png b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconCurrentPiece.png new file mode 100644 index 000000000..62c810731 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconCurrentPiece.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconCurrentPiece@2x.png b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconCurrentPiece@2x.png new file mode 100644 index 000000000..2816c2e2e Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconCurrentPiece@2x.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconTiles.png b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconTiles.png new file mode 100644 index 000000000..70b7207ac Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconTiles.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconTiles@2x.png b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconTiles@2x.png new file mode 100644 index 000000000..ad4ff1286 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/dark/64x64/iconTiles@2x.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/light/32x32/horizontal_grainline.png b/src/app/puzzle/share/resources/puzzleicon/light/32x32/horizontal_grainline.png new file mode 100644 index 000000000..5eab49f92 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/light/32x32/horizontal_grainline.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/light/32x32/horizontal_grainline@2x.png b/src/app/puzzle/share/resources/puzzleicon/light/32x32/horizontal_grainline@2x.png new file mode 100644 index 000000000..27faede82 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/light/32x32/horizontal_grainline@2x.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/light/32x32/vertical_grainline.png b/src/app/puzzle/share/resources/puzzleicon/light/32x32/vertical_grainline.png new file mode 100644 index 000000000..8ddc7ee86 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/light/32x32/vertical_grainline.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/light/32x32/vertical_grainline@2x.png b/src/app/puzzle/share/resources/puzzleicon/light/32x32/vertical_grainline@2x.png new file mode 100644 index 000000000..392da9a26 Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/light/32x32/vertical_grainline@2x.png differ diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/iconCurrentPiece.png b/src/app/puzzle/share/resources/puzzleicon/light/64x64/iconCurrentPiece.png similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/64x64/iconCurrentPiece.png rename to src/app/puzzle/share/resources/puzzleicon/light/64x64/iconCurrentPiece.png diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/iconCurrentPiece@2x.png b/src/app/puzzle/share/resources/puzzleicon/light/64x64/iconCurrentPiece@2x.png similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/64x64/iconCurrentPiece@2x.png rename to src/app/puzzle/share/resources/puzzleicon/light/64x64/iconCurrentPiece@2x.png diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/iconTiles.png b/src/app/puzzle/share/resources/puzzleicon/light/64x64/iconTiles.png similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/64x64/iconTiles.png rename to src/app/puzzle/share/resources/puzzleicon/light/64x64/iconTiles.png diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/iconTiles@2x.png b/src/app/puzzle/share/resources/puzzleicon/light/64x64/iconTiles@2x.png similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/64x64/iconTiles@2x.png rename to src/app/puzzle/share/resources/puzzleicon/light/64x64/iconTiles@2x.png diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/dark/horizontal_grainline.svg b/src/app/puzzle/share/resources/puzzleicon/svg/dark/horizontal_grainline.svg new file mode 100644 index 000000000..d8c98d0ff --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/dark/horizontal_grainline.svg @@ -0,0 +1,56 @@ + + + + + + + up right down left sign + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/dark/icon_current_piece.svg b/src/app/puzzle/share/resources/puzzleicon/svg/dark/icon_current_piece.svg new file mode 100644 index 000000000..48b548bd8 --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/dark/icon_current_piece.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/dark/icon_tiles.svg b/src/app/puzzle/share/resources/puzzleicon/svg/dark/icon_tiles.svg new file mode 100644 index 000000000..d3a5abedf --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/dark/icon_tiles.svg @@ -0,0 +1,94 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/dark/no_watermark_image.svg b/src/app/puzzle/share/resources/puzzleicon/svg/dark/no_watermark_image.svg new file mode 100644 index 000000000..2ca63cea1 --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/dark/no_watermark_image.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/dark/vertical_grainline.svg b/src/app/puzzle/share/resources/puzzleicon/svg/dark/vertical_grainline.svg new file mode 100644 index 000000000..0fb0ba395 --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/dark/vertical_grainline.svg @@ -0,0 +1,56 @@ + + + + + + + up right down left sign + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_grainline_horizontal.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_grainline_horizontal.svg deleted file mode 100644 index d0609895f..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_grainline_horizontal.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_grainline_vertical.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_grainline_vertical.svg deleted file mode 100644 index 22c7e42f6..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_grainline_vertical.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_landscape.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_landscape.svg deleted file mode 100644 index 444a54033..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_landscape.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_90_anticlockwise.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_90_anticlockwise.svg deleted file mode 100644 index 47851199d..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_90_anticlockwise.svg +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - 90 - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_90_clockwise.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_90_clockwise.svg deleted file mode 100644 index d2effc39a..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_90_clockwise.svg +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - 90 - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_grainline_horizontal.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_grainline_horizontal.svg deleted file mode 100644 index 4509e66c8..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_grainline_horizontal.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_grainline_vertical.svg b/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_grainline_vertical.svg deleted file mode 100644 index 34e32c7a7..000000000 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_rotate_grainline_vertical.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/light/horizontal_grainline.svg b/src/app/puzzle/share/resources/puzzleicon/svg/light/horizontal_grainline.svg new file mode 100644 index 000000000..0bec521fc --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/light/horizontal_grainline.svg @@ -0,0 +1,56 @@ + + + + + + + up right down left sign + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_current_piece.svg b/src/app/puzzle/share/resources/puzzleicon/svg/light/icon_current_piece.svg similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/svg/icon_current_piece.svg rename to src/app/puzzle/share/resources/puzzleicon/svg/light/icon_current_piece.svg diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_portrait.svg b/src/app/puzzle/share/resources/puzzleicon/svg/light/icon_layers.svg similarity index 67% rename from src/app/puzzle/share/resources/puzzleicon/svg/icon_portrait.svg rename to src/app/puzzle/share/resources/puzzleicon/svg/light/icon_layers.svg index cf7971065..ab1385c2d 100644 --- a/src/app/puzzle/share/resources/puzzleicon/svg/icon_portrait.svg +++ b/src/app/puzzle/share/resources/puzzleicon/svg/light/icon_layers.svg @@ -14,7 +14,7 @@ viewBox="0 0 33.866666 33.866668" version="1.1" id="svg8" - sodipodi:docname="icon_portrait.svg" + sodipodi:docname="icon_layers.svg" inkscape:export-filename="/home/ronan/Desktop/icon_layout.png" inkscape:export-xdpi="48" inkscape:export-ydpi="48" @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="3.959798" - inkscape:cx="74.673459" - inkscape:cy="45.737629" + inkscape:zoom="0.7" + inkscape:cx="-330.80339" + inkscape:cy="-397.46436" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -48,7 +48,7 @@ image/svg+xml - + @@ -57,19 +57,26 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-263.13332)"> - - + width="17.856504" + height="17.856504" + x="0.59674788" + y="263.73007" /> + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/icon_tiles.svg b/src/app/puzzle/share/resources/puzzleicon/svg/light/icon_tiles.svg similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/svg/icon_tiles.svg rename to src/app/puzzle/share/resources/puzzleicon/svg/light/icon_tiles.svg diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/no_watermark_image.svg b/src/app/puzzle/share/resources/puzzleicon/svg/light/no_watermark_image.svg similarity index 100% rename from src/app/puzzle/share/resources/puzzleicon/svg/no_watermark_image.svg rename to src/app/puzzle/share/resources/puzzleicon/svg/light/no_watermark_image.svg diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/light/vertical_grainline.svg b/src/app/puzzle/share/resources/puzzleicon/svg/light/vertical_grainline.svg new file mode 100644 index 000000000..dbfc6bc64 --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/light/vertical_grainline.svg @@ -0,0 +1,56 @@ + + + + + + + up right down left sign + + + + diff --git a/src/app/puzzle/share/resources/puzzleicon/svg/roll.svg b/src/app/puzzle/share/resources/puzzleicon/svg/roll.svg new file mode 100644 index 000000000..1055789f9 --- /dev/null +++ b/src/app/puzzle/share/resources/puzzleicon/svg/roll.svg @@ -0,0 +1,49 @@ + + + + diff --git a/src/app/puzzle/vpmainwindow.cpp b/src/app/puzzle/vpmainwindow.cpp index e3d034d5c..7de08866c 100644 --- a/src/app/puzzle/vpmainwindow.cpp +++ b/src/app/puzzle/vpmainwindow.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -39,10 +40,12 @@ #include #include #include +#include #include "../ifc/exception/vexception.h" #include "../ifc/xml/vlayoutconverter.h" #include "../vdxf/libdxfrw/drw_base.h" +#include "../vganalytics/vganalytics.h" #include "../vlayout/dialogs/watermarkwindow.h" #include "../vlayout/vlayoutexporter.h" #include "../vlayout/vprintlayout.h" @@ -51,11 +54,13 @@ #include "../vmisc/dialogs/dialogselectlanguage.h" #include "../vmisc/lambdaconstants.h" #include "../vmisc/projectversion.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vsysexits.h" #include "../vwidgets/vmaingraphicsscene.h" #include "dialogs/dialogpuzzlepreferences.h" #include "dialogs/dialogsavemanuallayout.h" #include "dialogs/vpdialogabout.h" +#include "layout/vppiece.h" #include "layout/vpsheet.h" #include "ui_vpmainwindow.h" #include "undocommands/vpundoaddsheet.h" @@ -63,14 +68,13 @@ #include "undocommands/vpundopiecerotate.h" #include "undocommands/vpundopiecezvaluemove.h" #include "vpapplication.h" +#include "vptilefactory.h" #include "xml/vplayoutfilereader.h" #include "xml/vplayoutfilewriter.h" + #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vganalytics/vganalytics.h" -#include "layout/vppiece.h" -#include "vptilefactory.h" #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0) #include "../vmisc/backport/qscopeguard.h" @@ -78,10 +82,6 @@ #include #endif -#include -#include -#include - QT_WARNING_PUSH QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes") QT_WARNING_DISABLE_INTEL(1418) @@ -1715,11 +1715,9 @@ auto VPMainWindow::MaybeSave() -> bool // TODO: Implement maybe save check if (this->isWindowModified()) { - QScopedPointer messageBox(new QMessageBox(tr("Unsaved changes"), - tr("Layout has been modified.\n" - "Do you want to save your changes?"), - QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, - QMessageBox::Cancel, this, Qt::Sheet)); + QScopedPointer messageBox(new QMessageBox( + tr("Unsaved changes"), tr("Layout has been modified. Do you want to save your changes?"), + QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel, this, Qt::Sheet)); messageBox->setDefaultButton(QMessageBox::Yes); messageBox->setEscapeButton(QMessageBox::Cancel); @@ -2758,7 +2756,7 @@ auto VPMainWindow::DrawTilesScheme(QPrinter *printer, QPainter *painter, const V if (watermarkData.showImage && not watermarkData.path.isEmpty()) { VPTileFactory::PaintWatermarkImage(painter, target, watermarkData, - m_layout->LayoutSettings().WatermarkPath()); + m_layout->LayoutSettings().WatermarkPath(), false); } if (watermarkData.showText && not watermarkData.text.isEmpty()) @@ -3346,6 +3344,29 @@ void VPMainWindow::RotatePieces() } } +//--------------------------------------------------------------------------------------------------------------------- +void VPMainWindow::InitIcons() +{ + const QString resource = QStringLiteral("puzzleicon"); + + auto SetTabIcon = [resource, this](QWidget *tab, const QString &iconName) + { + const int index = ui->tabWidgetProperties->indexOf(tab); + if (index != -1) + { + ui->tabWidgetProperties->setTabIcon(index, VTheme::GetIconResource(resource, iconName)); + } + }; + + SetTabIcon(ui->tabCurrentPieceProperty, QStringLiteral("64x64/iconCurrentPiece.png")); + SetTabIcon(ui->tabTilesProperty, QStringLiteral("64x64/iconTiles.png")); + + ui->toolButtonGrainlineHorizontalOrientation->setIcon( + VTheme::GetIconResource(resource, QStringLiteral("32x32/horizontal_grainline.png"))); + ui->toolButtonGrainlineVerticalOrientation->setIcon( + VTheme::GetIconResource(resource, QStringLiteral("32x32/vertical_grainline.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void VPMainWindow::on_actionNew_triggered() // NOLINT(readability-convert-member-functions-to-static) { @@ -3396,6 +3417,11 @@ void VPMainWindow::changeEvent(QEvent *event) UpdateWindowTitle(); } + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + } + // remember to call base class implementation QMainWindow::changeEvent(event); } diff --git a/src/app/puzzle/vpmainwindow.h b/src/app/puzzle/vpmainwindow.h index 87dcde859..ff6b7943b 100644 --- a/src/app/puzzle/vpmainwindow.h +++ b/src/app/puzzle/vpmainwindow.h @@ -28,24 +28,24 @@ #ifndef VPMAINWINDOW_H #define VPMAINWINDOW_H +#include #include #include -#include #include -#include "../vmisc/def.h" -#include "carousel/vpcarrousel.h" -#include "scene/vpmaingraphicsview.h" -#include "layout/vplayout.h" -#include "../vlayout/vlayoutpiece.h" -#include "vpcommandline.h" -#include "../vwidgets/vabstractmainwindow.h" -#include "../vmisc/vlockguard.h" #include "../vlayout/dialogs/vabstractlayoutdialog.h" +#include "../vlayout/vlayoutpiece.h" +#include "../vmisc/def.h" +#include "../vmisc/vlockguard.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "carousel/vpcarrousel.h" +#include "layout/vplayout.h" +#include "scene/vpmaingraphicsview.h" +#include "vpcommandline.h" namespace Ui { - class VPMainWindow; +class VPMainWindow; } class QFileSystemWatcher; @@ -70,7 +70,7 @@ public: * @param path path to layout * @return true if success */ - auto LoadFile(const QString& path) -> bool; + auto LoadFile(const QString &path) -> bool; void LayoutWasSaved(bool saved); void SetCurrentFile(const QString &fileName); @@ -106,7 +106,7 @@ public slots: protected: void closeEvent(QCloseEvent *event) override; - void changeEvent(QEvent* event) override; + void changeEvent(QEvent *event) override; auto RecentFileList() const -> QStringList override; private slots: @@ -122,14 +122,14 @@ private slots: * triggered. * The slot is automatically connected through name convention. */ - bool on_actionSave_triggered(); //NOLINT(modernize-use-trailing-return-type) + bool on_actionSave_triggered(); // NOLINT(modernize-use-trailing-return-type) /** * @brief on_actionSaveAs_triggered When the menu action File > Save As * is triggered. * The slot is automatically connected through name convention. */ - bool on_actionSaveAs_triggered(); //NOLINT(modernize-use-trailing-return-type) + bool on_actionSaveAs_triggered(); // NOLINT(modernize-use-trailing-return-type) /** * @brief on_actionImportRawLayout_triggered When the menu action @@ -284,8 +284,8 @@ private slots: #if defined(Q_OS_MAC) void AboutToShowDockMenu(); -#endif //defined(Q_OS_MAC) - +#endif // defined(Q_OS_MAC) + void AskDefaultSettings(); void HorizontalScaleChanged(double value); @@ -315,9 +315,9 @@ private: /** * @brief mouseCoordinate pointer to label who show mouse coordinate. */ - QLabel* m_mouseCoordinate{nullptr}; + QLabel *m_mouseCoordinate{nullptr}; - QLabel* m_statusLabel{nullptr}; + QLabel *m_statusLabel{nullptr}; QString curFile{}; @@ -342,9 +342,9 @@ private: struct VPLayoutPrinterPage { VPSheetPtr sheet{}; - bool tilesScheme{false}; - int tileRow{-1}; - int tileCol{-1}; + bool tilesScheme{false}; + int tileRow{-1}; + int tileCol{-1}; }; /** @@ -425,9 +425,9 @@ private: void SetPropertyTabTilesData(); /** - * @brief SetPropertyTabLayoutData Sets the values of UI elements - * in the Layout Tab to the values saved in m_layout - */ + * @brief SetPropertyTabLayoutData Sets the values of UI elements + * in the Layout Tab to the values saved in m_layout + */ void SetPropertyTabLayoutData(); void ReadSettings(); @@ -473,7 +473,7 @@ private: void ExportData(const VPExportData &data); static void ExportApparelLayout(const VPExportData &data, const QVector &details, const QString &name, - const QSize &size) ; + const QSize &size); void ExportFlatLayout(const VPExportData &data); void ExportScene(const VPExportData &data); static void ExportUnifiedPdfFile(const VPExportData &data); @@ -494,7 +494,7 @@ private: auto CheckSuperpositionOfPieces(const VPPiecePtr &piece, bool &pieceSuperpositionChecked) -> bool; void PrintLayoutSheets(QPrinter *printer, const QList &sheets); - static auto PrintLayoutSheetPage(QPrinter *printer, QPainter &painter, const VPSheetPtr& sheet) -> bool; + static auto PrintLayoutSheetPage(QPrinter *printer, QPainter &painter, const VPSheetPtr &sheet) -> bool; void PrintLayoutTiledSheets(QPrinter *printer, const QList &sheets); auto PrepareLayoutTilePages(const QList &sheets) -> QVector; auto PrintLayoutTiledSheetPage(QPrinter *printer, QPainter &painter, const VPLayoutPrinterPage &page, @@ -509,6 +509,8 @@ private: void TranslatePieceRelatively(const VPPiecePtr &piece, const QRectF &rect, vsizetype selectedPiecesCount, qreal dx, qreal dy); void RotatePieces(); + + void InitIcons(); }; #endif // VPMAINWINDOW_H diff --git a/src/app/puzzle/vpmainwindow.ui b/src/app/puzzle/vpmainwindow.ui index 6e110558c..f54e7f8ee 100644 --- a/src/app/puzzle/vpmainwindow.ui +++ b/src/app/puzzle/vpmainwindow.ui @@ -233,7 +233,7 @@ - :/puzzleicon/64x64/iconCurrentPiece.png:/puzzleicon/64x64/iconCurrentPiece.png + :/puzzleicon/light/64x64/iconCurrentPiece.png:/puzzleicon/light/64x64/iconCurrentPiece.png @@ -870,7 +870,7 @@ - ... + @@ -893,7 +893,7 @@ - ... + @@ -950,11 +950,11 @@ Force the grainline orientation to always be horizontal - ... + - :/puzzleicon/32X32/horizontal_grainline.png:/puzzleicon/32X32/horizontal_grainline.png + :/puzzleicon/light/32x32/horizontal_grainline.png:/puzzleicon/light/32x32/horizontal_grainline.png @@ -973,11 +973,11 @@ Force the grainline orientation to always be vertical - ... + - :/puzzleicon/32X32/vertical_grainline.png:/puzzleicon/32X32/vertical_grainline.png + :/puzzleicon/light/32x32/vertical_grainline.png:/puzzleicon/light/32x32/vertical_grainline.png @@ -1203,7 +1203,7 @@ - :/puzzleicon/64x64/iconTiles.png:/puzzleicon/64x64/iconTiles.png + :/puzzleicon/light/64x64/iconTiles.png:/puzzleicon/light/64x64/iconTiles.png @@ -1316,7 +1316,7 @@ - ... + @@ -1339,7 +1339,7 @@ - ... + @@ -1857,7 +1857,7 @@ - ... + @@ -2427,8 +2427,8 @@ + - diff --git a/src/app/puzzle/vptilefactory.cpp b/src/app/puzzle/vptilefactory.cpp index 2037bce6f..b426732e5 100644 --- a/src/app/puzzle/vptilefactory.cpp +++ b/src/app/puzzle/vptilefactory.cpp @@ -10,6 +10,7 @@ #include "../vwidgets/vmaingraphicsscene.h" #include "layout/vplayout.h" #include "layout/vpsheet.h" +#include "theme/vtheme.h" #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #include "../vmisc/diagnostic.h" @@ -390,7 +391,7 @@ void VPTileFactory::DrawWatermark(QPainter *painter) const if (m_watermarkData.showImage && not m_watermarkData.path.isEmpty()) { - PaintWatermarkImage(painter, img, m_watermarkData, layout->LayoutSettings().WatermarkPath()); + PaintWatermarkImage(painter, img, m_watermarkData, layout->LayoutSettings().WatermarkPath(), false); } if (m_watermarkData.showText && not m_watermarkData.text.isEmpty()) @@ -690,16 +691,25 @@ void VPTileFactory::PaintWatermarkText(QPainter *painter, const QRectF &img, con //--------------------------------------------------------------------------------------------------------------------- void VPTileFactory::PaintWatermarkImage(QPainter *painter, const QRectF &img, const VWatermarkData &watermarkData, - const QString &watermarkPath, qreal xScale, qreal yScale) + const QString &watermarkPath, bool folowColorScheme, qreal xScale, qreal yScale) { SCASSERT(painter != nullptr) const qreal opacity = watermarkData.opacity / 100.; - auto BrokenImage = [img, watermarkData, watermarkPath, opacity]() + auto BrokenImage = [img, watermarkData, watermarkPath, opacity, folowColorScheme]() { + QString colorScheme = QStringLiteral("light"); + + if (folowColorScheme) + { + colorScheme = + (VTheme::ColorSheme() == VColorSheme::Light ? QStringLiteral("light") : QStringLiteral("dark")); + } + QPixmap watermark; - QString imagePath = QStringLiteral("puzzle=path%1+opacity%2_broken") - .arg(AbsoluteMPath(watermarkPath, watermarkData.path), QString::number(opacity)); + QString imagePath = + QStringLiteral("puzzle=colorScheme%1+path%2+opacity%3_broken") + .arg(colorScheme, AbsoluteMPath(watermarkPath, watermarkData.path), QString::number(opacity)); if (not QPixmapCache::find(imagePath, &watermark)) { @@ -712,7 +722,7 @@ void VPTileFactory::PaintWatermarkImage(QPainter *painter, const QRectF &img, co QPainter imagePainter(&watermark); imagePainter.setOpacity(opacity); - svgRenderer->load(QStringLiteral("://puzzleicon/svg/no_watermark_image.svg")); + svgRenderer->load(QStringLiteral("://puzzleicon/svg/%1/no_watermark_image.svg").arg(colorScheme)); svgRenderer->render(&imagePainter, imageRect); QPixmapCache::insert(imagePath, watermark); diff --git a/src/app/puzzle/vptilefactory.h b/src/app/puzzle/vptilefactory.h index 9afe528b4..d05d072dd 100644 --- a/src/app/puzzle/vptilefactory.h +++ b/src/app/puzzle/vptilefactory.h @@ -102,7 +102,8 @@ public: static void PaintWatermarkText(QPainter *painter, const QRectF &img, const VWatermarkData &watermarkData, qreal xScale = 1.0, qreal yScale = 1.0); static void PaintWatermarkImage(QPainter *painter, const QRectF &img, const VWatermarkData &watermarkData, - const QString &watermarkPath, qreal xScale = 1.0, qreal yScale = 1.0); + const QString &watermarkPath, bool folowColorScheme, qreal xScale = 1.0, + qreal yScale = 1.0); private: // cppcheck-suppress unknownMacro diff --git a/src/app/tape/dialogs/dialognewmeasurements.ui b/src/app/tape/dialogs/dialognewmeasurements.ui index 16835baee..312563fd5 100644 --- a/src/app/tape/dialogs/dialognewmeasurements.ui +++ b/src/app/tape/dialogs/dialognewmeasurements.ui @@ -9,8 +9,8 @@ 0 0 - 220 - 104 + 342 + 107 @@ -36,11 +36,14 @@ - + 0 0 + + QComboBox::AdjustToContents + @@ -53,11 +56,14 @@ - + 0 0 + + QComboBox::AdjustToContents + diff --git a/src/app/tape/dialogs/dialogrestrictdimension.cpp b/src/app/tape/dialogs/dialogrestrictdimension.cpp index c0b633976..3eaa0b69f 100644 --- a/src/app/tape/dialogs/dialogrestrictdimension.cpp +++ b/src/app/tape/dialogs/dialogrestrictdimension.cpp @@ -49,7 +49,7 @@ auto FilterByMinimum(const QVector &base, qreal restriction) -> QVector filtered; filtered.reserve(base.size()); - for(const auto &b : base) + for (const auto &b : base) { if (b > restriction || VFuzzyComparePossibleNulls(b, restriction)) { @@ -69,7 +69,7 @@ auto FilterByMaximum(const QVector &base, qreal restriction) -> QVector filtered; filtered.reserve(base.size()); - for(const auto &b : base) + for (const auto &b : base) { if (b < restriction || VFuzzyComparePossibleNulls(b, restriction)) { @@ -100,6 +100,8 @@ void InitMinMax(qreal &min, qreal &max, const MeasurementDimension_p &dimension, void SetCellIcon(QTableWidgetItem *item, const QVector &validRows, qreal rowValue, qreal columnValue, const VDimensionRestriction &restriction, qreal min, qreal max) { + const QIcon closeIcon = QIcon(QStringLiteral("://icon/24x24/close.png")); + if (VFuzzyContains(validRows, rowValue)) { const bool leftRestriction = columnValue > min || VFuzzyComparePossibleNulls(columnValue, min); @@ -107,32 +109,32 @@ void SetCellIcon(QTableWidgetItem *item, const QVector &validRows, qreal if (leftRestriction && rightRestriction) { - item->setIcon(QIcon(VFuzzyContains(restriction.GetExcludeValues(), columnValue) - ? QStringLiteral("://icon/24x24/close.png") - : QStringLiteral("://icon/24x24/star.png"))); + item->setIcon(VFuzzyContains(restriction.GetExcludeValues(), columnValue) + ? closeIcon + : QIcon(QStringLiteral("://icon/24x24/star.png"))); } else { - item->setIcon(QIcon(QStringLiteral("://icon/24x24/close.png"))); + item->setIcon(closeIcon); } } else { - item->setIcon(QIcon(QStringLiteral("://icon/24x24/close.png"))); + item->setIcon(closeIcon); Qt::ItemFlags flags = item->flags(); flags &= ~(Qt::ItemIsEnabled); item->setFlags(flags); } } -} // namespace +} // namespace //--------------------------------------------------------------------------------------------------------------------- DialogRestrictDimension::DialogRestrictDimension(const QList &dimensions, const QMap &restrictions, RestrictDimension restrictionType, bool fullCircumference, - QWidget *parent) : - QDialog(parent), + QWidget *parent) + : QDialog(parent), ui(new Ui::DialogRestrictDimension), m_restrictionType(restrictionType), m_fullCircumference(fullCircumference), @@ -185,7 +187,7 @@ void DialogRestrictDimension::changeEvent(QEvent *event) { MeasurementDimension_p dimension = m_dimensions.at(index); - name->setText(dimension->Name()+QChar(':')); + name->setText(dimension->Name() + QChar(':')); name->setToolTip(VAbstartMeasurementDimension::DimensionToolTip(dimension, m_fullCircumference)); InitDimensionGradation(dimension, control); @@ -449,7 +451,7 @@ void DialogRestrictDimension::InitDimensionsBaseValues() if (m_dimensions.size() > index) { MeasurementDimension_p dimension = m_dimensions.at(index); - name->setText(dimension->Name()+QChar(':')); + name->setText(dimension->Name() + QChar(':')); name->setToolTip(VAbstartMeasurementDimension::DimensionToolTip(dimension, m_fullCircumference)); InitDimensionGradation(dimension, control); @@ -614,16 +616,16 @@ void DialogRestrictDimension::RefreshTable() if (m_restrictionType == RestrictDimension::First) { - for(int column=0; column < basesColumn.size(); ++column) + for (int column = 0; column < basesColumn.size(); ++column) { AddCell(0, column, 0, basesColumn.at(column)); } } else { - for(int row=0; row < basesRow.size(); ++row) + for (int row = 0; row < basesRow.size(); ++row) { - for(int column=0; column < basesColumn.size(); ++column) + for (int column = 0; column < basesColumn.size(); ++column) { AddCell(row, column, basesRow.at(row), basesColumn.at(column)); } @@ -765,8 +767,8 @@ void DialogRestrictDimension::FillBase(double base, const MeasurementDimension_p } //--------------------------------------------------------------------------------------------------------------------- -auto DialogRestrictDimension::FillDimensionXBases(const QVector &bases, - const MeasurementDimension_p &dimension) -> QStringList +auto DialogRestrictDimension::FillDimensionXBases(const QVector &bases, const MeasurementDimension_p &dimension) + -> QStringList { const bool showUnits = dimension->IsBodyMeasurement() || dimension->Type() == MeasurementDimension::X; const QString units = showUnits ? UnitsToStr(dimension->Units(), true) : QString(); @@ -774,7 +776,7 @@ auto DialogRestrictDimension::FillDimensionXBases(const QVector &bases, QStringList labels; - for(auto base : bases) + for (auto base : bases) { if (VFuzzyContains(dimensionLabels, base) && not VFuzzyValue(dimensionLabels, base).isEmpty()) { @@ -799,7 +801,7 @@ auto DialogRestrictDimension::FillDimensionYBases(const QVector &bases, QStringList labels; - for(auto base : bases) + for (auto base : bases) { if (VFuzzyContains(dimensionLabels, base) && not VFuzzyValue(dimensionLabels, base).isEmpty()) { @@ -809,7 +811,7 @@ auto DialogRestrictDimension::FillDimensionYBases(const QVector &bases, { if (dimension->IsBodyMeasurement()) { - labels.append(QStringLiteral("%1 %2").arg(m_fullCircumference ? base*2 : base).arg(units)); + labels.append(QStringLiteral("%1 %2").arg(m_fullCircumference ? base * 2 : base).arg(units)); } else { @@ -831,7 +833,7 @@ auto DialogRestrictDimension::FillDimensionWZBases(const QVector &bases, QStringList labels; - for(auto base : bases) + for (auto base : bases) { if (VFuzzyContains(dimensionLabels, base) && not VFuzzyValue(dimensionLabels, base).isEmpty()) { @@ -839,7 +841,7 @@ auto DialogRestrictDimension::FillDimensionWZBases(const QVector &bases, } else { - labels.append(QStringLiteral("%1 %2").arg(m_fullCircumference ? base*2 : base).arg(units)); + labels.append(QStringLiteral("%1 %2").arg(m_fullCircumference ? base * 2 : base).arg(units)); } } @@ -918,7 +920,7 @@ auto DialogRestrictDimension::StartRow() const -> int QVector validRows = DimensionRestrictedValues(dimensionB); - for(int i=0; i < basesRow.size(); ++i) + for (int i = 0; i < basesRow.size(); ++i) { if (VFuzzyContains(validRows, basesRow.at(i))) { diff --git a/src/app/tape/dialogs/dialogtapepreferences.cpp b/src/app/tape/dialogs/dialogtapepreferences.cpp index dcbdc14ed..d80cd745b 100644 --- a/src/app/tape/dialogs/dialogtapepreferences.cpp +++ b/src/app/tape/dialogs/dialogtapepreferences.cpp @@ -28,6 +28,7 @@ #include "dialogtapepreferences.h" #include "../mapplication.h" +#include "../vtools/dialogs/dialogtoolbox.h" #include "configpages/tapepreferencesconfigurationpage.h" #include "configpages/tapepreferencespathpage.h" #include "ui_dialogtapepreferences.h" @@ -120,19 +121,7 @@ void DialogTapePreferences::changeEvent(QEvent *event) if (event->type() == QEvent::PaletteChange) { - QStyle *style = QApplication::style(); - - QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok); - SCASSERT(bOk != nullptr) - bOk->setIcon(style->standardIcon(QStyle::SP_DialogOkButton)); - - QPushButton *bApply = ui->buttonBox->button(QDialogButtonBox::Apply); - SCASSERT(bApply != nullptr) - bApply->setIcon(style->standardIcon(QStyle::SP_DialogApplyButton)); - - QPushButton *bCancel = ui->buttonBox->button(QDialogButtonBox::Cancel); - SCASSERT(bCancel != nullptr) - bCancel->setIcon(style->standardIcon(QStyle::SP_DialogCancelButton)); + InitDialogButtonBoxIcons(ui->buttonBox); } // remember to call base class implementation diff --git a/src/app/tape/main.cpp b/src/app/tape/main.cpp index eac8ccb2a..1263fe1a0 100644 --- a/src/app/tape/main.cpp +++ b/src/app/tape/main.cpp @@ -52,11 +52,12 @@ auto main(int argc, char *argv[]) -> int auto FreeMemory = qScopeGuard([exe_dir] { free(exe_dir); }); #endif // defined(APPIMAGE) && defined(Q_OS_LINUX) - Q_INIT_RESOURCE(tapeicon); // NOLINT - Q_INIT_RESOURCE(icon); // NOLINT - Q_INIT_RESOURCE(schema); // NOLINT - Q_INIT_RESOURCE(flags); // NOLINT - Q_INIT_RESOURCE(breeze); // NOLINT + Q_INIT_RESOURCE(tapeicon); // NOLINT + Q_INIT_RESOURCE(icon); // NOLINT + Q_INIT_RESOURCE(schema); // NOLINT + Q_INIT_RESOURCE(flags); // NOLINT + Q_INIT_RESOURCE(breeze); // NOLINT + Q_INIT_RESOURCE(scenestyle); // NOLINT #if defined(Q_OS_MACX) Q_INIT_RESOURCE(mac_theme); // NOLINT #else diff --git a/src/app/tape/mapplication.cpp b/src/app/tape/mapplication.cpp index 7410c2143..a5b717077 100644 --- a/src/app/tape/mapplication.cpp +++ b/src/app/tape/mapplication.cpp @@ -38,6 +38,7 @@ #include "../vmisc/theme/vapplicationstyle.h" #include "../vmisc/theme/vtheme.h" #include "../vmisc/vsysexits.h" +#include "qtpreprocessorsupport.h" #include "tmainwindow.h" #include "version.h" @@ -611,6 +612,14 @@ auto MApplication::diagramsPath() -> QString return file.absoluteFilePath(); } +#ifdef QBS_BUILD + file = QFileInfo(QCoreApplication::applicationDirPath() + "/../../.." + PKGDATADIR + dPath); + if (file.exists()) + { + return file.absoluteFilePath(); + } +#endif // QBS_BUILD + #if defined(APPIMAGE) && defined(Q_OS_LINUX) /* Fix path to diagrams when run inside AppImage. */ return AppImageRoot() + PKGDATADIR + dPath; diff --git a/src/app/tape/share/resources/tapeicon.qrc b/src/app/tape/share/resources/tapeicon.qrc index e9236fdb2..07890d31d 100644 --- a/src/app/tape/share/resources/tapeicon.qrc +++ b/src/app/tape/share/resources/tapeicon.qrc @@ -3,13 +3,17 @@ tapeicon/64x64/logo.png tapeicon/16x16/info.png tapeicon/16x16/measurement.png - tapeicon/24x24/fx.png tapeicon/24x24/orange_plus.png tapeicon/24x24/red_plus.png tapeicon/24x24/padlock_locked.png tapeicon/24x24/padlock_opened.png - tapeicon/24x24/mannequin.png tapeicon/24x24/separator@2x.png tapeicon/24x24/separator.png + tapeicon/24x24/padlock_locked@2x.png + tapeicon/24x24/padlock_opened@2x.png + tapeicon/light/24x24/mannequin@2x.png + tapeicon/light/24x24/mannequin.png + tapeicon/dark/24x24/mannequin@2x.png + tapeicon/dark/24x24/mannequin.png diff --git a/src/app/tape/share/resources/tapeicon/24x24/fx.png b/src/app/tape/share/resources/tapeicon/24x24/fx.png deleted file mode 100644 index b6bbd4668..000000000 Binary files a/src/app/tape/share/resources/tapeicon/24x24/fx.png and /dev/null differ diff --git a/src/app/tape/share/resources/tapeicon/24x24/mannequin.png b/src/app/tape/share/resources/tapeicon/24x24/mannequin.png deleted file mode 100644 index e86d72787..000000000 Binary files a/src/app/tape/share/resources/tapeicon/24x24/mannequin.png and /dev/null differ diff --git a/src/app/tape/share/resources/tapeicon/24x24/padlock_locked.png b/src/app/tape/share/resources/tapeicon/24x24/padlock_locked.png index a80bd48e7..475f1eb94 100644 Binary files a/src/app/tape/share/resources/tapeicon/24x24/padlock_locked.png and b/src/app/tape/share/resources/tapeicon/24x24/padlock_locked.png differ diff --git a/src/app/tape/share/resources/tapeicon/24x24/padlock_locked@2x.png b/src/app/tape/share/resources/tapeicon/24x24/padlock_locked@2x.png new file mode 100644 index 000000000..4b3a02200 Binary files /dev/null and b/src/app/tape/share/resources/tapeicon/24x24/padlock_locked@2x.png differ diff --git a/src/app/tape/share/resources/tapeicon/24x24/padlock_opened.png b/src/app/tape/share/resources/tapeicon/24x24/padlock_opened.png index a15c405ab..d3205146c 100644 Binary files a/src/app/tape/share/resources/tapeicon/24x24/padlock_opened.png and b/src/app/tape/share/resources/tapeicon/24x24/padlock_opened.png differ diff --git a/src/app/tape/share/resources/tapeicon/24x24/padlock_opened@2x.png b/src/app/tape/share/resources/tapeicon/24x24/padlock_opened@2x.png new file mode 100644 index 000000000..1c7b68aa8 Binary files /dev/null and b/src/app/tape/share/resources/tapeicon/24x24/padlock_opened@2x.png differ diff --git a/src/app/tape/share/resources/tapeicon/dark/24x24/mannequin.png b/src/app/tape/share/resources/tapeicon/dark/24x24/mannequin.png new file mode 100644 index 000000000..6de01542e Binary files /dev/null and b/src/app/tape/share/resources/tapeicon/dark/24x24/mannequin.png differ diff --git a/src/app/tape/share/resources/tapeicon/dark/24x24/mannequin@2x.png b/src/app/tape/share/resources/tapeicon/dark/24x24/mannequin@2x.png new file mode 100644 index 000000000..292bf5083 Binary files /dev/null and b/src/app/tape/share/resources/tapeicon/dark/24x24/mannequin@2x.png differ diff --git a/src/app/tape/share/resources/tapeicon/light/24x24/mannequin.png b/src/app/tape/share/resources/tapeicon/light/24x24/mannequin.png new file mode 100644 index 000000000..3204343de Binary files /dev/null and b/src/app/tape/share/resources/tapeicon/light/24x24/mannequin.png differ diff --git a/src/app/tape/share/resources/tapeicon/light/24x24/mannequin@2x.png b/src/app/tape/share/resources/tapeicon/light/24x24/mannequin@2x.png new file mode 100644 index 000000000..da969e4d8 Binary files /dev/null and b/src/app/tape/share/resources/tapeicon/light/24x24/mannequin@2x.png differ diff --git a/src/app/tape/share/resources/tapeicon/svg/dark/mannequin.svg b/src/app/tape/share/resources/tapeicon/svg/dark/mannequin.svg new file mode 100644 index 000000000..59477e24a --- /dev/null +++ b/src/app/tape/share/resources/tapeicon/svg/dark/mannequin.svg @@ -0,0 +1,43 @@ + + + + diff --git a/src/app/tape/share/resources/tapeicon/svg/light/mannequin.svg b/src/app/tape/share/resources/tapeicon/svg/light/mannequin.svg new file mode 100644 index 000000000..680e4d493 --- /dev/null +++ b/src/app/tape/share/resources/tapeicon/svg/light/mannequin.svg @@ -0,0 +1,41 @@ + + + + diff --git a/src/app/tape/share/resources/tapeicon/svg/padlock_locked.svg b/src/app/tape/share/resources/tapeicon/svg/padlock_locked.svg new file mode 100644 index 000000000..e81eafaa1 --- /dev/null +++ b/src/app/tape/share/resources/tapeicon/svg/padlock_locked.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/tape/share/resources/tapeicon/svg/padlock_opened.svg b/src/app/tape/share/resources/tapeicon/svg/padlock_opened.svg new file mode 100644 index 000000000..af2f2f3cd --- /dev/null +++ b/src/app/tape/share/resources/tapeicon/svg/padlock_opened.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index 4b7663cbe..b9158dff2 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -31,16 +31,21 @@ #include "../ifc/xml/vpatternconverter.h" #include "../ifc/xml/vvitconverter.h" #include "../ifc/xml/vvstconverter.h" +#include "../qmuparser/qmudef.h" +#include "../vganalytics/vganalytics.h" #include "../vmisc/compatibility.h" #include "../vmisc/dialogs/dialogaskcollectstatistic.h" #include "../vmisc/dialogs/dialogexporttocsv.h" +#include "../vmisc/dialogs/dialogselectlanguage.h" #include "../vmisc/qxtcsvmodel.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vsysexits.h" #include "../vpatterndb/calculator.h" #include "../vpatterndb/measurements.h" #include "../vpatterndb/pmsystems.h" #include "../vpatterndb/variables/vmeasurement.h" #include "../vpatterndb/vcontainer.h" +#include "../vtools/dialogs/support/dialogeditwrongformula.h" #include "def.h" #include "dialogs/dialogabouttape.h" #include "dialogs/dialogdimensioncustomnames.h" @@ -51,17 +56,15 @@ #include "dialogs/dialogrestrictdimension.h" #include "dialogs/dialogsetupmultisize.h" #include "dialogs/dialogtapepreferences.h" +#include "mapplication.h" // Should be last because of definning qApp +#include "qtpreprocessorsupport.h" #include "ui_tmainwindow.h" +#include "vlitepattern.h" #include "vtapesettings.h" + #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../qmuparser/qmudef.h" -#include "../vganalytics/vganalytics.h" -#include "../vmisc/dialogs/dialogselectlanguage.h" -#include "../vtools/dialogs/support/dialogeditwrongformula.h" -#include "mapplication.h" // Should be last because of definning qApp -#include "vlitepattern.h" #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include "../vmisc/vtextcodec.h" @@ -267,6 +270,8 @@ TMainWindow::TMainWindow(QWidget *parent) { ui->setupUi(this); + InitIcons(); + VAbstractApplication::VApp()->Settings()->GetOsSeparator() ? setLocale(QLocale()) : setLocale(QLocale::c()); ui->lineEditName->setClearButtonEnabled(true); @@ -800,6 +805,11 @@ void TMainWindow::changeEvent(QEvent *event) } } + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + } + // remember to call base class implementation QMainWindow::changeEvent(event); } @@ -1927,11 +1937,6 @@ void TMainWindow::ShowMDiagram(const QString &name) "

%2. %3

") .arg(DialogMDataBase::ImgTag(number), number, trv->GuiText(name))); } - // This part is very ugly, can't find better way to resize dockWidget. - ui->labelDiagram->adjustSize(); - // And also those 50 px. DockWidget has some border. And i can't find how big it is. - // Can lead to problem in future. - ui->dockWidgetDiagram->setMaximumWidth(ui->labelDiagram->width() + 50); } //--------------------------------------------------------------------------------------------------------------------- @@ -3184,11 +3189,9 @@ auto TMainWindow::MaybeSave() -> bool return true; // Don't ask if file was created without modifications. } - QScopedPointer messageBox(new QMessageBox(tr("Unsaved changes"), - tr("Measurements have been modified.\n" - "Do you want to save your changes?"), - QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, - QMessageBox::Cancel, this, Qt::Sheet)); + QScopedPointer messageBox(new QMessageBox( + tr("Unsaved changes"), tr("Measurements have been modified. Do you want to save your changes?"), + QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel, this, Qt::Sheet)); messageBox->setDefaultButton(QMessageBox::Yes); messageBox->setEscapeButton(QMessageBox::Cancel); @@ -3310,12 +3313,13 @@ void TMainWindow::RefreshTable(bool freshCall) } } - if (freshCall) - { - ui->tableWidget->resizeColumnsToContents(); - ui->tableWidget->resizeRowsToContents(); - } - ui->tableWidget->horizontalHeader()->setStretchLastSection(true); + Q_UNUSED(freshCall) + // if (freshCall) + // { + // ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + // } + // ui->tableWidget->horizontalHeader()->setStretchLastSection(true); ui->tableWidget->blockSignals(false); ui->actionExportToCSV->setEnabled(ui->tableWidget->rowCount() > 0); @@ -3656,15 +3660,8 @@ void TMainWindow::Open(const QString &pathTo, const QString &filter) void TMainWindow::UpdatePadlock(bool ro) { ui->actionReadOnly->setChecked(ro); - if (ro) - { - ui->actionReadOnly->setIcon(QIcon("://tapeicon/24x24/padlock_locked.png")); - } - else - { - ui->actionReadOnly->setIcon(QIcon("://tapeicon/24x24/padlock_opened.png")); - } - + ui->actionReadOnly->setIcon(ro ? QIcon("://tapeicon/24x24/padlock_locked.png") + : QIcon("://tapeicon/24x24/padlock_opened.png")); ui->actionReadOnly->setDisabled(m_mIsReadOnly); } @@ -4378,6 +4375,17 @@ auto TMainWindow::OrderedMeasurments() const -> QMaptoolButtonExpr->setIcon(VTheme::GetIconResource(iconResource, QStringLiteral("24x24/fx.png"))); + + QString tapeIconResource = QStringLiteral("tapeicon"); + ui->actionMeasurementDiagram->setIcon( + VTheme::GetIconResource(tapeIconResource, QStringLiteral("24x24/mannequin.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SetDecimals() { diff --git a/src/app/tape/tmainwindow.h b/src/app/tape/tmainwindow.h index d0b930362..30d4da33b 100644 --- a/src/app/tape/tmainwindow.h +++ b/src/app/tape/tmainwindow.h @@ -31,15 +31,15 @@ #include +#include "../vformat/vmeasurements.h" #include "../vmisc/def.h" #include "../vmisc/vlockguard.h" -#include "../vformat/vmeasurements.h" #include "../vmisc/vtablesearch.h" #include "../vwidgets/vabstractmainwindow.h" namespace Ui { - class TMainWindow; +class TMainWindow; } // namespace Ui class QLabel; @@ -69,7 +69,7 @@ public: protected: void closeEvent(QCloseEvent *event) override; - void changeEvent(QEvent* event) override; + void changeEvent(QEvent *event) override; auto eventFilter(QObject *object, QEvent *event) -> bool override; void ExportToCSVData(const QString &fileName, bool withHeader, int mib, const QChar &separator) final; auto RecentFileList() const -> QStringList override; @@ -83,7 +83,7 @@ private slots: void Preferences(); void ToolBarStyles(); - bool FileSave(); // NOLINT(modernize-use-trailing-return-type) + bool FileSave(); // NOLINT(modernize-use-trailing-return-type) bool FileSaveAs(); // NOLINT(modernize-use-trailing-return-type) void AboutToShowWindowMenu(); void ShowWindow() const; @@ -92,12 +92,12 @@ private slots: #if defined(Q_OS_MAC) void AboutToShowDockMenu(); void OpenAt(QAction *where); -#endif //defined(Q_OS_MAC) +#endif // defined(Q_OS_MAC) void SaveCustomerName(); void SaveEmail(); void SaveGender(int index); - void SaveBirthDate(const QDate & date); + void SaveBirthDate(const QDate &date); void SaveNotes(); void SavePMSystem(int index); @@ -145,27 +145,27 @@ private slots: void EditDimensionLabels(); void DimensionCustomNames(); - + void AskDefaultSettings(); private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(TMainWindow) // NOLINT Ui::TMainWindow *ui; - VMeasurements *m_m{nullptr}; - VContainer *m_data{nullptr}; - Unit m_mUnit{Unit::Cm}; - Unit m_pUnit{Unit::Cm}; + VMeasurements *m_m{nullptr}; + VContainer *m_data{nullptr}; + Unit m_mUnit{Unit::Cm}; + Unit m_pUnit{Unit::Cm}; MeasurementsType m_mType{MeasurementsType::Individual}; - qreal m_currentDimensionA{0}; - qreal m_currentDimensionB{0}; - qreal m_currentDimensionC{0}; - QString m_curFile{}; - QComboBox *m_gradationDimensionA{nullptr}; - QComboBox *m_gradationDimensionB{nullptr}; - QComboBox *m_gradationDimensionC{nullptr}; - QComboBox *m_comboBoxUnits{nullptr}; - int m_formulaBaseHeight; + qreal m_currentDimensionA{0}; + qreal m_currentDimensionB{0}; + qreal m_currentDimensionC{0}; + QString m_curFile{}; + QComboBox *m_gradationDimensionA{nullptr}; + QComboBox *m_gradationDimensionB{nullptr}; + QComboBox *m_gradationDimensionC{nullptr}; + QComboBox *m_comboBoxUnits{nullptr}; + int m_formulaBaseHeight; QSharedPointer> m_lock{nullptr}; QSharedPointer m_search{}; QLabel *m_labelGradationDimensionA{nullptr}; @@ -183,12 +183,12 @@ private: { MultisizeMeasurement() = default; - QString name{}; // NOLINT(misc-non-private-member-variables-in-classes) - qreal base{0}; // NOLINT(misc-non-private-member-variables-in-classes) - qreal shiftA{0}; // NOLINT(misc-non-private-member-variables-in-classes) - qreal shiftB{0}; // NOLINT(misc-non-private-member-variables-in-classes) - qreal shiftC{0}; // NOLINT(misc-non-private-member-variables-in-classes) - QString fullName{}; // NOLINT(misc-non-private-member-variables-in-classes) + QString name{}; // NOLINT(misc-non-private-member-variables-in-classes) + qreal base{0}; // NOLINT(misc-non-private-member-variables-in-classes) + qreal shiftA{0}; // NOLINT(misc-non-private-member-variables-in-classes) + qreal shiftB{0}; // NOLINT(misc-non-private-member-variables-in-classes) + qreal shiftC{0}; // NOLINT(misc-non-private-member-variables-in-classes) + QString fullName{}; // NOLINT(misc-non-private-member-variables-in-classes) QString description{}; // NOLINT(misc-non-private-member-variables-in-classes) }; @@ -225,7 +225,7 @@ private: auto MaybeSave() -> bool; auto AddCell(const QString &text, int row, int column, int aligment, bool ok = true) -> QTableWidgetItem *; - auto AddSeparatorCell(const QString &text, int row, int column, int aligment, bool ok = true) -> QTableWidgetItem*; + auto AddSeparatorCell(const QString &text, int row, int column, int aligment, bool ok = true) -> QTableWidgetItem *; void RefreshData(bool freshCall = false); void RefreshTable(bool freshCall = false); @@ -254,8 +254,7 @@ private: void CreateWindowMenu(QMenu *menu); - template - void HackWidget(T **widget); + template void HackWidget(T **widget); void HackDimensionBaseValue(); void HackDimensionShifts(); @@ -265,8 +264,8 @@ private: void ImportIndividualMeasurements(const QxtCsvModel &csv, const QVector &map, bool withHeader); void ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVector &map, bool withHeader); - auto ImportMultisizeMeasurement(const QxtCsvModel &csv, int i, const QVector &map, - vsizetype dimensionsCount, QSet &importedNames) -> MultisizeMeasurement; + auto ImportMultisizeMeasurement(const QxtCsvModel &csv, int i, const QVector &map, vsizetype dimensionsCount, + QSet &importedNames) -> MultisizeMeasurement; void SetCurrentPatternUnit(); @@ -276,7 +275,9 @@ private: auto DimensionRestrictedValues(int index, const MeasurementDimension_p &dimension) -> QVector; - auto OrderedMeasurments() const -> QMap >; + auto OrderedMeasurments() const -> QMap>; + + void InitIcons(); }; #endif // TMAINWINDOW_H diff --git a/src/app/tape/tmainwindow.ui b/src/app/tape/tmainwindow.ui index 02f24edf7..34db69408 100644 --- a/src/app/tape/tmainwindow.ui +++ b/src/app/tape/tmainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 1188 - 836 + 1463 + 899
@@ -19,8 +19,8 @@ - - 15 + + 0 0 @@ -43,6 +43,12 @@
+ + + 0 + 0 + + @@ -258,7 +264,7 @@ <html><head/><body><p>Find Previous <span style=" color:#888a85;">%1</span></p></body></html>
- ... + @@ -278,7 +284,7 @@ <html><head/><body><p>Find Next %1</p></body></html> - ... + @@ -301,7 +307,7 @@ - + 0 2 @@ -392,7 +398,7 @@ Move measurement top - ... + @@ -409,7 +415,7 @@ Move measurement up - ... + @@ -426,7 +432,7 @@ Move measurement down - ... + @@ -443,7 +449,7 @@ Move measurement bottom - ... + @@ -473,7 +479,7 @@ Delete measurement - ... + @@ -623,11 +629,11 @@ Function Wizard - ... + - - :/tapeicon/24x24/fx.png:/tapeicon/24x24/fx.png + + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1136,7 +1142,7 @@ 0 0 - 1188 + 1463 22 @@ -1247,7 +1253,7 @@ - + 1 0 @@ -1527,7 +1533,7 @@ - :/tapeicon/24x24/mannequin.png:/tapeicon/24x24/mannequin.png + :/tapeicon/light/24x24/mannequin.png:/tapeicon/light/24x24/mannequin.png Measurement diagram @@ -1654,6 +1660,7 @@ + diff --git a/src/app/valentina/core/vtooloptionspropertybrowser.cpp b/src/app/valentina/core/vtooloptionspropertybrowser.cpp index 929a27bf1..04f413831 100644 --- a/src/app/valentina/core/vtooloptionspropertybrowser.cpp +++ b/src/app/valentina/core/vtooloptionspropertybrowser.cpp @@ -30,6 +30,7 @@ #include "../qmuparser/qmudef.h" #include "../vgeometry/vcubicbezier.h" #include "../vgeometry/vcubicbezierpath.h" +#include "../vgeometry/vsplinepath.h" #include "../vmisc/def.h" #include "../vpatterndb/vformula.h" #include "../vpropertyexplorer/plugins/vboolproperty.h" @@ -47,6 +48,7 @@ #include "../vwidgets/vgraphicssimpletextitem.h" #include "../vwidgets/vsimplecurve.h" #include "../vwidgets/vsimplepoint.h" +#include "qobject.h" #include "vformulaproperty.h" #include "../vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h" @@ -88,9 +90,11 @@ #include "../vmisc/diagnostic.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) +#include #include #include #include +#include #include #include @@ -537,6 +541,14 @@ void VToolOptionsPropertyBrowser::userChangedData(VPE::VProperty *property) VAbstractValApplication::VApp()->getSceneView()->update(); } +//--------------------------------------------------------------------------------------------------------------------- +auto VToolOptionsPropertyBrowser::ComboBoxPalette() const -> QPalette +{ + QComboBox comboBox; + comboBox.setPalette(m_formView->palette()); + return comboBox.palette(); +} + //--------------------------------------------------------------------------------------------------------------------- void VToolOptionsPropertyBrowser::itemClicked(QGraphicsItem *item) { @@ -2727,9 +2739,12 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolEndLine(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Point at distance and angle")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("Base point:"), AttrBasePoint); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyFormula(tr("Length:"), i->GetFormulaLength(), AttrLength); AddPropertyFormula(tr("Angle:"), i->GetFormulaAngle(), AttrAngle); @@ -2743,10 +2758,13 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolAlongLine(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Point at distance along line")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("First point:"), AttrBasePoint); AddPropertyParentPointName(i->SecondPointName(), tr("Second point:"), AttrSecondPoint); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyFormula(tr("Length:"), i->GetFormulaLength(), AttrLength); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -2759,13 +2777,17 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolArc(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Arc")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Name:"), true); AddPropertyParentPointName(i->CenterPointName(), tr("Center point:"), AttrCenter); AddPropertyFormula(tr("Radius:"), i->GetFormulaRadius(), AttrRadius); AddPropertyFormula(tr("First angle:"), i->GetFormulaF1(), AttrAngle1); AddPropertyFormula(tr("Second angle:"), i->GetFormulaF2(), AttrAngle2); AddPropertyAlias(i, tr("Alias:")); - AddPropertyCurvePenStyle(i, tr("Pen style:"), CurvePenStylesPics()); + AddPropertyCurvePenStyle( + i, tr("Pen style:"), + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Color:"), VAbstractTool::ColorsList(), AttrColor); AddPropertyApproximationScale(tr("Approximation scale:"), i->GetApproximationScale()); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -2778,13 +2800,17 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolArcWithLength(QGraphicsItem *it i->ShowVisualization(true); m_formView->setTitle(tr("Arc with given length")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Name:"), true); AddPropertyParentPointName(i->CenterPointName(), tr("Center point:"), AttrCenter); AddPropertyFormula(tr("Radius:"), i->GetFormulaRadius(), AttrRadius); AddPropertyFormula(tr("First angle:"), i->GetFormulaF1(), AttrAngle1); AddPropertyFormula(tr("Length:"), i->GetFormulaLength(), AttrLength); AddPropertyAlias(i, tr("Alias:")); - AddPropertyCurvePenStyle(i, tr("Pen style:"), CurvePenStylesPics()); + AddPropertyCurvePenStyle( + i, tr("Pen style:"), + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Color:"), VAbstractTool::ColorsList(), AttrColor); AddPropertyApproximationScale(tr("Approximation scale:"), i->GetApproximationScale()); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -2797,11 +2823,14 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolBisector(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Point along bisector")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->FirstPointName(), tr("First point:"), AttrFirstPoint); AddPropertyParentPointName(i->BasePointName(), tr("Second point:"), AttrBasePoint); AddPropertyParentPointName(i->ThirdPointName(), tr("Third point:"), AttrThirdPoint); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyFormula(tr("Length:"), i->GetFormulaLength(), AttrLength); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -2876,11 +2905,14 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolHeight(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Perpendicular point along line")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("Base point:"), AttrBasePoint); AddPropertyParentPointName(i->FirstLinePointName(), tr("First line point:"), AttrP1Line); AddPropertyParentPointName(i->SecondLinePointName(), tr("Second line point:"), AttrP2Line); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); } @@ -2892,9 +2924,12 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolLine(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Line between points")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyParentPointName(i->FirstPointName(), tr("First point:"), AttrFirstPoint); AddPropertyParentPointName(i->SecondPointName(), tr("Second point:"), AttrSecondPoint); - QMap styles = LineStylesPics(); + QMap styles = + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)); styles.remove(TypeLineNone); AddPropertyLineType(i, tr("Line type:"), styles); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); @@ -2923,11 +2958,14 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolNormal(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Point along perpendicular")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyFormula(tr("Length:"), i->GetFormulaLength(), AttrLength); AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("First point:"), AttrBasePoint); AddPropertyParentPointName(i->SecondPointName(), tr("Second point:"), AttrSecondPoint); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); auto *itemAngle = new VPE::VDoubleProperty(tr("Additional angle degrees:")); @@ -3049,11 +3087,14 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolShoulderPoint(QGraphicsItem *it i->ShowVisualization(true); m_formView->setTitle(tr("Special point on shoulder")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("First point:"), AttrBasePoint); AddPropertyParentPointName(i->SecondPointName(), tr("Second point:"), AttrSecondPoint); AddPropertyParentPointName(i->ShoulderPointName(), tr("Third point:"), AttrThirdPoint); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyFormula(tr("Length:"), i->GetFormulaLength(), AttrLength); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3098,8 +3139,12 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolSpline(QGraphicsItem *item) length2.Eval(); AddPropertyFormula(tr("C2: length:"), length2, AttrLength2); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyAlias(i, tr("Alias:")); - AddPropertyCurvePenStyle(i, tr("Pen style:"), CurvePenStylesPics()); + AddPropertyCurvePenStyle( + i, tr("Pen style:"), + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Color:"), VAbstractTool::ColorsList(), AttrColor); AddPropertyApproximationScale(tr("Approximation scale:"), spl.GetApproximationScale()); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3112,13 +3157,17 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolCubicBezier(QGraphicsItem *item i->ShowVisualization(true); m_formView->setTitle(tr("Cubic bezier curve")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Name:"), true); AddPropertyParentPointName(i->FirstPointName(), tr("First point:"), AttrPoint1); AddPropertyParentPointName(i->SecondPointName(), tr("Second point:"), AttrPoint2); AddPropertyParentPointName(i->ThirdPointName(), tr("Third point:"), AttrPoint3); AddPropertyParentPointName(i->ForthPointName(), tr("Fourth point:"), AttrPoint4); AddPropertyAlias(i, tr("Alias:")); - AddPropertyCurvePenStyle(i, tr("Pen style:"), CurvePenStylesPics()); + AddPropertyCurvePenStyle( + i, tr("Pen style:"), + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Color:"), VAbstractTool::ColorsList(), AttrColor); AddPropertyApproximationScale(tr("Approximation scale:"), i->getSpline().GetApproximationScale()); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3131,9 +3180,13 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolSplinePath(QGraphicsItem *item) i->ShowVisualization(true); m_formView->setTitle(tr("Tool for path curve")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Name:"), true); AddPropertyAlias(i, tr("Alias:")); - AddPropertyCurvePenStyle(i, tr("Pen style:"), CurvePenStylesPics()); + AddPropertyCurvePenStyle( + i, tr("Pen style:"), + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Color:"), VAbstractTool::ColorsList(), AttrColor); AddPropertyApproximationScale(tr("Approximation scale:"), i->getSplinePath().GetApproximationScale()); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3146,9 +3199,13 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolCubicBezierPath(QGraphicsItem * i->ShowVisualization(true); m_formView->setTitle(tr("Tool cubic bezier curve")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Name:"), true); AddPropertyAlias(i, tr("Alias:")); - AddPropertyCurvePenStyle(i, tr("Pen style:"), CurvePenStylesPics()); + AddPropertyCurvePenStyle( + i, tr("Pen style:"), + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Color:"), VAbstractTool::ColorsList(), AttrColor); AddPropertyApproximationScale(tr("Approximation scale:"), i->getSplinePath().GetApproximationScale()); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3176,11 +3233,14 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolLineIntersectAxis(QGraphicsItem i->ShowVisualization(true); m_formView->setTitle(tr("Point intersection line and axis")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("Axis point:"), AttrBasePoint); AddPropertyParentPointName(i->FirstLinePoint(), tr("First line point:"), AttrFirstPoint); AddPropertyParentPointName(i->SecondLinePoint(), tr("Second line point:"), AttrSecondPoint); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyFormula(tr("Angle:"), i->GetFormulaAngle(), AttrAngle); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3193,10 +3253,13 @@ void VToolOptionsPropertyBrowser::ShowOptionsToolCurveIntersectAxis(QGraphicsIte i->ShowVisualization(true); m_formView->setTitle(tr("Point intersection curve and axis")); + QPalette comboBoxPalette = ComboBoxPalette(); + AddPropertyObjectName(i, tr("Point label:")); AddPropertyParentPointName(i->BasePointName(), tr("Axis point:"), AttrBasePoint); AddPropertyParentPointName(i->CurveName(), tr("Curve:"), AttrCurve); - AddPropertyLineType(i, tr("Line type:"), LineStylesPics()); + AddPropertyLineType(i, tr("Line type:"), + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text))); AddPropertyLineColor(i, tr("Line color:"), VAbstractTool::ColorsList(), AttrLineColor); AddPropertyFormula(tr("Angle:"), i->GetFormulaAngle(), AttrAngle); AddPropertyText(tr("Notes:"), i->GetNotes(), AttrNotes); @@ -3316,7 +3379,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolEndLine() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3347,7 +3413,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolAlongLine() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3391,7 +3460,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolArc() m_idToProperty[AttrAngle2]->setValue(valueSecondAngle); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(CurvePenStylesPics(), i->GetPenStyle()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->GetPenStyle()); m_idToProperty[AttrPenStyle]->setValue(index); } @@ -3433,7 +3505,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolArcWithLength() m_idToProperty[AttrLength]->setValue(valueLength); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(CurvePenStylesPics(), i->GetPenStyle()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->GetPenStyle()); m_idToProperty[AttrPenStyle]->setValue(index); } @@ -3467,7 +3542,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolBisector() m_idToProperty[AttrLength]->setValue(valueFormula); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3593,7 +3671,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolHeight() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3623,7 +3704,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolLine() auto *i = qgraphicsitem_cast(m_currentItem); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3683,7 +3767,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolNormal() m_idToProperty[AttrAngle]->setValue(i->GetAngle()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3867,7 +3954,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolShoulderPoint() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -3936,7 +4026,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolSpline() m_idToProperty[AttrLength2]->setValue(length2); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(CurvePenStylesPics(), i->GetPenStyle()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->GetPenStyle()); m_idToProperty[AttrPenStyle]->setValue(index); } @@ -3960,7 +4053,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolCubicBezier() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(CurvePenStylesPics(), i->GetPenStyle()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->GetPenStyle()); m_idToProperty[AttrPenStyle]->setValue(index); } @@ -4000,7 +4096,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolSplinePath() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(CurvePenStylesPics(), i->GetPenStyle()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->GetPenStyle()); m_idToProperty[AttrPenStyle]->setValue(index); } @@ -4024,7 +4123,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolCubicBezierPath() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(CurvePenStylesPics(), i->GetPenStyle()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + CurvePenStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->GetPenStyle()); m_idToProperty[AttrPenStyle]->setValue(index); } @@ -4073,7 +4175,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolLineIntersectAxis() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } @@ -4108,7 +4213,10 @@ void VToolOptionsPropertyBrowser::UpdateOptionsToolCurveIntersectAxis() m_idToProperty[AttrName]->setValue(i->name()); { - const auto index = VPE::VLineTypeProperty::IndexOfStyle(LineStylesPics(), i->getLineType()); + QPalette comboBoxPalette = ComboBoxPalette(); + const auto index = VPE::VLineTypeProperty::IndexOfStyle( + LineStylesPics(comboBoxPalette.color(QPalette::Base), comboBoxPalette.color(QPalette::Text)), + i->getLineType()); m_idToProperty[AttrTypeLine]->setValue(index); } diff --git a/src/app/valentina/core/vtooloptionspropertybrowser.h b/src/app/valentina/core/vtooloptionspropertybrowser.h index 2fb9e6c88..ae02f1fb5 100644 --- a/src/app/valentina/core/vtooloptionspropertybrowser.h +++ b/src/app/valentina/core/vtooloptionspropertybrowser.h @@ -29,12 +29,12 @@ #ifndef VTOOLOPTIONSPROPERTYBROWSER_H #define VTOOLOPTIONSPROPERTYBROWSER_H -#include #include +#include #include "../vpropertyexplorer/vproperty.h" -#include "../vpropertyexplorer/vpropertymodel.h" #include "../vpropertyexplorer/vpropertyformview.h" +#include "../vpropertyexplorer/vpropertymodel.h" class QDockWidget; class QGraphicsItem; @@ -44,151 +44,120 @@ class VFormula; class VToolOptionsPropertyBrowser : public QObject { Q_OBJECT // NOLINT + public: explicit VToolOptionsPropertyBrowser(QDockWidget *parent); - ~VToolOptionsPropertyBrowser() override =default; + ~VToolOptionsPropertyBrowser() override = default; + void ClearPropertyBrowser(); + public slots: void itemClicked(QGraphicsItem *item); void UpdateOptions(); void RefreshOptions(); + private slots: - void userChangedData(VPE::VProperty* property); + void userChangedData(VPE::VProperty *property); + private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(VToolOptionsPropertyBrowser) // NOLINT - VPE::VPropertyModel* m_PropertyModel{nullptr}; - VPE::VPropertyFormView* m_formView{nullptr}; + VPE::VPropertyModel *m_PropertyModel{nullptr}; + VPE::VPropertyFormView *m_formView{nullptr}; QGraphicsItem *m_currentItem{nullptr}; QMap m_propertyToId{}; QMap m_idToProperty{}; + auto ComboBoxPalette() const -> QPalette; + void AddProperty(VPE::VProperty *property, const QString &id); void ShowItemOptions(QGraphicsItem *item); - template - void SetName(VPE::VProperty *property); + template void SetName(VPE::VProperty *property); - template - void SetHold(VPE::VProperty *property); + template void SetHold(VPE::VProperty *property); - template - void SetVisible(VPE::VProperty *property); + template void SetVisible(VPE::VProperty *property); - template - void SetOpacity(VPE::VProperty *property); + template void SetOpacity(VPE::VProperty *property); - template - void SetPointName(VPE::VProperty *property); + template void SetPointName(VPE::VProperty *property); - template - void SetPointName1(VPE::VProperty *property); + template void SetPointName1(VPE::VProperty *property); - template - void SetPointName2(VPE::VProperty *property); + template void SetPointName2(VPE::VProperty *property); - template - void SetOperationSuffix(VPE::VProperty *property); + template void SetOperationSuffix(VPE::VProperty *property); - template - auto GetCrossPoint(const QVariant &value) -> Type; + template auto GetCrossPoint(const QVariant &value) -> Type; - template - void SetCrossCirclesPoint(VPE::VProperty *property); + template void SetCrossCirclesPoint(VPE::VProperty *property); - template - void SetVCrossCurvesPoint(VPE::VProperty *property); + template void SetVCrossCurvesPoint(VPE::VProperty *property); - template - void SetHCrossCurvesPoint(VPE::VProperty *property); + template void SetHCrossCurvesPoint(VPE::VProperty *property); - template - void SetAxisType(VPE::VProperty *property); + template void SetAxisType(VPE::VProperty *property); - template - void SetNotes(VPE::VProperty *property); + template void SetNotes(VPE::VProperty *property); - template - void SetAlias(VPE::VProperty *property); + template void SetAlias(VPE::VProperty *property); - template - void SetAlias1(VPE::VProperty *property); + template void SetAlias1(VPE::VProperty *property); - template - void SetAlias2(VPE::VProperty *property); + template void SetAlias2(VPE::VProperty *property); - template - void SetLineType(VPE::VProperty *property); + template void SetLineType(VPE::VProperty *property); - template - void SetLineColor(VPE::VProperty *property); + template void SetLineColor(VPE::VProperty *property); - template - void SetFormulaLength(VPE::VProperty *property); + template void SetFormulaLength(VPE::VProperty *property); - template - void SetFormulaAngle(VPE::VProperty *property); + template void SetFormulaAngle(VPE::VProperty *property); - template - void SetFormulaRadius(VPE::VProperty *property); + template void SetFormulaRadius(VPE::VProperty *property); - template - void SetFormulaF1(VPE::VProperty *property); + template void SetFormulaF1(VPE::VProperty *property); - template - void SetFormulaF2(VPE::VProperty *property); + template void SetFormulaF2(VPE::VProperty *property); - template - void SetPenStyle(VPE::VProperty *property); + template void SetPenStyle(VPE::VProperty *property); - template - void SetFormulaRotationAngle(VPE::VProperty *property); + template void SetFormulaRotationAngle(VPE::VProperty *property); - template - void SetApproximationScale(VPE::VProperty *property); + template void SetApproximationScale(VPE::VProperty *property); - template - void AddPropertyObjectName(Tool *i, const QString &propertyName, bool readOnly = false); + template void AddPropertyObjectName(Tool *i, const QString &propertyName, bool readOnly = false); - template - void AddPropertyAlias(Tool *i, const QString &propertyName); + template void AddPropertyAlias(Tool *i, const QString &propertyName); - template - void AddPropertyAlias1(Tool *i, const QString &propertyName); + template void AddPropertyAlias1(Tool *i, const QString &propertyName); - template - void AddPropertyAlias2(Tool *i, const QString &propertyName); + template void AddPropertyAlias2(Tool *i, const QString &propertyName); - template - void AddPropertyPointName1(Tool *i, const QString &propertyName); + template void AddPropertyPointName1(Tool *i, const QString &propertyName); - template - void AddPropertyPointName2(Tool *i, const QString &propertyName); + template void AddPropertyPointName2(Tool *i, const QString &propertyName); - template - void AddPropertyOperationSuffix(Tool *i, const QString &propertyName, bool readOnly = false); + template void AddPropertyOperationSuffix(Tool *i, const QString &propertyName, bool readOnly = false); - template - void AddPropertyCrossPoint(Tool *i, const QString &propertyName); + template void AddPropertyCrossPoint(Tool *i, const QString &propertyName); - template - void AddPropertyVCrossPoint(Tool *i, const QString &propertyName); + template void AddPropertyVCrossPoint(Tool *i, const QString &propertyName); - template - void AddPropertyHCrossPoint(Tool *i, const QString &propertyName); + template void AddPropertyHCrossPoint(Tool *i, const QString &propertyName); - template - void AddPropertyAxisType(Tool *i, const QString &propertyName); + template void AddPropertyAxisType(Tool *i, const QString &propertyName); - template + template void AddPropertyLineType(Tool *i, const QString &propertyName, const QMap &styles); - template + template void AddPropertyCurvePenStyle(Tool *i, const QString &propertyName, const QMap &styles); - template + template void AddPropertyLineColor(Tool *i, const QString &propertyName, const QMap &colors, const QString &id); diff --git a/src/app/valentina/dialogs/dialogfinalmeasurements.cpp b/src/app/valentina/dialogs/dialogfinalmeasurements.cpp index a83dfbda9..4737b6f05 100644 --- a/src/app/valentina/dialogs/dialogfinalmeasurements.cpp +++ b/src/app/valentina/dialogs/dialogfinalmeasurements.cpp @@ -29,13 +29,15 @@ #include "dialogfinalmeasurements.h" #include "../qmuparser/qmudef.h" #include "../vmisc/compatibility.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vvalentinasettings.h" #include "../vpatterndb/calculator.h" +#include "../vtools/dialogs/dialogtoolbox.h" #include "../vtools/dialogs/support/dialogeditwrongformula.h" #include "ui_dialogfinalmeasurements.h" + #include -#include constexpr int DIALOG_MAX_FORMULA_HEIGHT = 64; @@ -54,6 +56,8 @@ DialogFinalMeasurements::DialogFinalMeasurements(VPattern *doc, QWidget *parent) setWindowFlags(Qt::Window); #endif + InitIcons(); + m_data.FillPiecesAreas(VAbstractValApplication::VApp()->patternUnits()); ui->lineEditName->setClearButtonEnabled(true); @@ -131,6 +135,13 @@ void DialogFinalMeasurements::changeEvent(QEvent *event) UpdateSearchControlsTooltips(); FullUpdateFromFile(); } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + // remember to call base class implementation QDialog::changeEvent(event); } @@ -906,3 +917,11 @@ void DialogFinalMeasurements::UpdateSearchControlsTooltips() UpdateToolTip(ui->toolButtonFindPrevious); UpdateToolTip(ui->toolButtonFindNext); } + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::InitIcons() +{ + QString resource = QStringLiteral("icon"); + + ui->toolButtonExpr->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); +} diff --git a/src/app/valentina/dialogs/dialogfinalmeasurements.h b/src/app/valentina/dialogs/dialogfinalmeasurements.h index 602ce464e..0a2103a95 100644 --- a/src/app/valentina/dialogs/dialogfinalmeasurements.h +++ b/src/app/valentina/dialogs/dialogfinalmeasurements.h @@ -37,7 +37,7 @@ namespace Ui { - class DialogFinalMeasurements; +class DialogFinalMeasurements; } class DialogFinalMeasurements : public QDialog @@ -51,10 +51,10 @@ public: auto FinalMeasurements() const -> QVector; protected: - void closeEvent ( QCloseEvent * event ) override; - void changeEvent ( QEvent * event) override; + void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto eventFilter(QObject *object, QEvent *event) -> bool override; - void showEvent( QShowEvent *event ) override; + void showEvent(QShowEvent *event) override; void resizeEvent(QResizeEvent *event) override; private slots: void ShowFinalMeasurementDetails(); @@ -68,16 +68,17 @@ private slots: void DeployFormula(); void Fx(); void FullUpdateFromFile(); + private: Q_DISABLE_COPY_MOVE(DialogFinalMeasurements) // NOLINT Ui::DialogFinalMeasurements *ui; /** @brief doc dom document container */ - VPattern *m_doc; - VContainer m_data; - QVector m_measurements; + VPattern *m_doc; + VContainer m_data; + QVector m_measurements; QSharedPointer m_search{}; - int formulaBaseHeight{0}; - bool m_isInitialized{false}; + int formulaBaseHeight{0}; + bool m_isInitialized{false}; QMenu *m_searchHistory; @@ -98,6 +99,8 @@ private: void InitSearchHistory(); void SaveSearchRequest(); void UpdateSearchControlsTooltips(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/valentina/dialogs/dialogfinalmeasurements.ui b/src/app/valentina/dialogs/dialogfinalmeasurements.ui index 5cba8aa0c..5af2748a5 100644 --- a/src/app/valentina/dialogs/dialogfinalmeasurements.ui +++ b/src/app/valentina/dialogs/dialogfinalmeasurements.ui @@ -218,7 +218,7 @@ <html><head/><body><p>Find Previous <span style=" color:#888a85;">%1</span></p></body></html> - ... + @@ -238,7 +238,7 @@ <html><head/><body><p>Find Next %1</p></body></html> - ... + @@ -377,7 +377,7 @@ - ... + @@ -391,7 +391,7 @@ false - ... + @@ -522,11 +522,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -575,7 +575,7 @@ Move measurement up - ... + @@ -592,7 +592,7 @@ Move measurement down - ... + diff --git a/src/app/valentina/dialogs/dialoghistory.ui b/src/app/valentina/dialogs/dialoghistory.ui index 43bd2b5fd..d64a5998d 100644 --- a/src/app/valentina/dialogs/dialoghistory.ui +++ b/src/app/valentina/dialogs/dialoghistory.ui @@ -228,7 +228,7 @@ <html><head/><body><p>Find Previous <span style=" color:#888a85;">%1</span></p></body></html> - ... + @@ -248,7 +248,7 @@ <html><head/><body><p>Find Next %1</p></body></html> - ... + diff --git a/src/app/valentina/dialogs/dialogincrements.cpp b/src/app/valentina/dialogs/dialogincrements.cpp index d10988af6..7c89727ec 100644 --- a/src/app/valentina/dialogs/dialogincrements.cpp +++ b/src/app/valentina/dialogs/dialogincrements.cpp @@ -34,6 +34,7 @@ #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../qmuparser/qmudef.h" #include "../qmuparser/qmutokenparser.h" +#include "../vmisc/theme/vtheme.h" #include "../vpatterndb/calculator.h" #include "../vpatterndb/variables/varcradius.h" #include "../vpatterndb/variables/vcurveangle.h" @@ -88,6 +89,8 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par setWindowFlags(Qt::Window); #endif + InitIcons(); + ui->lineEditName->setClearButtonEnabled(true); ui->lineEditNamePC->setClearButtonEnabled(true); @@ -1254,6 +1257,16 @@ void DialogIncrements::InitIncrementUnits(QComboBox *combo) combo->blockSignals(false); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogIncrements::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + const QString fxIcon = QStringLiteral("24x24/fx.png"); + + ui->toolButtonExpr->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprPC->setIcon(VTheme::GetIconResource(resource, fxIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief FullUpdateFromFile update information in tables form file @@ -1941,6 +1954,12 @@ void DialogIncrements::changeEvent(QEvent *event) FullUpdateFromFile(); } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + } + // remember to call base class implementation QWidget::changeEvent(event); } diff --git a/src/app/valentina/dialogs/dialogincrements.h b/src/app/valentina/dialogs/dialogincrements.h index 11614e91b..24aac224b 100644 --- a/src/app/valentina/dialogs/dialogincrements.h +++ b/src/app/valentina/dialogs/dialogincrements.h @@ -29,9 +29,9 @@ #ifndef DIALOGINCREMENTS_H #define DIALOGINCREMENTS_H +#include "../vmisc/vtablesearch.h" #include "../vtools/dialogs/tools/dialogtool.h" #include "../xml/vpattern.h" -#include "../vmisc/vtablesearch.h" #include @@ -39,7 +39,7 @@ class VIndividualMeasurements; namespace Ui { - class DialogIncrements; +class DialogIncrements; } /** @@ -48,6 +48,7 @@ namespace Ui class DialogIncrements : public DialogTool { Q_OBJECT // NOLINT + public: DialogIncrements(VContainer *data, VPattern *doc, QWidget *parent = nullptr); ~DialogIncrements() override; @@ -61,12 +62,12 @@ public slots: void FullUpdateFromFile(); protected: - void closeEvent ( QCloseEvent * event ) override; - void changeEvent ( QEvent * event) override; + void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto eventFilter(QObject *object, QEvent *event) -> bool override; - void showEvent( QShowEvent *event ) override; + void showEvent(QShowEvent *event) override; void resizeEvent(QResizeEvent *event) override; - auto IsValid() const -> bool final {return true;} + auto IsValid() const -> bool final { return true; } private slots: void ShowIncrementDetails(); void AddIncrement(); @@ -111,11 +112,10 @@ private: QMenu *m_searchHistory; QMenu *m_searchHistoryPC; - template - void FillTable(const QMap &varTable, QTableWidget *table); + template void FillTable(const QMap &varTable, QTableWidget *table); - static void FillIncrementsTable(QTableWidget *table, const QMap > &increments, - bool takePreviewCalculations); + static void FillIncrementsTable(QTableWidget *table, const QMap> &increments, + bool takePreviewCalculations); void FillIncrements(); void FillPreviewCalculations(); @@ -129,16 +129,16 @@ private: void ShowUnits(); static void ShowHeaderUnits(QTableWidget *table, int column, const QString &unit); - static auto AddCell(QTableWidget *table, const QString &text, int row, int column, int aligment, - bool ok = true) -> QTableWidgetItem*; + static auto AddCell(QTableWidget *table, const QString &text, int row, int column, int aligment, bool ok = true) + -> QTableWidgetItem *; static auto AddSeparatorCell(QTableWidget *table, const QString &text, int row, int column, int aligment, - bool ok = true) -> QTableWidgetItem*; + bool ok = true) -> QTableWidgetItem *; auto GetCustomName() const -> QString; static auto ClearIncrementName(const QString &name) -> QString; static auto EvalIncrementFormula(const QString &formula, bool fromUser, VContainer *data, QLabel *label, - bool special) -> bool; + bool special) -> bool; void Controls(QTableWidget *table); void EnableDetails(QTableWidget *table, bool enabled); @@ -161,6 +161,8 @@ private: void SavePreviewCalculationsSearchRequest(); void UpdateSearchControlsTooltips(); static void InitIncrementUnits(QComboBox *combo); + + void InitIcons(); }; #endif // DIALOGINCREMENTS_H diff --git a/src/app/valentina/dialogs/dialogincrements.ui b/src/app/valentina/dialogs/dialogincrements.ui index 9808bd4ba..27de14d03 100644 --- a/src/app/valentina/dialogs/dialogincrements.ui +++ b/src/app/valentina/dialogs/dialogincrements.ui @@ -249,7 +249,7 @@ <html><head/><body><p>Find Previous <span style=" color:#888a85;">%1</span></p></body></html> - ... + @@ -269,7 +269,7 @@ <html><head/><body><p>Find Next %1</p></body></html> - ... + @@ -392,7 +392,7 @@ Move measurement up - ... + @@ -409,7 +409,7 @@ Move measurement down - ... + @@ -459,7 +459,7 @@ - ... + @@ -476,7 +476,7 @@ false - ... + @@ -611,11 +611,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -904,7 +904,7 @@ <html><head/><body><p>Find Previous <span style=" color:#888a85;">%1</span></p></body></html> - ... + @@ -924,7 +924,7 @@ <html><head/><body><p>Find Next %1</p></body></html> - ... + @@ -1047,7 +1047,7 @@ Move measurement up - ... + @@ -1064,7 +1064,7 @@ Move measurement down - ... + @@ -1114,7 +1114,7 @@ - ... + @@ -1131,7 +1131,7 @@ false - ... + @@ -1259,11 +1259,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png diff --git a/src/app/valentina/dialogs/dialogknownmaterials.ui b/src/app/valentina/dialogs/dialogknownmaterials.ui index 2c48784a3..8abb6f8d9 100644 --- a/src/app/valentina/dialogs/dialogknownmaterials.ui +++ b/src/app/valentina/dialogs/dialogknownmaterials.ui @@ -66,7 +66,7 @@ - ... + @@ -80,7 +80,7 @@ false - ... + diff --git a/src/app/valentina/dialogs/dialoglayoutprogress.cpp b/src/app/valentina/dialogs/dialoglayoutprogress.cpp index e80b33057..605e355dc 100644 --- a/src/app/valentina/dialogs/dialoglayoutprogress.cpp +++ b/src/app/valentina/dialogs/dialoglayoutprogress.cpp @@ -27,16 +27,17 @@ *************************************************************************/ #include "dialoglayoutprogress.h" -#include "ui_dialoglayoutprogress.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vvalentinasettings.h" +#include "ui_dialoglayoutprogress.h" #include -#include #include -#include -#include +#include #include +#include +#include #include #if (defined(Q_CC_GNU) && Q_CC_GNU < 409) && !defined(Q_CC_CLANG) @@ -52,46 +53,49 @@ using namespace bpstd::literals::chrono_literals; //--------------------------------------------------------------------------------------------------------------------- DialogLayoutProgress::DialogLayoutProgress(QElapsedTimer timer, qint64 timeout, QWidget *parent) - : QDialog(parent), - ui(new Ui::DialogLayoutProgress), - m_movie(new QMovie(QStringLiteral("://icon/16x16/progress.gif"))), - m_timer(timer), - m_timeout(timeout), - m_progressTimer(new QTimer(this)) + : QDialog(parent), + ui(new Ui::DialogLayoutProgress), + m_timer(timer), + m_timeout(timeout), + m_progressTimer(new QTimer(this)) { ui->setupUi(this); VAbstractValApplication::VApp()->ValentinaSettings()->GetOsSeparator() ? setLocale(QLocale()) : setLocale(QLocale::c()); - ui->progressBar->setMaximum(static_cast(timeout/1000)); + ui->progressBar->setMaximum(static_cast(timeout / 1000)); ui->progressBar->setValue(0); + const QString scheme = + (VTheme::ColorSheme() == VColorSheme::Light ? QStringLiteral("light") : QStringLiteral("dark")); + m_movie = new QMovie(QStringLiteral("://icon/%1/16x16/progress.gif").arg(scheme)); ui->labelProgress->setMovie(m_movie); m_movie->start(); QPushButton *bCancel = ui->buttonBox->button(QDialogButtonBox::Cancel); SCASSERT(bCancel != nullptr) - connect(bCancel, &QPushButton::clicked, this, [this](){emit Abort();}); + connect(bCancel, &QPushButton::clicked, this, [this]() { emit Abort(); }); setModal(true); this->setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::CustomizeWindowHint); - connect(m_progressTimer, &QTimer::timeout, this, [this]() - { - const qint64 elapsed = m_timer.elapsed(); - const int timeout = static_cast(m_timeout - elapsed); - QTime t(0, 0); - t = t.addMSecs(timeout); - ui->labelTimeLeft->setText(tr("Time left: %1").arg(t.toString())); - ui->progressBar->setValue(static_cast(elapsed/1000)); + connect(m_progressTimer, &QTimer::timeout, this, + [this]() + { + const qint64 elapsed = m_timer.elapsed(); + const int timeout = static_cast(m_timeout - elapsed); + QTime t(0, 0); + t = t.addMSecs(timeout); + ui->labelTimeLeft->setText(tr("Time left: %1").arg(t.toString())); + ui->progressBar->setValue(static_cast(elapsed / 1000)); - if (timeout <= 1000) - { - emit Timeout(); - m_progressTimer->stop(); - } - }); + if (timeout <= 1000) + { + emit Timeout(); + m_progressTimer->stop(); + } + }); m_progressTimer->start(V_SECONDS(1)); } @@ -124,8 +128,8 @@ void DialogLayoutProgress::Efficiency(qreal value) //--------------------------------------------------------------------------------------------------------------------- void DialogLayoutProgress::showEvent(QShowEvent *event) { - QDialog::showEvent( event ); - if ( event->spontaneous() ) + QDialog::showEvent(event); + if (event->spontaneous()) { return; } @@ -139,5 +143,5 @@ void DialogLayoutProgress::showEvent(QShowEvent *event) setMaximumSize(size()); setMinimumSize(size()); - m_isInitialized = true;//first show windows are held + m_isInitialized = true; // first show windows are held } diff --git a/src/app/valentina/dialogs/dialoglayoutprogress.h b/src/app/valentina/dialogs/dialoglayoutprogress.h index d886cc5ae..6aad786f2 100644 --- a/src/app/valentina/dialogs/dialoglayoutprogress.h +++ b/src/app/valentina/dialogs/dialoglayoutprogress.h @@ -66,7 +66,7 @@ private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(DialogLayoutProgress) // NOLINT Ui::DialogLayoutProgress *ui; - QMovie *m_movie; + QMovie *m_movie{nullptr}; QElapsedTimer m_timer; qint64 m_timeout; bool m_isInitialized{false}; diff --git a/src/app/valentina/dialogs/dialoglayoutsettings.ui b/src/app/valentina/dialogs/dialoglayoutsettings.ui index 2585c33b4..279bd3c74 100644 --- a/src/app/valentina/dialogs/dialoglayoutsettings.ui +++ b/src/app/valentina/dialogs/dialoglayoutsettings.ui @@ -90,7 +90,7 @@ - ... + @@ -113,7 +113,7 @@ - ... + diff --git a/src/app/valentina/dialogs/dialogpreferences.cpp b/src/app/valentina/dialogs/dialogpreferences.cpp index 17c701962..caf664922 100644 --- a/src/app/valentina/dialogs/dialogpreferences.cpp +++ b/src/app/valentina/dialogs/dialogpreferences.cpp @@ -29,6 +29,7 @@ #include "dialogpreferences.h" #include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vvalentinasettings.h" +#include "../vtools/dialogs/dialogtoolbox.h" #include "configpages/preferencesconfigurationpage.h" #include "configpages/preferencespathpage.h" #include "configpages/preferencespatternpage.h" @@ -125,19 +126,7 @@ void DialogPreferences::changeEvent(QEvent *event) if (event->type() == QEvent::PaletteChange) { - QStyle *style = QApplication::style(); - - QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok); - SCASSERT(bOk != nullptr) - bOk->setIcon(style->standardIcon(QStyle::SP_DialogOkButton)); - - QPushButton *bApply = ui->buttonBox->button(QDialogButtonBox::Apply); - SCASSERT(bApply != nullptr) - bApply->setIcon(style->standardIcon(QStyle::SP_DialogApplyButton)); - - QPushButton *bCancel = ui->buttonBox->button(QDialogButtonBox::Cancel); - SCASSERT(bCancel != nullptr) - bCancel->setIcon(style->standardIcon(QStyle::SP_DialogCancelButton)); + InitDialogButtonBoxIcons(ui->buttonBox); } // remember to call base class implementation diff --git a/src/app/valentina/dialogs/dialogsavelayout.ui b/src/app/valentina/dialogs/dialogsavelayout.ui index ae804646f..0e5ee90fe 100644 --- a/src/app/valentina/dialogs/dialogsavelayout.ui +++ b/src/app/valentina/dialogs/dialogsavelayout.ui @@ -275,7 +275,7 @@ - ... + @@ -482,7 +482,7 @@ - ... + @@ -502,7 +502,7 @@ - ... + diff --git a/src/app/valentina/dialogs/vwidgetbackgroundimages.cpp b/src/app/valentina/dialogs/vwidgetbackgroundimages.cpp index 7622c89bf..bd49f42b3 100644 --- a/src/app/valentina/dialogs/vwidgetbackgroundimages.cpp +++ b/src/app/valentina/dialogs/vwidgetbackgroundimages.cpp @@ -26,23 +26,25 @@ ** *************************************************************************/ #include "vwidgetbackgroundimages.h" +#include "qstringliteral.h" +#include "theme/vtheme.h" #include "ui_vwidgetbackgroundimages.h" -#include "../vmisc/def.h" #include "../ifc/xml/vabstractpattern.h" #include "../ifc/xml/vbackgroundpatternimage.h" -#include "../vtools/undocommands/image/holdbackgroundimage.h" -#include "../vtools/undocommands/image/renamebackgroundimage.h" -#include "../vtools/undocommands/image/hidebackgroundimage.h" +#include "../vmisc/def.h" +#include "../vmisc/lambdaconstants.h" +#include "../vmisc/vabstractapplication.h" #include "../vtools/undocommands/image/hideallbackgroundimages.h" +#include "../vtools/undocommands/image/hidebackgroundimage.h" #include "../vtools/undocommands/image/holdallbackgroundimages.h" -#include "../vtools/undocommands/image/zvaluemovebackgroundimage.h" +#include "../vtools/undocommands/image/holdbackgroundimage.h" #include "../vtools/undocommands/image/movebackgroundimage.h" +#include "../vtools/undocommands/image/renamebackgroundimage.h" +#include "../vtools/undocommands/image/resetbackgroundimage.h" #include "../vtools/undocommands/image/rotatebackgroundimage.h" #include "../vtools/undocommands/image/scalebackgroundimage.h" -#include "../vtools/undocommands/image/resetbackgroundimage.h" -#include "../vmisc/vabstractapplication.h" -#include "../vmisc/lambdaconstants.h" +#include "../vtools/undocommands/image/zvaluemovebackgroundimage.h" #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) @@ -64,8 +66,9 @@ void SetImageHold(QTableWidgetItem *item, const VBackgroundPatternImage &image) { if (item) { - (image.Hold()) ? item->setIcon(QIcon(QStringLiteral("://icon/16x16/hold_image.png"))) - : item->setIcon(QIcon(QStringLiteral("://icon/16x16/not_hold_image.png"))); + const QString resource = QStringLiteral("icon"); + (image.Hold()) ? item->setIcon(VTheme::GetIconResource(resource, QStringLiteral("16x16/hold_image.png"))) + : item->setIcon(VTheme::GetIconResource(resource, QStringLiteral("16x16/not_hold_image.png"))); } } @@ -74,8 +77,9 @@ void SetImageVisibility(QTableWidgetItem *item, const VBackgroundPatternImage &i { if (item) { - (image.Visible()) ? item->setIcon(QIcon(QStringLiteral("://icon/16x16/open_eye.png"))) - : item->setIcon(QIcon(QStringLiteral("://icon/16x16/closed_eye.png"))); + const QString resource = QStringLiteral("icon"); + item->setIcon(image.Visible() ? VTheme::GetIconResource(resource, QStringLiteral("16x16/open_eye.png")) + : VTheme::GetIconResource(resource, QStringLiteral("16x16/closed_eye.png"))); } } @@ -149,9 +153,9 @@ auto ScaleUnitConvertor(qreal base, qreal value, ScaleUnit from, ScaleUnit to) - //--------------------------------------------------------------------------------------------------------------------- VWidgetBackgroundImages::VWidgetBackgroundImages(VAbstractPattern *doc, QWidget *parent) - : QWidget(parent), - ui(new Ui::VWidgetBackgroundImages), - m_doc(doc) + : QWidget(parent), + ui(new Ui::VWidgetBackgroundImages), + m_doc(doc) { ui->setupUi(this); @@ -291,7 +295,7 @@ void VWidgetBackgroundImages::ImageNameChanged(int row, int column) void VWidgetBackgroundImages::ContextMenu(const QPoint &pos) { QTableWidgetItem *item = ui->tableWidget->itemAt(pos); - if(item == nullptr) + if (item == nullptr) { return; } @@ -401,7 +405,8 @@ void VWidgetBackgroundImages::ContextMenu(const QPoint &pos) } //--------------------------------------------------------------------------------------------------------------------- -void VWidgetBackgroundImages::CurrentImageChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) +void VWidgetBackgroundImages::CurrentImageChanged(int currentRow, int currentColumn, int previousRow, + int previousColumn) { Q_UNUSED(currentColumn) Q_UNUSED(previousColumn) @@ -528,10 +533,11 @@ void VWidgetBackgroundImages::ApplyImageTransformation() } else if (ui->tabWidgetImageTransformation->indexOf(ui->tabScale) == index) { // scale - qreal sx = WidthScaleUnitConvertor(ui->doubleSpinBoxScaleWidth->value(), CurrentScaleUnit(), - ScaleUnit::Percent) / 100; - qreal sy = HeightScaleUnitConvertor(ui->doubleSpinBoxScaleHeight->value(), CurrentScaleUnit(), - ScaleUnit::Percent) / 100; + qreal sx = + WidthScaleUnitConvertor(ui->doubleSpinBoxScaleWidth->value(), CurrentScaleUnit(), ScaleUnit::Percent) / 100; + qreal sy = + HeightScaleUnitConvertor(ui->doubleSpinBoxScaleHeight->value(), CurrentScaleUnit(), ScaleUnit::Percent) / + 100; QTransform imageMatrix = image.Matrix(); QPointF originPos = image.BoundingRect().center(); @@ -544,7 +550,6 @@ void VWidgetBackgroundImages::ApplyImageTransformation() auto *command = new ScaleBackgroundImage(id, imageMatrix, m_doc); VAbstractApplication::VApp()->getUndoStack()->push(command); - } else if (ui->tabWidgetImageTransformation->indexOf(ui->tabRotate) == index) { // rotate @@ -841,37 +846,37 @@ void VWidgetBackgroundImages::InitImageTranslation() const int maxTranslate = 10000; ui->doubleSpinBoxImageHorizontalTranslate->setMinimum( - UnitConvertor(minTranslate, Unit::Cm, m_oldImageTranslationUnit)); + UnitConvertor(minTranslate, Unit::Cm, m_oldImageTranslationUnit)); ui->doubleSpinBoxImageHorizontalTranslate->setMaximum( - UnitConvertor(maxTranslate, Unit::Cm, m_oldImageTranslationUnit)); + UnitConvertor(maxTranslate, Unit::Cm, m_oldImageTranslationUnit)); ui->doubleSpinBoxImageHorizontalTranslate->setValue(0); ui->doubleSpinBoxImageVerticalTranslate->setMinimum( - UnitConvertor(minTranslate, Unit::Cm, m_oldImageTranslationUnit)); + UnitConvertor(minTranslate, Unit::Cm, m_oldImageTranslationUnit)); ui->doubleSpinBoxImageVerticalTranslate->setMaximum( - UnitConvertor(maxTranslate, Unit::Cm, m_oldImageTranslationUnit)); + UnitConvertor(maxTranslate, Unit::Cm, m_oldImageTranslationUnit)); ui->doubleSpinBoxImageVerticalTranslate->setValue(0); connect(ui->comboBoxTranslateUnit, QOverload::of(&QComboBox::currentIndexChanged), this, [this V_LAMBDA_CONSTANTS(minTranslate, maxTranslate)]() - { - const Unit newUnit = CurrentTranslateUnit(); - const qreal oldTranslateX = ui->doubleSpinBoxImageHorizontalTranslate->value(); - const qreal oldTranslateY = ui->doubleSpinBoxImageVerticalTranslate->value(); + { + const Unit newUnit = CurrentTranslateUnit(); + const qreal oldTranslateX = ui->doubleSpinBoxImageHorizontalTranslate->value(); + const qreal oldTranslateY = ui->doubleSpinBoxImageVerticalTranslate->value(); - ui->doubleSpinBoxImageHorizontalTranslate->setMinimum(UnitConvertor(minTranslate, Unit::Cm, newUnit)); - ui->doubleSpinBoxImageHorizontalTranslate->setMaximum(UnitConvertor(maxTranslate, Unit::Cm, newUnit)); + ui->doubleSpinBoxImageHorizontalTranslate->setMinimum(UnitConvertor(minTranslate, Unit::Cm, newUnit)); + ui->doubleSpinBoxImageHorizontalTranslate->setMaximum(UnitConvertor(maxTranslate, Unit::Cm, newUnit)); - ui->doubleSpinBoxImageVerticalTranslate->setMinimum(UnitConvertor(minTranslate, Unit::Cm, newUnit)); - ui->doubleSpinBoxImageVerticalTranslate->setMaximum(UnitConvertor(maxTranslate, Unit::Cm, newUnit)); + ui->doubleSpinBoxImageVerticalTranslate->setMinimum(UnitConvertor(minTranslate, Unit::Cm, newUnit)); + ui->doubleSpinBoxImageVerticalTranslate->setMaximum(UnitConvertor(maxTranslate, Unit::Cm, newUnit)); - ui->doubleSpinBoxImageHorizontalTranslate->setValue( + ui->doubleSpinBoxImageHorizontalTranslate->setValue( UnitConvertor(oldTranslateX, m_oldImageTranslationUnit, newUnit)); - ui->doubleSpinBoxImageVerticalTranslate->setValue( + ui->doubleSpinBoxImageVerticalTranslate->setValue( UnitConvertor(oldTranslateY, m_oldImageTranslationUnit, newUnit)); - m_oldImageTranslationUnit = newUnit; - }); + m_oldImageTranslationUnit = newUnit; + }); SetCheckBoxValue(ui->checkBoxRelativeTranslation, true); connect(ui->checkBoxRelativeTranslation, &QCheckBox::toggled, this, @@ -899,40 +904,40 @@ void VWidgetBackgroundImages::InitImageTranslation() ui->doubleSpinBoxScaleHeight->setMaximum(maxScale); ui->doubleSpinBoxScaleHeight->setValue(100); - connect(ui->comboBoxScaleUnit, QOverload::of(&QComboBox::currentIndexChanged), this, - [this V_LAMBDA_CONSTANTS(minScale, maxScale)]() - { - const ScaleUnit newUnit = CurrentScaleUnit(); - const qreal oldScaleWidth = ui->doubleSpinBoxScaleWidth->value(); - const qreal oldScaleHeight = ui->doubleSpinBoxScaleHeight->value(); - - ui->doubleSpinBoxScaleWidth->blockSignals(true); - - ui->doubleSpinBoxScaleWidth->setMinimum(WidthScaleUnitConvertor(minScale, ScaleUnit::Percent, newUnit)); - ui->doubleSpinBoxScaleWidth->setMinimum(WidthScaleUnitConvertor(minScale, ScaleUnit::Percent, newUnit)); - - ui->doubleSpinBoxScaleWidth->setValue( - WidthScaleUnitConvertor(oldScaleWidth, m_oldImageScaleUnit, newUnit)); - ui->doubleSpinBoxScaleWidth->blockSignals(false); - - ui->doubleSpinBoxScaleHeight->blockSignals(true); - - ui->doubleSpinBoxScaleHeight->setMaximum(HeightScaleUnitConvertor(maxScale, ScaleUnit::Percent, newUnit)); - ui->doubleSpinBoxScaleHeight->setMaximum(HeightScaleUnitConvertor(maxScale, ScaleUnit::Percent, newUnit)); - - if (ui->checkBoxScaleProportionally->isChecked() && newUnit == ScaleUnit::Percent) + connect( + ui->comboBoxScaleUnit, QOverload::of(&QComboBox::currentIndexChanged), this, + [this V_LAMBDA_CONSTANTS(minScale, maxScale)]() { - ui->doubleSpinBoxScaleHeight->setValue(ui->doubleSpinBoxScaleWidth->value()); - } - else - { - ui->doubleSpinBoxScaleHeight->setValue( - HeightScaleUnitConvertor(oldScaleHeight, m_oldImageScaleUnit, newUnit)); - } - ui->doubleSpinBoxScaleHeight->blockSignals(false); + const ScaleUnit newUnit = CurrentScaleUnit(); + const qreal oldScaleWidth = ui->doubleSpinBoxScaleWidth->value(); + const qreal oldScaleHeight = ui->doubleSpinBoxScaleHeight->value(); - m_oldImageScaleUnit = newUnit; - }); + ui->doubleSpinBoxScaleWidth->blockSignals(true); + + ui->doubleSpinBoxScaleWidth->setMinimum(WidthScaleUnitConvertor(minScale, ScaleUnit::Percent, newUnit)); + ui->doubleSpinBoxScaleWidth->setMinimum(WidthScaleUnitConvertor(minScale, ScaleUnit::Percent, newUnit)); + + ui->doubleSpinBoxScaleWidth->setValue(WidthScaleUnitConvertor(oldScaleWidth, m_oldImageScaleUnit, newUnit)); + ui->doubleSpinBoxScaleWidth->blockSignals(false); + + ui->doubleSpinBoxScaleHeight->blockSignals(true); + + ui->doubleSpinBoxScaleHeight->setMaximum(HeightScaleUnitConvertor(maxScale, ScaleUnit::Percent, newUnit)); + ui->doubleSpinBoxScaleHeight->setMaximum(HeightScaleUnitConvertor(maxScale, ScaleUnit::Percent, newUnit)); + + if (ui->checkBoxScaleProportionally->isChecked() && newUnit == ScaleUnit::Percent) + { + ui->doubleSpinBoxScaleHeight->setValue(ui->doubleSpinBoxScaleWidth->value()); + } + else + { + ui->doubleSpinBoxScaleHeight->setValue( + HeightScaleUnitConvertor(oldScaleHeight, m_oldImageScaleUnit, newUnit)); + } + ui->doubleSpinBoxScaleHeight->blockSignals(false); + + m_oldImageScaleUnit = newUnit; + }); connect(ui->doubleSpinBoxScaleHeight, QOverload::of(&QDoubleSpinBox::valueChanged), this, &VWidgetBackgroundImages::ScaleHeightChanged); @@ -1016,7 +1021,7 @@ void VWidgetBackgroundImages::SetAbsolutePisition(const QUuid &id) QRectF rect = image.BoundingRect(); ui->doubleSpinBoxImageHorizontalTranslate->setValue( - UnitConvertor(rect.topLeft().x(), Unit::Px, CurrentTranslateUnit())); + UnitConvertor(rect.topLeft().x(), Unit::Px, CurrentTranslateUnit())); ui->doubleSpinBoxImageVerticalTranslate->setValue( - UnitConvertor(rect.topLeft().y(), Unit::Px, CurrentTranslateUnit())); + UnitConvertor(rect.topLeft().y(), Unit::Px, CurrentTranslateUnit())); } diff --git a/src/app/valentina/dialogs/vwidgetbackgroundimages.ui b/src/app/valentina/dialogs/vwidgetbackgroundimages.ui index bf531036a..ba43a4d01 100644 --- a/src/app/valentina/dialogs/vwidgetbackgroundimages.ui +++ b/src/app/valentina/dialogs/vwidgetbackgroundimages.ui @@ -306,7 +306,7 @@ - ... + @@ -322,7 +322,7 @@ - ... + @@ -338,7 +338,7 @@ - ... + @@ -354,7 +354,7 @@ - ... + diff --git a/src/app/valentina/dialogs/vwidgetgroups.cpp b/src/app/valentina/dialogs/vwidgetgroups.cpp index 7fcef6168..bcfc53168 100644 --- a/src/app/valentina/dialogs/vwidgetgroups.cpp +++ b/src/app/valentina/dialogs/vwidgetgroups.cpp @@ -27,11 +27,13 @@ *************************************************************************/ #include "vwidgetgroups.h" -#include "ui_vwidgetgroups.h" +#include "../vmisc/compatibility.h" +#include "../vmisc/theme/vtheme.h" +#include "../vpatterndb/vcontainer.h" #include "../vtools/dialogs/tools/dialoggroup.h" #include "../vtools/undocommands/undogroup.h" -#include "../vpatterndb/vcontainer.h" -#include "../vmisc/compatibility.h" +#include "qstringliteral.h" +#include "ui_vwidgetgroups.h" #include #include @@ -39,9 +41,9 @@ //--------------------------------------------------------------------------------------------------------------------- VWidgetGroups::VWidgetGroups(VAbstractPattern *doc, QWidget *parent) - : QWidget(parent), - ui(new Ui::VWidgetGroups), - m_doc(doc) + : QWidget(parent), + ui(new Ui::VWidgetGroups), + m_doc(doc) { ui->setupUi(this); @@ -66,21 +68,23 @@ VWidgetGroups::~VWidgetGroups() void VWidgetGroups::SetGroupVisibility(vidtype id, bool visible) const { auto *changeGroup = new ChangeGroupVisibility(m_doc, id, visible); - connect(changeGroup, &ChangeGroupVisibility::UpdateGroup, this, [this](vidtype id, bool visible) - { - int row = GroupRow(id); - if (row == -1) - { - return; - } + connect(changeGroup, &ChangeGroupVisibility::UpdateGroup, this, + [this](vidtype id, bool visible) + { + int row = GroupRow(id); + if (row == -1) + { + return; + } - QTableWidgetItem *item = ui->tableWidget->item(row, 0); - if (item) - { - (visible) ? item->setIcon(QIcon(QStringLiteral("://icon/16x16/open_eye.png"))) - : item->setIcon(QIcon(QStringLiteral("://icon/16x16/closed_eye.png"))); - } - }); + QTableWidgetItem *item = ui->tableWidget->item(row, 0); + if (item) + { + const QString resource = QStringLiteral("icon"); + item->setIcon(visible ? VTheme::GetIconResource(resource, QStringLiteral("16x16/open_eye.png")) + : VTheme::GetIconResource(resource, QStringLiteral("16x16/closed_eye.png"))); + } + }); VAbstractApplication::VApp()->getUndoStack()->push(changeGroup); } @@ -90,27 +94,28 @@ void VWidgetGroups::SetMultipleGroupsVisibility(const QVector &groups, auto *changeGroups = new ChangeMultipleGroupsVisibility(m_doc, groups, visible); connect(changeGroups, &ChangeMultipleGroupsVisibility::UpdateMultipleGroups, this, [this](const QMap &groups) - { - QMap::const_iterator i = groups.constBegin(); - while (i != groups.constEnd()) - { - int row = GroupRow(i.key()); - if (row == -1) { - ++i; - continue; - } + QMap::const_iterator i = groups.constBegin(); + while (i != groups.constEnd()) + { + int row = GroupRow(i.key()); + if (row == -1) + { + ++i; + continue; + } - QTableWidgetItem *item = ui->tableWidget->item(row, 0); - if (item) - { - (i.value()) ? item->setIcon(QIcon(QStringLiteral("://icon/16x16/open_eye.png"))) - : item->setIcon(QIcon(QStringLiteral("://icon/16x16/closed_eye.png"))); - } - ++i; - } - - }); + QTableWidgetItem *item = ui->tableWidget->item(row, 0); + if (item) + { + const QString resource = QStringLiteral("icon"); + item->setIcon(i.value() + ? VTheme::GetIconResource(resource, QStringLiteral("16x16/open_eye.png")) + : VTheme::GetIconResource(resource, QStringLiteral("16x16/closed_eye.png"))); + } + ++i; + } + }); VAbstractApplication::VApp()->getUndoStack()->push(changeGroups); } @@ -259,7 +264,7 @@ void VWidgetGroups::RenameGroup(int row, int column) void VWidgetGroups::CtxMenu(const QPoint &pos) { QTableWidgetItem *item = ui->tableWidget->itemAt(pos); - if(not item) + if (not item) { return; } @@ -283,9 +288,11 @@ void VWidgetGroups::CtxMenu(const QPoint &pos) }; QScopedPointer menu(new QMenu()); - QAction *triggerVisibilityMenu = m_doc->GetGroupVisibility(id) ? - menu->addAction(QIcon(QStringLiteral("://icon/16x16/closed_eye.png")), tr("Hide")) : - menu->addAction(QIcon(QStringLiteral("://icon/16x16/open_eye.png")), tr("Show")); + const QString resource = QStringLiteral("icon"); + QAction *triggerVisibilityMenu = + m_doc->GetGroupVisibility(id) + ? menu->addAction(VTheme::GetIconResource(resource, QStringLiteral("16x16/closed_eye.png")), tr("Hide")) + : menu->addAction(VTheme::GetIconResource(resource, QStringLiteral("16x16/open_eye.png")), tr("Show")); QAction *actionPreferences = menu->addAction(QIcon::fromTheme(preferencesOtherIcon), tr("Preferences")); QAction *actionDelete = menu->addAction(QIcon::fromTheme(editDeleteIcon), tr("Delete")); @@ -312,11 +319,11 @@ void VWidgetGroups::CtxMenu(const QPoint &pos) VAbstractApplication::VApp()->getUndoStack()->push(delGroup); } else if (selectedAction == actionHideAll) - {//all groups in "group" make unvisible + { // all groups in "group" make unvisible ActionHideAll(); } else if (selectedAction == actionShowAll) - {//all groups in "group" make visible + { // all groups in "group" make visible ActionShowAll(); } } @@ -346,10 +353,11 @@ void VWidgetGroups::FillTable(QMap groups) ++currentRow; const VGroupData data = i.value(); + const QString resource = QStringLiteral("icon"); auto *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignHCenter); - (data.visible) ? item->setIcon(QIcon("://icon/16x16/open_eye.png")) - : item->setIcon(QIcon("://icon/16x16/closed_eye.png")); + (data.visible) ? item->setIcon(VTheme::GetIconResource(resource, QStringLiteral("16x16/open_eye.png"))) + : item->setIcon(VTheme::GetIconResource(resource, QStringLiteral("16x16/closed_eye.png"))); item->setData(Qt::UserRole, i.key()); @@ -367,7 +375,7 @@ void VWidgetGroups::FillTable(QMap groups) item->setToolTip(tr("Categories: %1.").arg(data.tags.join(QStringLiteral(", ")))); } - if(data.items.isEmpty()) + if (data.items.isEmpty()) { QFont font = item->font(); font.setStrikeOut(true); diff --git a/src/app/valentina/main.cpp b/src/app/valentina/main.cpp index cd91d97a5..0231e6ae8 100644 --- a/src/app/valentina/main.cpp +++ b/src/app/valentina/main.cpp @@ -58,13 +58,14 @@ auto main(int argc, char *argv[]) -> int auto FreeMemory = qScopeGuard([exe_dir] { free(exe_dir); }); #endif // defined(APPIMAGE) && defined(Q_OS_LINUX) - Q_INIT_RESOURCE(cursor); // NOLINT - Q_INIT_RESOURCE(icon); // NOLINT - Q_INIT_RESOURCE(schema); // NOLINT - Q_INIT_RESOURCE(flags); // NOLINT - Q_INIT_RESOURCE(icons); // NOLINT - Q_INIT_RESOURCE(toolicon); // NOLINT - Q_INIT_RESOURCE(breeze); // NOLINT + Q_INIT_RESOURCE(cursor); // NOLINT + Q_INIT_RESOURCE(icon); // NOLINT + Q_INIT_RESOURCE(schema); // NOLINT + Q_INIT_RESOURCE(flags); // NOLINT + Q_INIT_RESOURCE(icons); // NOLINT + Q_INIT_RESOURCE(toolicon); // NOLINT + Q_INIT_RESOURCE(breeze); // NOLINT + Q_INIT_RESOURCE(scenestyle); // NOLINT #if defined(Q_OS_MACX) Q_INIT_RESOURCE(mac_theme); // NOLINT #else diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 95aa81dcf..86eb81b4e 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -27,76 +27,63 @@ *************************************************************************/ #include "mainwindow.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "../ifc/exception/vexceptionconversionerror.h" #include "../ifc/exception/vexceptionemptyparameter.h" #include "../ifc/exception/vexceptioninvalidhistory.h" #include "../ifc/exception/vexceptionobjecterror.h" #include "../ifc/exception/vexceptionundo.h" #include "../ifc/exception/vexceptionwrongid.h" +#include "../ifc/xml/utils.h" +#include "../ifc/xml/vbackgroundpatternimage.h" #include "../ifc/xml/vpatternconverter.h" #include "../ifc/xml/vvitconverter.h" #include "../ifc/xml/vvstconverter.h" #include "../vformat/vmeasurements.h" #include "../vformat/vpatternrecipe.h" #include "../vganalytics/vganalytics.h" +#include "../vlayout/dialogs/dialoglayoutscale.h" #include "../vlayout/dialogs/watermarkwindow.h" +#include "../vlayout/vlayoutexporter.h" #include "../vmisc/customevents.h" #include "../vmisc/def.h" #include "../vmisc/dialogs/dialogaskcollectstatistic.h" +#include "../vmisc/dialogs/dialogselectlanguage.h" #include "../vmisc/qxtcsvmodel.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vmodifierkey.h" #include "../vmisc/vsysexits.h" #include "../vmisc/vvalentinasettings.h" -#include "../vtools/undocommands/renamepp.h" -#include "../vtools/undocommands/undogroup.h" -#include "../vwidgets/vmaingraphicsscene.h" -#include "../vwidgets/vtoolbuttonpopup.h" -#include "../vwidgets/vwidgetpopup.h" -#include "core/vapplication.h" -#include "core/vtooloptionspropertybrowser.h" -#include "theme/vtheme.h" -#include "ui_mainwindow.h" -#include "vabstractapplication.h" -#include "vsinglelineoutlinechar.h" -#include - -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -#include "../vmisc/vtextcodec.h" -#else -#include -#endif - -#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vmisc/backport/qoverload.h" -#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) - -#include "../vlayout/dialogs/dialoglayoutscale.h" -#include "../vlayout/vlayoutexporter.h" -#include "../vmisc/dialogs/dialogselectlanguage.h" -#include "../vwidgets/vgraphicssimpletextitem.h" - #include "../vpatterndb/variables/vincrement.h" #include "../vpatterndb/variables/vmeasurement.h" - -#include "../ifc/xml/utils.h" -#include "../ifc/xml/vbackgroundpatternimage.h" -#include "../vtools/undocommands/image/addbackgroundimage.h" -#include "../vtools/undocommands/image/deletebackgroundimage.h" - -#include "dialogs/dialogaboutapp.h" -#include "dialogs/dialogaddbackgroundimage.h" -#include "dialogs/dialogfinalmeasurements.h" -#include "dialogs/dialoghistory.h" -#include "dialogs/dialogincrements.h" -#include "dialogs/dialognewpattern.h" -#include "dialogs/dialogpatternproperties.h" -#include "dialogs/dialogpreferences.h" -#include "dialogs/vwidgetbackgroundimages.h" -#include "dialogs/vwidgetdetails.h" -#include "dialogs/vwidgetgroups.h" - #include "../vtools/dialogs/support/dialogeditlabel.h" - #include "../vtools/dialogs/tools/dialogalongline.h" #include "../vtools/dialogs/tools/dialogarc.h" #include "../vtools/dialogs/tools/dialogarcwithlength.h" @@ -138,12 +125,10 @@ #include "../vtools/dialogs/tools/piece/dialogpin.h" #include "../vtools/dialogs/tools/piece/dialogplacelabel.h" #include "../vtools/dialogs/tools/piece/dialogseamallowance.h" - #include "../vtools/tools/backgroundimage/vbackgroundimagecontrols.h" #include "../vtools/tools/backgroundimage/vbackgroundimageitem.h" #include "../vtools/tools/backgroundimage/vbackgroundpixmapitem.h" #include "../vtools/tools/backgroundimage/vbackgroundsvgitem.h" - #include "../vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h" #include "../vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.h" #include "../vtools/tools/drawTools/operation/vtoolmove.h" @@ -178,12 +163,46 @@ #include "../vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.h" #include "../vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.h" #include "../vtools/tools/drawTools/vtoolline.h" -#include "../vtools/tools/vtoolseamallowance.h" -#include "../vtools/tools/vtooluniondetails.h" - #include "../vtools/tools/nodeDetails/vtoolpiecepath.h" #include "../vtools/tools/nodeDetails/vtoolpin.h" #include "../vtools/tools/nodeDetails/vtoolplacelabel.h" +#include "../vtools/tools/vtoolseamallowance.h" +#include "../vtools/tools/vtooluniondetails.h" +#include "../vtools/undocommands/image/addbackgroundimage.h" +#include "../vtools/undocommands/image/deletebackgroundimage.h" +#include "../vtools/undocommands/renamepp.h" +#include "../vtools/undocommands/undogroup.h" +#include "../vwidgets/vgraphicssimpletextitem.h" +#include "../vwidgets/vmaingraphicsscene.h" +#include "../vwidgets/vtoolbuttonpopup.h" +#include "../vwidgets/vwidgetpopup.h" +#include "core/vapplication.h" +#include "core/vtooloptionspropertybrowser.h" +#include "dialogs/dialogaboutapp.h" +#include "dialogs/dialogaddbackgroundimage.h" +#include "dialogs/dialogfinalmeasurements.h" +#include "dialogs/dialoghistory.h" +#include "dialogs/dialogincrements.h" +#include "dialogs/dialognewpattern.h" +#include "dialogs/dialogpatternproperties.h" +#include "dialogs/dialogpreferences.h" +#include "dialogs/vwidgetbackgroundimages.h" +#include "dialogs/vwidgetdetails.h" +#include "dialogs/vwidgetgroups.h" +#include "qstringliteral.h" +#include "ui_mainwindow.h" +#include "vabstractapplication.h" +#include "vsinglelineoutlinechar.h" + +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include "../vmisc/vtextcodec.h" +#else +#include +#endif + +#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../vmisc/backport/qoverload.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #include "../vmisc/diagnostic.h" @@ -195,38 +214,10 @@ #include #endif -#include -#include -#include -#include -#include -#include - #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include #endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #if defined(Q_OS_WIN32) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) #include #include @@ -2490,7 +2481,7 @@ void MainWindow::ExportDraw(const QString &fileName) if (item->type() == VGraphicsSimpleTextItem::Type) { auto *text = dynamic_cast(item); - text->setBrush(text->BaseColor()); // Regular update doesn't work on labels + text->RefreshColor(); // Regular update doesn't work on labels } } @@ -2835,12 +2826,14 @@ void MainWindow::ToolBarOption() //--------------------------------------------------------------------------------------------------------------------- void MainWindow::ToolBarStages() { + const QString resource = QStringLiteral("icon"); + m_leftGoToStage = new QLabel(this); - m_leftGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/fast_forward_left_to_right_arrow.png"))); + m_leftGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-next-skip.png"))); ui->toolBarStages->insertWidget(ui->actionDetails, m_leftGoToStage); m_rightGoToStage = new QLabel(this); - m_rightGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/left_to_right_arrow.png"))); + m_rightGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-next.png"))); ui->toolBarStages->insertWidget(ui->actionLayout, m_rightGoToStage); } @@ -3687,8 +3680,10 @@ void MainWindow::ActionDraw(bool checked) qCDebug(vMainWindow, "Show draw scene"); ArrowTool(true); - m_leftGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/fast_forward_left_to_right_arrow.png"))); - m_rightGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/left_to_right_arrow.png"))); + const QString resource = QStringLiteral("icon"); + + m_leftGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-next-skip.png"))); + m_rightGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-next.png"))); ui->actionDraw->setChecked(true); ui->actionDetails->setChecked(false); @@ -3745,8 +3740,9 @@ void MainWindow::ActionDetails(bool checked) } m_comboBoxDraws->setCurrentIndex(m_comboBoxDraws->count() - 1); // Need to get data about all details - m_leftGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/right_to_left_arrow.png"))); - m_rightGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/left_to_right_arrow.png"))); + const QString resource = QStringLiteral("icon"); + m_leftGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-previous.png"))); + m_rightGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-next.png"))); ui->actionDraw->setChecked(false); ui->actionDetails->setChecked(true); @@ -3826,8 +3822,9 @@ void MainWindow::ActionLayout(bool checked) } m_comboBoxDraws->setCurrentIndex(m_comboBoxDraws->count() - 1); // Need to get data about all details - m_leftGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/right_to_left_arrow.png"))); - m_rightGoToStage->setPixmap(QPixmap(QStringLiteral("://icon/24x24/fast_forward_right_to_left_arrow.png"))); + const QString resource = QStringLiteral("icon"); + m_leftGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-previous.png"))); + m_rightGoToStage->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/go-previous-skip.png"))); ui->actionDraw->setChecked(false); ui->actionDetails->setChecked(false); @@ -5554,11 +5551,9 @@ auto MainWindow::MaybeSave() -> bool { if (this->isWindowModified() && m_guiEnabled) { - QScopedPointer messageBox(new QMessageBox(tr("Unsaved changes"), - tr("The pattern has been modified.\n" - "Do you want to save your changes?"), - QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, - QMessageBox::Cancel, this, Qt::Sheet)); + QScopedPointer messageBox(new QMessageBox( + tr("Unsaved changes"), tr("The pattern has been modified. Do you want to save your changes?"), + QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel, this, Qt::Sheet)); messageBox->setDefaultButton(QMessageBox::Yes); messageBox->setEscapeButton(QMessageBox::Cancel); diff --git a/src/app/valentina/mainwindowsnogui.cpp b/src/app/valentina/mainwindowsnogui.cpp index 5d0176860..6c992d5e8 100644 --- a/src/app/valentina/mainwindowsnogui.cpp +++ b/src/app/valentina/mainwindowsnogui.cpp @@ -193,7 +193,7 @@ auto MainWindowsNoGUI::GenerateLayout(VLayoutGenerator &lGenerator) -> bool #if defined(Q_OS_WIN32) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) QTimer *progressTimer = nullptr; #endif - + QSharedPointer progress; if (VApplication::IsGUIMode()) { @@ -206,10 +206,10 @@ auto MainWindowsNoGUI::GenerateLayout(VLayoutGenerator &lGenerator) -> bool [this, timer]() { m_taskbarProgress->setValue(static_cast(timer.elapsed() / 1000)); }); progressTimer->start(1000); #endif - + progress = QSharedPointer( new DialogLayoutProgress(timer, lGenerator.GetNestingTimeMSecs(), this)); - + connect(progress.data(), &DialogLayoutProgress::Abort, &lGenerator, &VLayoutGenerator::Abort); connect(progress.data(), &DialogLayoutProgress::Timeout, &lGenerator, &VLayoutGenerator::Timeout); @@ -906,7 +906,7 @@ auto MainWindowsNoGUI::RecentFileList() const -> QStringList auto MainWindowsNoGUI::ScenePreview(int i, QSize iconSize, PreviewQuatilty quality) const -> QIcon { QImage image; - QGraphicsRectItem *paper = qgraphicsitem_cast(m_layoutSettings->LayoutPapers().at(i)); + auto *paper = qgraphicsitem_cast(m_layoutSettings->LayoutPapers().at(i)); if (paper) { if (quality == PreviewQuatilty::Fast) @@ -947,21 +947,22 @@ auto MainWindowsNoGUI::ScenePreview(int i, QSize iconSize, PreviewQuatilty quali image = QImage(iconSize, QImage::Format_RGB32); image.fill(Qt::white); } - return QIcon(QBitmap::fromImage(image)); + return {QBitmap::fromImage(image)}; } //--------------------------------------------------------------------------------------------------------------------- auto MainWindowsNoGUI::CreateShadows(const QList &papers) -> QList { QList shadows; + shadows.reserve(papers.size()); for (auto *paper : papers) { qreal x1 = 0, y1 = 0, x2 = 0, y2 = 0; - if (QGraphicsRectItem *item = qgraphicsitem_cast(paper)) + if (auto *item = qgraphicsitem_cast(paper)) { item->rect().getCoords(&x1, &y1, &x2, &y2); - QGraphicsRectItem *shadowPaper = new QGraphicsRectItem(QRectF(x1 + 4, y1 + 4, x2 + 4, y2 + 4)); + auto *shadowPaper = new QGraphicsRectItem(QRectF(x1 + 4, y1 + 4, x2 + 4, y2 + 4)); shadowPaper->setBrush(QBrush(Qt::black)); shadows.append(shadowPaper); } diff --git a/src/libs/fervor/fvupdatewindow.cpp b/src/libs/fervor/fvupdatewindow.cpp index ef0fc0380..dea67b7ac 100644 --- a/src/libs/fervor/fvupdatewindow.cpp +++ b/src/libs/fervor/fvupdatewindow.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include "fvavailableupdate.h" #include "fvupdater.h" @@ -33,8 +32,8 @@ //--------------------------------------------------------------------------------------------------------------------- FvUpdateWindow::FvUpdateWindow(QWidget *parent) - : QDialog(parent), - m_ui(new Ui::FvUpdateWindow) + : QDialog(parent), + m_ui(new Ui::FvUpdateWindow) { m_ui->setupUi(this); @@ -42,8 +41,8 @@ FvUpdateWindow::FvUpdateWindow(QWidget *parent) setAttribute(Qt::WA_DeleteOnClose, true); // Set the "new version is available" string - const QString newVersString = m_ui->newVersionIsAvailableLabel->text() - .arg(QGuiApplication::applicationDisplayName()); + const QString newVersString = + m_ui->newVersionIsAvailableLabel->text().arg(QGuiApplication::applicationDisplayName()); m_ui->newVersionIsAvailableLabel->setText(newVersString); // Connect buttons @@ -71,13 +70,13 @@ auto FvUpdateWindow::UpdateWindowWithCurrentProposedUpdate() -> bool if (FvUpdater::IsTestBuild()) { downloadString = tr("New %1 test version is now available. Would you like to download it now?") - .arg(QGuiApplication::applicationDisplayName()); + .arg(QGuiApplication::applicationDisplayName()); } else { - downloadString = m_ui->wouldYouLikeToDownloadLabel->text() - .arg(QGuiApplication::applicationDisplayName(), proposedUpdate->GetEnclosureVersion(), - QCoreApplication::applicationVersion()); + downloadString = m_ui->wouldYouLikeToDownloadLabel->text().arg(QGuiApplication::applicationDisplayName(), + proposedUpdate->GetEnclosureVersion(), + QCoreApplication::applicationVersion()); } m_ui->wouldYouLikeToDownloadLabel->setText(downloadString); diff --git a/src/libs/ifc/ifcdef.cpp b/src/libs/ifc/ifcdef.cpp index 7355a8743..6c3ccf217 100644 --- a/src/libs/ifc/ifcdef.cpp +++ b/src/libs/ifc/ifcdef.cpp @@ -218,38 +218,40 @@ auto PenStyleToLineStyle(Qt::PenStyle penStyle) -> QString } //--------------------------------------------------------------------------------------------------------------------- -auto PenStylePic(Qt::PenStyle style) -> QIcon +auto PenStylePic(QColor backgroundColor, QColor textColor, Qt::PenStyle style) -> QIcon { QPixmap pix(80, 14); - pix.fill(Qt::white); + pix.fill(backgroundColor); - QBrush brush(Qt::black); - QPen pen(brush, 2.5, style); + QPen pen(textColor, 2.5, style); QPainter painter(&pix); painter.setPen(pen); painter.drawLine(2, 7, 78, 7); - return QIcon(pix); + painter.setPen(QPen(textColor, 0.25)); + painter.drawRect(0, 0, pix.width() - 1, pix.height() - 1); + + return {pix}; } //--------------------------------------------------------------------------------------------------------------------- -auto LineStylesPics() -> QMap +auto LineStylesPics(QColor backgroundColor, QColor textColor) -> QMap { QMap map; const QStringList styles = StylesList(); for (const auto &s : styles) { - map.insert(s, PenStylePic(LineStyleToPenStyle(s))); + map.insert(s, PenStylePic(backgroundColor, textColor, LineStyleToPenStyle(s))); } return map; } //--------------------------------------------------------------------------------------------------------------------- -auto CurvePenStylesPics() -> QMap +auto CurvePenStylesPics(QColor backgroundColor, QColor textColor) -> QMap { - QMap map = LineStylesPics(); + QMap map = LineStylesPics(backgroundColor, textColor); map.remove(TypeLineNone); return map; } diff --git a/src/libs/ifc/ifcdef.h b/src/libs/ifc/ifcdef.h index 71e311816..ff200bc3f 100644 --- a/src/libs/ifc/ifcdef.h +++ b/src/libs/ifc/ifcdef.h @@ -179,9 +179,9 @@ extern const QString TypeLineDashDotDotLine; auto StylesList() -> QStringList; auto LineStyleToPenStyle(const QString &typeLine) -> Qt::PenStyle; auto PenStyleToLineStyle(Qt::PenStyle penStyle) -> QString; -auto PenStylePic(Qt::PenStyle style) -> QIcon; -auto LineStylesPics() -> QMap; -auto CurvePenStylesPics() -> QMap; +auto PenStylePic(QColor backgroundColor, QColor textColor, Qt::PenStyle style) -> QIcon; +auto LineStylesPics(QColor backgroundColor, QColor textColor) -> QMap; +auto CurvePenStylesPics(QColor backgroundColor, QColor textColor) -> QMap; extern const QString ColorDefault; extern const QString ColorBlack; diff --git a/src/libs/vdxf/vdxfengine.cpp b/src/libs/vdxf/vdxfengine.cpp index 8ac2e8451..9c28c0908 100644 --- a/src/libs/vdxf/vdxfengine.cpp +++ b/src/libs/vdxf/vdxfengine.cpp @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include diff --git a/src/libs/vgeometry/vspline_p.h b/src/libs/vgeometry/vspline_p.h index c8ac8b46b..7b04ff247 100644 --- a/src/libs/vgeometry/vspline_p.h +++ b/src/libs/vgeometry/vspline_p.h @@ -108,12 +108,18 @@ inline VSplineData::VSplineData(const VPointF &p1, const VPointF &p4, qreal angl QLineF p1p2(p1.x(), p1.y(), p1.x() + L * kAsm1, p1.y()); p1p2.setAngle(angle1); c1Length = p1p2.length(); - c1LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c1Length)); + if (VAbstractValApplication::VApp()) + { + c1LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c1Length)); + } QLineF p4p3(p4.x(), p4.y(), p4.x() + L * kAsm2, p4.y()); p4p3.setAngle(angle2); c2Length = p4p3.length(); - c2LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c2Length)); + if (VAbstractValApplication::VApp()) + { + c2LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c2Length)); + } } //--------------------------------------------------------------------------------------------------------------------- @@ -127,7 +133,10 @@ inline VSplineData::VSplineData(const VPointF &p1, QPointF p2, QPointF p3, const angle1F = QString::number(angle1); c1Length = p1p2.length(); - c1LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c1Length)); + if (VAbstractValApplication::VApp()) + { + c1LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c1Length)); + } QLineF p4p3(static_cast(p4), static_cast(p3)); @@ -135,7 +144,10 @@ inline VSplineData::VSplineData(const VPointF &p1, QPointF p2, QPointF p3, const angle2F = QString::number(angle2); c2Length = p4p3.length(); - c2LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c2Length)); + if (VAbstractValApplication::VApp()) + { + c2LengthF = QString::number(VAbstractValApplication::VApp()->fromPixel(c2Length)); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vlayout/dialogs/dialoglayoutscale.ui b/src/libs/vlayout/dialogs/dialoglayoutscale.ui index 0cc38f3c5..4f878c0ce 100644 --- a/src/libs/vlayout/dialogs/dialoglayoutscale.ui +++ b/src/libs/vlayout/dialogs/dialoglayoutscale.ui @@ -236,7 +236,7 @@ - ... + diff --git a/src/libs/vlayout/dialogs/watermarkwindow.cpp b/src/libs/vlayout/dialogs/watermarkwindow.cpp index 852d5db43..d00e9bad1 100644 --- a/src/libs/vlayout/dialogs/watermarkwindow.cpp +++ b/src/libs/vlayout/dialogs/watermarkwindow.cpp @@ -42,12 +42,12 @@ #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vmisc/def.h" -#include "../vmisc/vabstractapplication.h" -#include "../vpropertyexplorer/checkablemessagebox.h" #include "../ifc/exception/vexception.h" #include "../ifc/xml/vwatermarkconverter.h" #include "../vformat/vwatermark.h" +#include "../vmisc/def.h" +#include "../vmisc/vabstractapplication.h" +#include "../vpropertyexplorer/checkablemessagebox.h" //--------------------------------------------------------------------------------------------------------------------- WatermarkWindow::WatermarkWindow(const QString &patternPath, QWidget *parent) @@ -66,54 +66,54 @@ WatermarkWindow::WatermarkWindow(const QString &patternPath, QWidget *parent) ToolBarStyle(ui->toolBar); - connect(ui->spinBoxOpacity, QOverload::of(&QSpinBox::valueChanged),this, - [this](){WatermarkChangesWereSaved(false);}); + connect(ui->spinBoxOpacity, QOverload::of(&QSpinBox::valueChanged), this, + [this]() { WatermarkChangesWereSaved(false); }); - connect(ui->lineEditText, &QLineEdit::textChanged, this, [this]() - { - WatermarkChangesWereSaved(false); - }); + connect(ui->lineEditText, &QLineEdit::textChanged, this, [this]() { WatermarkChangesWereSaved(false); }); connect(ui->spinBoxTextRotation, QOverload::of(&QSpinBox::valueChanged), this, - [this](){WatermarkChangesWereSaved(false);}); + [this]() { WatermarkChangesWereSaved(false); }); - connect(ui->toolButtonFont, &QToolButton::clicked, this, [this]() - { - bool ok; - QFont font = QFontDialog::getFont(&ok, m_data.font, this); - if (ok) - { - WatermarkChangesWereSaved(false); - m_data.font = font; - ui->lineEditFontSample->setFont(font); - } - }); + connect(ui->toolButtonFont, &QToolButton::clicked, this, + [this]() + { + bool ok; + QFont font = QFontDialog::getFont(&ok, m_data.font, this); + if (ok) + { + WatermarkChangesWereSaved(false); + m_data.font = font; + ui->lineEditFontSample->setFont(font); + } + }); - connect(ui->lineEditPath, &QLineEdit::textChanged, this, [this]() - { - WatermarkChangesWereSaved(false); - ValidatePath(); - }); + connect(ui->lineEditPath, &QLineEdit::textChanged, this, + [this]() + { + WatermarkChangesWereSaved(false); + ValidatePath(); + }); - connect(ui->pushButtonBrowse, &QPushButton::clicked, this, [this]() - { - const QString filter = tr("Images") + QLatin1String(" (*.png *.jpg *.jpeg *.bmp)"); - const QString fileName = QFileDialog::getOpenFileName(this, tr("Watermark image"), QString(), filter, - nullptr, - VAbstractApplication::VApp()->NativeFileDialog()); - if (not fileName.isEmpty()) - { - ui->lineEditPath->setText(fileName); - } - }); + connect(ui->pushButtonBrowse, &QPushButton::clicked, this, + [this]() + { + const QString filter = tr("Images") + QLatin1String(" (*.png *.jpg *.jpeg *.bmp)"); + const QString fileName = + QFileDialog::getOpenFileName(this, tr("Watermark image"), QString(), filter, nullptr, + VAbstractApplication::VApp()->NativeFileDialog()); + if (not fileName.isEmpty()) + { + ui->lineEditPath->setText(fileName); + } + }); - connect(ui->spinBoxImageRotation, QOverload::of(&QSpinBox::valueChanged),this, - [this](){WatermarkChangesWereSaved(false);}); + connect(ui->spinBoxImageRotation, QOverload::of(&QSpinBox::valueChanged), this, + [this]() { WatermarkChangesWereSaved(false); }); - connect(ui->checkBoxGrayColor, &QCheckBox::stateChanged, this, [this](){WatermarkChangesWereSaved(false);}); + connect(ui->checkBoxGrayColor, &QCheckBox::stateChanged, this, [this]() { WatermarkChangesWereSaved(false); }); - connect(ui->groupBoxWatermarkText, &QGroupBox::toggled, this, [this](){WatermarkChangesWereSaved(false);}); - connect(ui->groupBoxWatermarkImage, &QGroupBox::toggled, this, [this](){WatermarkChangesWereSaved(false);}); + connect(ui->groupBoxWatermarkText, &QGroupBox::toggled, this, [this]() { WatermarkChangesWereSaved(false); }); + connect(ui->groupBoxWatermarkImage, &QGroupBox::toggled, this, [this]() { WatermarkChangesWereSaved(false); }); ui->pushButtonColorPicker->insertColor(Qt::black, tr("Black", "color")); ui->pushButtonColorPicker->insertColor(Qt::red, tr("Red", "color")); @@ -133,12 +133,13 @@ WatermarkWindow::WatermarkWindow(const QString &patternPath, QWidget *parent) ui->pushButtonColorPicker->insertColor(Qt::lightGray, tr("Light gray", "color")); QVector colors = VAbstractApplication::VApp()->Settings()->GetWatermarkCustomColors(); - for (const auto& color : colors) + for (const auto &color : colors) { ui->pushButtonColorPicker->insertColor(color); } - connect(ui->pushButtonColorPicker, &QtColorPicker::colorChanged, this, [this](){WatermarkChangesWereSaved(false);}); + connect(ui->pushButtonColorPicker, &QtColorPicker::colorChanged, this, + [this]() { WatermarkChangesWereSaved(false); }); } //--------------------------------------------------------------------------------------------------------------------- @@ -168,13 +169,14 @@ auto WatermarkWindow::Open(QString path) -> bool // Convert to absolute path if need path = AbsoluteMPath(m_patternPath, path); - QFuture futureConverter = QtConcurrent::run([path]() - { - std::unique_ptr converter(new VWatermarkConverter(path)); - return converter.release(); - }); + QFuture futureConverter = QtConcurrent::run( + [path]() + { + std::unique_ptr converter(new VWatermarkConverter(path)); + return converter.release(); + }); - //We have unsaved changes or load more then one file per time + // We have unsaved changes or load more then one file per time if (OpenNewEditor(path)) { return false; @@ -206,8 +208,8 @@ auto WatermarkWindow::Open(QString path) -> bool } catch (VException &e) { - qCritical("%s\n\n%s\n\n%s", qUtf8Printable(tr("File error.")), - qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation())); + qCritical("%s\n\n%s\n\n%s", qUtf8Printable(tr("File error.")), qUtf8Printable(e.ErrorMessage()), + qUtf8Printable(e.DetailedInformation())); Clear(); return false; } @@ -260,8 +262,8 @@ void WatermarkWindow::changeEvent(QEvent *event) //--------------------------------------------------------------------------------------------------------------------- void WatermarkWindow::showEvent(QShowEvent *event) { - QMainWindow::showEvent( event ); - if ( event->spontaneous() ) + QMainWindow::showEvent(event); + if (event->spontaneous()) { return; } @@ -278,7 +280,7 @@ void WatermarkWindow::showEvent(QShowEvent *event) resize(sz); } - m_isInitialized = true;//first show windows are held + m_isInitialized = true; // first show windows are held } //--------------------------------------------------------------------------------------------------------------------- @@ -323,7 +325,7 @@ auto WatermarkWindow::on_actionSaveAs_triggered() -> bool return false; } - QFileInfo f( fileName ); + QFileInfo f(fileName); if (f.suffix().isEmpty() && f.suffix() != QLatin1String("vwm")) { fileName += QLatin1String(".vwm"); @@ -489,11 +491,9 @@ auto WatermarkWindow::MaybeSave() -> bool { if (this->isWindowModified()) { - QScopedPointer messageBox(new QMessageBox(tr("Unsaved changes"), - tr("The watermark has been modified.\n" - "Do you want to save your changes?"), - QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, - QMessageBox::Cancel, this, Qt::Sheet)); + QScopedPointer messageBox(new QMessageBox( + tr("Unsaved changes"), tr("The watermark has been modified. Do you want to save your changes?"), + QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel, this, Qt::Sheet)); messageBox->setDefaultButton(QMessageBox::Yes); messageBox->setEscapeButton(QMessageBox::Cancel); @@ -525,13 +525,13 @@ void WatermarkWindow::UpdateWindowTitle() bool isFileWritable = true; if (not m_curFile.isEmpty()) { -//#ifdef Q_OS_WIN32 -// qt_ntfs_permission_lookup++; // turn checking on -//#endif /*Q_OS_WIN32*/ + // #ifdef Q_OS_WIN32 + // qt_ntfs_permission_lookup++; // turn checking on + // #endif /*Q_OS_WIN32*/ isFileWritable = QFileInfo(m_curFile).isWritable(); -//#ifdef Q_OS_WIN32 -// qt_ntfs_permission_lookup--; // turn it off again -//#endif /*Q_OS_WIN32*/ + // #ifdef Q_OS_WIN32 + // qt_ntfs_permission_lookup--; // turn it off again + // #endif /*Q_OS_WIN32*/ } if (isFileWritable) @@ -545,8 +545,8 @@ void WatermarkWindow::UpdateWindowTitle() setWindowFilePath(m_curFile); #if defined(Q_OS_MAC) - static QIcon fileIcon = QIcon(QCoreApplication::applicationDirPath() + - QLatin1String("/../Resources/Valentina.icns")); + static QIcon fileIcon = + QIcon(QCoreApplication::applicationDirPath() + QLatin1String("/../Resources/Valentina.icns")); QIcon icon; if (not m_curFile.isEmpty()) { @@ -566,14 +566,14 @@ void WatermarkWindow::UpdateWindowTitle() } } setWindowIcon(icon); -#endif //defined(Q_OS_MAC) +#endif // defined(Q_OS_MAC) } //--------------------------------------------------------------------------------------------------------------------- auto WatermarkWindow::GetWatermarkFileName() -> QString { QString shownName = tr("untitled.vwm"); - if(not m_curFile.isEmpty()) + if (not m_curFile.isEmpty()) { shownName = StrippedName(m_curFile); } @@ -592,7 +592,8 @@ auto WatermarkWindow::ContinueFormatRewrite(const QString ¤tFormatVersion, msgBox.setText(tr("This file is using previous format version v%1. The current is v%2. " "Saving the file with this app version will update the format version for this " "file. This may prevent you from be able to open the file with older app versions. " - "Do you really want to continue?").arg(currentFormatVersion, maxFormatVersion)); + "Do you really want to continue?") + .arg(currentFormatVersion, maxFormatVersion)); msgBox.setStandardButtons(QDialogButtonBox::Yes | QDialogButtonBox::No); msgBox.setDefaultButton(QDialogButtonBox::No); msgBox.setIconPixmap(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion).pixmap(32, 32)); @@ -670,27 +671,27 @@ void WatermarkWindow::Clear() auto WatermarkWindow::IgnoreLocking(int error, const QString &path) -> bool { QMessageBox::StandardButton answer = QMessageBox::Abort; - switch(error) + switch (error) { case QLockFile::LockFailedError: answer = QMessageBox::warning(this, tr("Locking file"), - tr("This file already opened in another window. Ignore if you want " - "to continue (not recommended, can cause a data corruption)."), - QMessageBox::Abort|QMessageBox::Ignore, QMessageBox::Abort); + tr("This file already opened in another window. Ignore if you want " + "to continue (not recommended, can cause a data corruption)."), + QMessageBox::Abort | QMessageBox::Ignore, QMessageBox::Abort); break; case QLockFile::PermissionError: answer = QMessageBox::question(this, tr("Locking file"), tr("The lock file could not be created, for lack of permissions. " "Ignore if you want to continue (not recommended, can cause " "a data corruption)."), - QMessageBox::Abort|QMessageBox::Ignore, QMessageBox::Abort); + QMessageBox::Abort | QMessageBox::Ignore, QMessageBox::Abort); break; case QLockFile::UnknownError: answer = QMessageBox::question(this, tr("Locking file"), tr("Unknown error happened, for instance a full partition prevented " "writing out the lock file. Ignore if you want to continue (not " "recommended, can cause a data corruption)."), - QMessageBox::Abort|QMessageBox::Ignore, QMessageBox::Abort); + QMessageBox::Abort | QMessageBox::Ignore, QMessageBox::Abort); break; default: answer = QMessageBox::Abort; diff --git a/src/libs/vlayout/dialogs/watermarkwindow.ui b/src/libs/vlayout/dialogs/watermarkwindow.ui index 191077f8b..b0e68553a 100644 --- a/src/libs/vlayout/dialogs/watermarkwindow.ui +++ b/src/libs/vlayout/dialogs/watermarkwindow.ui @@ -171,7 +171,7 @@ Edit font - ... + diff --git a/src/libs/vlayout/vgraphicsfillitem.cpp b/src/libs/vlayout/vgraphicsfillitem.cpp index af66f2ec3..4f354b459 100644 --- a/src/libs/vlayout/vgraphicsfillitem.cpp +++ b/src/libs/vlayout/vgraphicsfillitem.cpp @@ -30,20 +30,18 @@ //--------------------------------------------------------------------------------------------------------------------- VGraphicsFillItem::VGraphicsFillItem(QGraphicsItem *parent) - :QGraphicsPathItem(parent) -{} + : QGraphicsPathItem(parent) +{ +} //--------------------------------------------------------------------------------------------------------------------- VGraphicsFillItem::VGraphicsFillItem(const QPainterPath &path, QGraphicsItem *parent) - :QGraphicsPathItem(path, parent) -{} + : QGraphicsPathItem(path, parent) +{ +} //--------------------------------------------------------------------------------------------------------------------- -VGraphicsFillItem::~VGraphicsFillItem() -{} - -//--------------------------------------------------------------------------------------------------------------------- -void VGraphicsFillItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) +void VGraphicsFillItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) diff --git a/src/libs/vlayout/vgraphicsfillitem.h b/src/libs/vlayout/vgraphicsfillitem.h index 2ceb66a2d..542e65ed9 100644 --- a/src/libs/vlayout/vgraphicsfillitem.h +++ b/src/libs/vlayout/vgraphicsfillitem.h @@ -34,6 +34,10 @@ #include "../vmisc/def.h" +#if QT_VERSION < QT_VERSION_CHECK(5, 13, 0) +#include "../vmisc/defglobal.h" +#endif + class VGraphicsFillItem : public QGraphicsPathItem { public: @@ -41,12 +45,9 @@ public: * @brief VGraphicsFillItem Constructor */ explicit VGraphicsFillItem(QGraphicsItem *parent = nullptr); + explicit VGraphicsFillItem(const QPainterPath &path, QGraphicsItem *parent = nullptr); + ~VGraphicsFillItem() override = default; - VGraphicsFillItem(const QPainterPath &path, QGraphicsItem *parent = nullptr); - /** - * @brief ~VGraphicsFillItem Destructor - */ - ~VGraphicsFillItem(); /** * @brief paint Paints the item, filling the inside surface * @param painter pointer to the painter object @@ -56,7 +57,10 @@ public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Layout::GrainlineItem)}; + enum + { + Type = UserType + static_cast(Layout::GrainlineItem) + }; auto GetWidth() const -> qreal; void SetWidth(const qreal &value); @@ -65,6 +69,7 @@ public: void SetCustomPen(bool newCustomPen); private: + Q_DISABLE_COPY_MOVE(VGraphicsFillItem) // NOLINT qreal width{1}; bool m_customPen{false}; }; diff --git a/src/libs/vlayout/vlayoutpaper.cpp b/src/libs/vlayout/vlayoutpaper.cpp index d14a447f0..da6d10851 100644 --- a/src/libs/vlayout/vlayoutpaper.cpp +++ b/src/libs/vlayout/vlayoutpaper.cpp @@ -40,7 +40,6 @@ #include #include #include -#include #include #ifdef LAYOUT_DEBUG diff --git a/src/libs/vlayout/vlayoutpiece.cpp b/src/libs/vlayout/vlayoutpiece.cpp index cb96b69b9..57e580436 100644 --- a/src/libs/vlayout/vlayoutpiece.cpp +++ b/src/libs/vlayout/vlayoutpiece.cpp @@ -42,7 +42,6 @@ #include #include #include -#include #include #include #include @@ -1798,7 +1797,12 @@ void VLayoutPiece::CreateGrainlineItem(QGraphicsItem *parent) const } auto *item = new VGraphicsFillItem(VLayoutPiece::GrainlinePath(GetMappedGrainlineShape()), parent); - item->SetWidth(VAbstractApplication::VApp()->Settings()->WidthHairLine()); + item->SetCustomPen(true); + QPen pen = item->pen(); + pen.setWidthF(VAbstractApplication::VApp()->Settings()->WidthHairLine()); + pen.setCapStyle(Qt::RoundCap); + pen.setJoinStyle(Qt::RoundJoin); + item->setPen(pen); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vlayout/vposition.cpp b/src/libs/vlayout/vposition.cpp index 505637f5d..1cbefb6d4 100644 --- a/src/libs/vlayout/vposition.cpp +++ b/src/libs/vlayout/vposition.cpp @@ -29,7 +29,6 @@ #include "vposition.h" #include -#include #include #include #include @@ -44,7 +43,7 @@ #include #include #include -#include +#include #include #include "../ifc/exception/vexception.h" @@ -61,24 +60,24 @@ QPainterPath ShowDirection(const QLineF &edge) { const int arrowLength = 14; QPainterPath path; - if (edge.length()/arrowLength < 5) + if (edge.length() / arrowLength < 5) { - return path; + return path; } QLineF arrow = edge; - arrow.setLength(edge.length()/2.0); + arrow.setLength(edge.length() / 2.0); - //Reverse line because we want start arrow from this point + // Reverse line because we want start arrow from this point arrow = QLineF(arrow.p2(), arrow.p1()); - const qreal angle = arrow.angle();//we each time change line angle, better save original angle value - arrow.setLength(arrowLength);//arrow length in pixels + const qreal angle = arrow.angle(); // we each time change line angle, better save original angle value + arrow.setLength(arrowLength); // arrow length in pixels - arrow.setAngle(angle-35); + arrow.setAngle(angle - 35); path.moveTo(arrow.p1()); path.lineTo(arrow.p2()); - arrow.setAngle(angle+35); + arrow.setAngle(angle + 35); path.moveTo(arrow.p1()); path.lineTo(arrow.p2()); return path; @@ -91,24 +90,24 @@ QPainterPath DumpContour(const QVector &points) path.setFillRule(Qt::WindingFill); if (points.count() >= 2) { - for (qint32 i = 0; i < points.count()-1; ++i) + for (qint32 i = 0; i < points.count() - 1; ++i) { path.moveTo(points.at(i)); - path.lineTo(points.at(i+1)); + path.lineTo(points.at(i + 1)); } path.lineTo(points.at(0)); #ifdef SHOW_DIRECTION - for (qint32 i = 0; i < points.count()-1; ++i) + for (qint32 i = 0; i < points.count() - 1; ++i) { - path.addPath(ShowDirection(QLineF(points.at(i), points.at(i+1)))); + path.addPath(ShowDirection(QLineF(points.at(i), points.at(i + 1)))); } #endif #ifdef SHOW_VERTICES for (qint32 i = 0; i < points.count(); ++i) { - path.addRect(points.at(i).x()-3, points.at(i).y()-3, 6, 6); + path.addRect(points.at(i).x() - 3, points.at(i).y() - 3, 6, 6); } #endif } @@ -130,14 +129,14 @@ QPainterPath DumpDetails(const QVector &details) return path; } #endif -} //anonymous namespace +} // anonymous namespace //--------------------------------------------------------------------------------------------------------------------- VPosition::VPosition(const VPositionData &data, std::atomic_bool *stop, bool saveLength) - : m_isValid(true), - m_bestResult(VBestSquare(data.gContour.GetSize(), saveLength, data.isOriginPaperOrientationPortrait)), - m_data(data), - stop(stop) + : m_isValid(true), + m_bestResult(VBestSquare(data.gContour.GetSize(), saveLength, data.isOriginPaperOrientationPortrait)), + m_data(data), + stop(stop) { if (m_data.rotationNumber > 360 || m_data.rotationNumber < 1) { @@ -160,7 +159,7 @@ void VPosition::run() try { - for (int i=1; i<= m_data.detail.LayoutEdgesCount(); ++i) + for (int i = 1; i <= m_data.detail.LayoutEdgesCount(); ++i) { if (stop->load()) { @@ -181,7 +180,7 @@ void VPosition::run() m_bestResult.TerminatedByException(QStringLiteral("%1\n\n%2").arg(e.ErrorMessage(), e.DetailedInformation())); return; } - catch (std::exception& e) + catch (std::exception &e) { m_bestResult.TerminatedByException(QString::fromLatin1(e.what())); return; @@ -214,14 +213,14 @@ auto VPosition::ArrangeDetail(const VPositionData &data, std::atomic_bool *stop, const auto detailEdgesCount = detail.LayoutEdgesCount(); if (detailEdgesCount < 3 || detail.DetailEdgesCount() < 3) { - return bestResult;//Not enough edges + return bestResult; // Not enough edges } QFutureWatcher watcher; QVector jobs; jobs.reserve(data.gContour.GlobalEdgesCount()); - for (int j=1; j <= data.gContour.GlobalEdgesCount(); ++j) + for (int j = 1; j <= data.gContour.GlobalEdgesCount(); ++j) { VPositionData linkedData = data; linkedData.j = j; @@ -231,7 +230,7 @@ auto VPosition::ArrangeDetail(const VPositionData &data, std::atomic_bool *stop, Q_ASSERT(not jobs.isEmpty()); - std::function Nest = [](VPosition position) + std::function Nest = [](VPosition position) { position.run(); return position.getBestResult(); @@ -239,7 +238,7 @@ auto VPosition::ArrangeDetail(const VPositionData &data, std::atomic_bool *stop, watcher.setFuture(QtConcurrent::mapped(jobs, Nest)); - while(not watcher.isStarted()) + while (not watcher.isStarted()) { QCoreApplication::processEvents(); QThread::msleep(250); @@ -250,8 +249,7 @@ auto VPosition::ArrangeDetail(const VPositionData &data, std::atomic_bool *stop, { QCoreApplication::processEvents(); QThread::msleep(250); - } - while(watcher.isRunning() && not stop->load()); + } while (watcher.isRunning() && not stop->load()); if (stop->load()) { @@ -259,8 +257,7 @@ auto VPosition::ArrangeDetail(const VPositionData &data, std::atomic_bool *stop, { QCoreApplication::processEvents(); QThread::msleep(250); - } - while(watcher.isRunning()); + } while (watcher.isRunning()); return bestResult; } @@ -275,8 +272,7 @@ auto VPosition::ArrangeDetail(const VPositionData &data, std::atomic_bool *stop, } //--------------------------------------------------------------------------------------------------------------------- -void VPosition::SaveCandidate(VBestSquare &bestResult, const VLayoutPiece &detail, int globalI, int detJ, - BestFrom type) +void VPosition::SaveCandidate(VBestSquare &bestResult, const VLayoutPiece &detail, int globalI, int detJ, BestFrom type) { if (bestResult.IsSaveLength()) { @@ -298,8 +294,8 @@ void VPosition::SaveCandidate(VBestSquare &bestResult, const VLayoutPiece &detai QT_WARNING_POP data.bestSize = size; - data.globalI = globalI; // Edge of global contour - data.detJ = detJ; // Edge of detail + data.globalI = globalI; // Edge of global contour + data.detJ = detJ; // Edge of detail data.resMatrix = detail.GetMatrix(); // Matrix for rotation and translation detail data.resMirror = detail.IsMirror(); data.type = type; @@ -319,9 +315,9 @@ auto VPosition::CheckCombineEdges(VLayoutPiece &detail, int j, int &dEdge) -> bo CombineEdges(detail, globalEdge, dEdge); #ifdef LAYOUT_DEBUG -# ifdef SHOW_COMBINE +#ifdef SHOW_COMBINE DumpFrame(m_data.gContour, detail, m_data.mutex, m_data.details); -# endif +#endif #endif CrossingType type = CrossingType::Intersection; @@ -355,9 +351,9 @@ auto VPosition::CheckCombineEdges(VLayoutPiece &detail, int j, int &dEdge) -> bo if (flagMirror && not detail.IsForbidFlipping()) { #ifdef LAYOUT_DEBUG -# ifdef SHOW_MIRROR +#ifdef SHOW_MIRROR DumpFrame(m_data.gContour, detail, m_data.mutex, m_data.details); -# endif +#endif #endif EdgeIndex layoutEdge = detail.LayoutEdgeByPoint(globalEdge.p2()); @@ -404,9 +400,9 @@ auto VPosition::CheckRotationEdges(VLayoutPiece &detail, int j, int dEdge, qreal RotateEdges(detail, globalEdge, dEdge, angle); #ifdef LAYOUT_DEBUG -# ifdef SHOW_ROTATION +#ifdef SHOW_ROTATION DumpFrame(m_data.gContour, detail, m_data.mutex, m_data.details); -# endif +#endif #endif CrossingType type = CrossingType::Intersection; @@ -445,9 +441,9 @@ void VPosition::RotateOnAngle(qreal angle) } #ifdef LAYOUT_DEBUG -# ifdef SHOW_CANDIDATE_BEST +#ifdef SHOW_CANDIDATE_BEST DumpFrame(m_data.gContour, workDetail, m_data.mutex, m_data.details); -# endif +#endif #endif SaveCandidate(m_bestResult, workDetail, m_data.j, m_data.i, BestFrom::Rotation); @@ -467,18 +463,20 @@ auto VPosition::Crossing(const VLayoutPiece &detail) const -> VPosition::Crossin const QPainterPath layoutAllowancePath = VGObject::PainterPath(layoutPoints); QVector contourPoints; - CastTo(detail.IsSeamAllowance() && not detail.IsSeamAllowanceBuiltIn() ? - detail.GetMappedSeamAllowancePoints() : detail.GetMappedContourPoints(), contourPoints); + CastTo(detail.IsSeamAllowance() && not detail.IsSeamAllowanceBuiltIn() ? detail.GetMappedSeamAllowancePoints() + : detail.GetMappedContourPoints(), + contourPoints); const QRectF detailBoundingRect = VLayoutPiece::BoundingRect(contourPoints); const QPainterPath contourPath = VGObject::PainterPath(contourPoints); - for(const auto &position : m_data.positionsCache) + for (const auto &position : m_data.positionsCache) { - if (position.boundingRect.intersects(layoutBoundingRect) || position.boundingRect.contains(detailBoundingRect) - || detailBoundingRect.contains(position.boundingRect)) + if (position.boundingRect.intersects(layoutBoundingRect) || + position.boundingRect.contains(detailBoundingRect) || detailBoundingRect.contains(position.boundingRect)) { - if (position.layoutAllowancePath.contains(contourPath) || contourPath.contains(position.layoutAllowancePath) - || position.layoutAllowancePath.intersects(layoutAllowancePath)) + if (position.layoutAllowancePath.contains(contourPath) || + contourPath.contains(position.layoutAllowancePath) || + position.layoutAllowancePath.intersects(layoutAllowancePath)) { return CrossingType::Intersection; } @@ -491,8 +489,8 @@ auto VPosition::Crossing(const VLayoutPiece &detail) const -> VPosition::Crossin //--------------------------------------------------------------------------------------------------------------------- auto VPosition::SheetContains(const QRectF &rect) const -> bool { - const QRectF bRect(-accuracyPointOnLine, -accuracyPointOnLine, m_data.gContour.GetWidth()+accuracyPointOnLine, - m_data.gContour.GetHeight()+accuracyPointOnLine); + const QRectF bRect(-accuracyPointOnLine, -accuracyPointOnLine, m_data.gContour.GetWidth() + accuracyPointOnLine, + m_data.gContour.GetHeight() + accuracyPointOnLine); return bRect.contains(rect); } @@ -529,7 +527,7 @@ void VPosition::RotateEdges(VLayoutPiece &detail, const QLineF &globalEdge, int //--------------------------------------------------------------------------------------------------------------------- void VPosition::Rotate(int number) { - const qreal step = 360.0/number; + const qreal step = 360.0 / number; qreal startAngle = 0; if (VFuzzyComparePossibleNulls(angle_between, 360)) { @@ -537,7 +535,7 @@ void VPosition::Rotate(int number) } qreal angle = startAngle; - while(angle < 360) + while (angle < 360) { if (stop->load()) { @@ -546,7 +544,7 @@ void VPosition::Rotate(int number) RotateOnAngle(angle); - angle = angle+step; + angle = angle + step; } } @@ -625,7 +623,7 @@ void VPosition::FindBestPosition() // We should use copy of the detail. VLayoutPiece workDetail = m_data.detail; - int dEdge = m_data.i;// For mirror detail edge will be different + int dEdge = m_data.i; // For mirror detail edge will be different if (CheckCombineEdges(workDetail, m_data.j, dEdge)) { if (stop->load()) @@ -634,9 +632,9 @@ void VPosition::FindBestPosition() } #ifdef LAYOUT_DEBUG -# ifdef SHOW_CANDIDATE_BEST +#ifdef SHOW_CANDIDATE_BEST DumpFrame(m_data.gContour, workDetail, m_data.mutex, m_data.details); -# endif +#endif #endif SaveCandidate(m_bestResult, workDetail, m_data.j, dEdge, BestFrom::Combine); @@ -664,9 +662,7 @@ void VPosition::DumpFrame(const VContour &contour, const VLayoutPiece &detail, Q const QVector &details = QVector()) { auto Bias = [](int length, int maxLength) - { - return length < maxLength && length*2 < maxLength ? length : maxLength-length; - }; + { return length < maxLength && length * 2 < maxLength ? length : maxLength - length; }; const int biasWidth = Bias(contour.GetWidth(), QIMAGE_MAX); const int biasHeight = Bias(contour.GetHeight(), QIMAGE_MAX); @@ -680,20 +676,20 @@ void VPosition::DumpFrame(const VContour &contour, const VLayoutPiece &detail, Q if (contour.GetContour().isEmpty()) { p = DumpContour(contour.CutEmptySheetEdge()); - p.translate(biasWidth/2, biasHeight/2); + p.translate(biasWidth / 2, biasHeight / 2); paint.drawPath(p); } else { p = DumpContour(contour.GetContour()); - p.translate(biasWidth/2, biasHeight/2); + p.translate(biasWidth / 2, biasHeight / 2); paint.drawPath(p); } #ifdef SHOW_CANDIDATE paint.setPen(QPen(Qt::darkGreen, 6, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin)); p = DumpContour(detail.GetLayoutAllowancePoints()); - p.translate(biasWidth/2, biasHeight/2); + p.translate(biasWidth / 2, biasHeight / 2); paint.drawPath(p); #else Q_UNUSED(detail) @@ -703,7 +699,7 @@ void VPosition::DumpFrame(const VContour &contour, const VLayoutPiece &detail, Q #ifdef ARRANGED_DETAILS paint.setPen(QPen(Qt::blue, 2, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin)); p = DumpDetails(details); - p.translate(biasWidth/2, biasHeight/2); + p.translate(biasWidth / 2, biasHeight / 2); paint.drawPath(p); #else Q_UNUSED(details) @@ -715,7 +711,7 @@ void VPosition::DumpFrame(const VContour &contour, const VLayoutPiece &detail, Q // Sheet #ifdef SHOW_SHEET paint.setPen(QPen(Qt::darkRed, 15, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin)); - paint.drawRect(QRectF(biasWidth/2, biasHeight/2, contour.GetWidth(), contour.GetHeight())); + paint.drawRect(QRectF(biasWidth / 2, biasHeight / 2, contour.GetWidth(), contour.GetHeight())); #endif paint.end(); @@ -723,7 +719,7 @@ void VPosition::DumpFrame(const VContour &contour, const VLayoutPiece &detail, Q // Dump frame to image // Note. If program was build with Address Sanitizer possible crashes. Address Sanitizer doesn't support big // allocations. See page https://bitbucket.org/dismine/valentina/wiki/developers/Address_Sanitizer - QImage frameImage(pictureRect.width()+biasWidth, pictureRect.height()+biasHeight, QImage::Format_RGB32); + QImage frameImage(pictureRect.width() + biasWidth, pictureRect.height() + biasHeight, QImage::Format_RGB32); if (frameImage.isNull()) { @@ -742,7 +738,7 @@ void VPosition::DumpFrame(const VContour &contour, const VLayoutPiece &detail, Q static int frame = 0; ++frame; - const QString path = QDir::homePath()+QStringLiteral("/LayoutDebug/%1.png").arg(frame); - frameImage.save (path); + const QString path = QDir::homePath() + QStringLiteral("/LayoutDebug/%1.png").arg(frame); + frameImage.save(path); } #endif diff --git a/src/libs/vlayout/vposter.cpp b/src/libs/vlayout/vposter.cpp index abf2c40a2..80f2a690a 100644 --- a/src/libs/vlayout/vposter.cpp +++ b/src/libs/vlayout/vposter.cpp @@ -28,28 +28,27 @@ #include "vposter.h" +#include +#include +#include +#include #include #include +#include +#include #include #include +#include #include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include "../vmisc/vmath.h" +#include "../ifc/exception/vexception.h" +#include "../vmisc/compatibility.h" #include "../vmisc/def.h" #include "../vmisc/vabstractvalapplication.h" -#include "../vmisc/compatibility.h" -#include "../ifc/exception/vexception.h" +#include "../vmisc/vmath.h" namespace { @@ -64,11 +63,11 @@ auto Grayscale(QImage image) -> QImage { for (int ii = 0; ii < image.height(); ii++) { - uchar* scan = image.scanLine(ii); + uchar *scan = image.scanLine(ii); int depth = 4; for (int jj = 0; jj < image.width(); jj++) { - QRgb* rgbpixel = reinterpret_cast(scan + jj * depth); + QRgb *rgbpixel = reinterpret_cast(scan + jj * depth); int gray = qGray(*rgbpixel); *rgbpixel = QColor(gray, gray, gray, qAlpha(*rgbpixel)).rgba(); } @@ -107,7 +106,7 @@ auto WatermarkImageFromCache(const VWatermarkData &watermarkData, const QString tmp.fill(Qt::transparent); QPainter p; p.begin(&tmp); - p.setOpacity(watermarkData.opacity/100.); + p.setOpacity(watermarkData.opacity / 100.); p.drawImage(QPointF(), watermark); p.end(); @@ -117,11 +116,12 @@ auto WatermarkImageFromCache(const VWatermarkData &watermarkData, const QString } return pixmap; } -} +} // namespace //--------------------------------------------------------------------------------------------------------------------- VPoster::VPoster(const QPrinter *printer) - :printer(printer), allowance(static_cast(qRound(CmToPixel(1.)))) + : printer(printer), + allowance(static_cast(qRound(CmToPixel(1.)))) { } @@ -138,9 +138,9 @@ auto VPoster::Calc(const QSize &imageRect, int page, PageOrientation orientation const int rows = CountRows(imageRect.height(), orientation); const int columns = CountColumns(imageRect.width(), orientation); - for (int i=0; i < rows; i++) + for (int i = 0; i < rows; i++) { - for (int j=0; j< columns; j++) + for (int j = 0; j < columns; j++) { PosterData data = Cut(i, j, imageRect, orientation); data.index = static_cast(page); @@ -196,43 +196,43 @@ auto VPoster::Borders(QGraphicsItem *parent, const PosterData &img, vsizetype sh const QRect rec = img.rect; if (img.column != 0) - {// Left border + { // Left border auto *line = new QGraphicsLineItem(parent); line->setPen(pen); line->setLine(rec.x(), rec.y(), rec.x(), rec.y() + rec.height()); data.append(line); auto *scissors = new QGraphicsPixmapItem(QPixmap(QStringLiteral("://scissors_vertical.png")), parent); - scissors->setPos(rec.x(), rec.y() + rec.height()-static_cast(allowance)); + scissors->setPos(rec.x(), rec.y() + rec.height() - static_cast(allowance)); data.append(scissors); } - if (img.column != img.columns-1) - {// Right border + if (img.column != img.columns - 1) + { // Right border auto *line = new QGraphicsLineItem(parent); line->setPen(pen); - line->setLine(rec.x() + rec.width()-static_cast(allowance), rec.y(), - rec.x() + rec.width()-static_cast(allowance), rec.y() + rec.height()); + line->setLine(rec.x() + rec.width() - static_cast(allowance), rec.y(), + rec.x() + rec.width() - static_cast(allowance), rec.y() + rec.height()); data.append(line); } if (img.row != 0) - {// Top border + { // Top border auto *line = new QGraphicsLineItem(parent); line->setPen(pen); line->setLine(rec.x(), rec.y(), rec.x() + rec.width(), rec.y()); data.append(line); auto *scissors = new QGraphicsPixmapItem(QPixmap(QStringLiteral("://scissors_horizontal.png")), parent); - scissors->setPos(rec.x() + rec.width()-static_cast(allowance), rec.y()); + scissors->setPos(rec.x() + rec.width() - static_cast(allowance), rec.y()); data.append(scissors); } // Bottom border (mandatory) auto *line = new QGraphicsLineItem(parent); line->setPen(pen); - line->setLine(rec.x(), rec.y() + rec.height()-static_cast(allowance), - rec.x() + rec.width(), rec.y() + rec.height()-static_cast(allowance)); + line->setLine(rec.x(), rec.y() + rec.height() - static_cast(allowance), rec.x() + rec.width(), + rec.y() + rec.height() - static_cast(allowance)); data.append(line); // Ruler @@ -243,8 +243,8 @@ auto VPoster::Borders(QGraphicsItem *parent, const PosterData &img, vsizetype sh const int layoutX = 15; const int layoutY = 5; - labels->setPos(rec.x() + layoutX, rec.y() + rec.height()-static_cast(allowance)+layoutY); - labels->setTextWidth(rec.width()-(static_cast(allowance)+layoutX)); + labels->setPos(rec.x() + layoutX, rec.y() + rec.height() - static_cast(allowance) + layoutY); + labels->setTextWidth(rec.width() - (static_cast(allowance) + layoutX)); const QString grid = QCoreApplication::translate("VPoster", "Grid ( %1 , %2 )").arg(img.row + 1).arg(img.column + 1); @@ -263,7 +263,7 @@ auto VPoster::Borders(QGraphicsItem *parent, const PosterData &img, vsizetype sh "%1%2%3" "" "") - .arg(grid, page, sheet)); + .arg(grid, page, sheet)); data.append(labels); @@ -285,7 +285,7 @@ auto VPoster::TextWatermark(QGraphicsItem *parent, const PosterData &img, const pen.setColor(watermarkData.textColor); text->setPen(pen); - text->setOpacity(watermarkData.opacity/100.); + text->setOpacity(watermarkData.opacity / 100.); text->setTransformOriginPoint(text->boundingRect().center()); text->setRotation(-watermarkData.textRotation); @@ -322,8 +322,9 @@ auto VPoster::ImageWatermark(QGraphicsItem *parent, const PosterData &img, const { const QString errorMsg = QCoreApplication::translate("VPoster", "Cannot open the watermark image.") + QChar(' ') + error; - VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; + VAbstractApplication::VApp()->IsPedantic() + ? throw VException(errorMsg) + : qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return data; } @@ -333,8 +334,9 @@ auto VPoster::ImageWatermark(QGraphicsItem *parent, const PosterData &img, const { const QString errorMsg = QCoreApplication::translate("VPoster", "Not supported file suffix '%1'").arg(f.suffix()); - VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; + VAbstractApplication::VApp()->IsPedantic() + ? throw VException(errorMsg) + : qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return data; } @@ -360,7 +362,7 @@ auto VPoster::CountRows(int height, PageOrientation orientation) const -> int const qreal imgLength = height; qreal pageLength = 0; - if(orientation == PageOrientation::Landscape) + if (orientation == PageOrientation::Landscape) { pageLength = PageRect().width(); } @@ -375,7 +377,7 @@ auto VPoster::CountRows(int height, PageOrientation orientation) const -> int } else { - return qCeil(imgLength/(pageLength - static_cast(allowance))); + return qCeil(imgLength / (pageLength - static_cast(allowance))); } } @@ -385,7 +387,7 @@ auto VPoster::CountColumns(int width, PageOrientation orientation) const -> int const qreal imgLength = width; qreal pageLength = 0; - if(orientation == PageOrientation::Landscape) + if (orientation == PageOrientation::Landscape) { pageLength = PageRect().height(); } @@ -400,7 +402,7 @@ auto VPoster::CountColumns(int width, PageOrientation orientation) const -> int } else { - return qCeil(imgLength/(pageLength-static_cast(allowance))); + return qCeil(imgLength / (pageLength - static_cast(allowance))); } } @@ -411,7 +413,7 @@ auto VPoster::Cut(int i, int j, const QSize &imageRect, PageOrientation orientat int pageLengthX, pageLengthY; - if(orientation == PageOrientation::Landscape) + if (orientation == PageOrientation::Landscape) { pageLengthX = PageRect().height(); pageLengthY = PageRect().width(); @@ -422,8 +424,8 @@ auto VPoster::Cut(int i, int j, const QSize &imageRect, PageOrientation orientat pageLengthY = PageRect().height(); } - const int x = j*pageLengthX - j*static_cast(allowance); - const int y = i*pageLengthY - i*static_cast(allowance); + const int x = j * pageLengthX - j * static_cast(allowance); + const int y = i * pageLengthY - i * static_cast(allowance); SCASSERT(x <= imageRect.width()) SCASSERT(y <= imageRect.height()) @@ -444,7 +446,7 @@ auto VPoster::PageRect() const -> QRect // We convert value yourself to pixels. const QRectF rect = printer->pageRect(QPrinter::Millimeter); - if(printer->fullPage()) + if (printer->fullPage()) { QPageLayout layout = printer->pageLayout(); layout.setUnits(QPageLayout::Millimeter); @@ -468,7 +470,7 @@ void VPoster::Ruler(QVector &data, QGraphicsItem *parent, QRect QPen rulePen(Qt::NoBrush, 1, Qt::SolidLine); rulePen.setColor(Qt::black); - const qreal notchHeight = ToPixel(3); // mm + const qreal notchHeight = ToPixel(3); // mm const qreal shortNotchHeight = ToPixel(1.1); // mm Unit patternUnits = VAbstractValApplication::VApp()->patternUnits(); const qreal step = UnitConvertor(1, patternUnits, Unit::Px); @@ -481,32 +483,30 @@ void VPoster::Ruler(QVector &data, QGraphicsItem *parent, QRect auto *middleRuleLine = new QGraphicsLineItem(parent); middleRuleLine->setPen(rulePen); middleRuleLine->setLine(rec.x() + step * i - step / 2., - rec.y() + rec.height()-static_cast(allowance), - rec.x() + step * i - step / 2., - rec.y() + rec.height()-static_cast(allowance) + shortNotchHeight); + rec.y() + rec.height() - static_cast(allowance), + rec.x() + step * i - step / 2., + rec.y() + rec.height() - static_cast(allowance) + shortNotchHeight); data.append(middleRuleLine); auto *ruleLine = new QGraphicsLineItem(parent); ruleLine->setPen(rulePen); - ruleLine->setLine(rec.x() + step * i, - rec.y() + rec.height()-static_cast(allowance), - rec.x() + step * i, - rec.y() + rec.height()-static_cast(allowance) + notchHeight); + ruleLine->setLine(rec.x() + step * i, rec.y() + rec.height() - static_cast(allowance), + rec.x() + step * i, rec.y() + rec.height() - static_cast(allowance) + notchHeight); data.append(ruleLine); } else { auto *units = new QGraphicsTextItem(parent); - units->setPlainText(patternUnits == Unit::Cm || patternUnits == Unit::Mm ? tr("cm", "unit") : - tr("in", "unit")); + units->setPlainText(patternUnits == Unit::Cm || patternUnits == Unit::Mm ? tr("cm", "unit") + : tr("in", "unit")); QFont fnt = units->font(); fnt.setPointSize(10); qreal unitsWidth = 0; QFontMetrics fm(fnt); unitsWidth = TextWidth(fm, units->toPlainText()); - units->setPos(rec.x() + step*0.5-unitsWidth*0.7, - rec.y() + rec.height()-static_cast(allowance)-shortNotchHeight); + units->setPos(rec.x() + step * 0.5 - unitsWidth * 0.7, + rec.y() + rec.height() - static_cast(allowance) - shortNotchHeight); units->setFont(fnt); data.append(units); } diff --git a/src/libs/vlayout/vtextmanager.h b/src/libs/vlayout/vtextmanager.h index c8c22a647..2c98681f0 100644 --- a/src/libs/vlayout/vtextmanager.h +++ b/src/libs/vlayout/vtextmanager.h @@ -36,7 +36,6 @@ #include #include #include -#include #include #include "../vmisc/def.h" diff --git a/src/libs/vmisc/def.h b/src/libs/vmisc/def.h index 2c439ecbd..bd68ed367 100644 --- a/src/libs/vmisc/def.h +++ b/src/libs/vmisc/def.h @@ -39,7 +39,6 @@ #include #include #include -#include #include #include "debugbreak.h" diff --git a/src/libs/vmisc/qxtcsvmodel.cpp b/src/libs/vmisc/qxtcsvmodel.cpp index 01c3d21e5..9ef111473 100644 --- a/src/libs/vmisc/qxtcsvmodel.cpp +++ b/src/libs/vmisc/qxtcsvmodel.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include "../vmisc/vtextcodec.h" @@ -58,8 +57,13 @@ class QxtCsvModelPrivate : public QxtPrivate { public: - QxtCsvModelPrivate() : csvData(), header(), maxColumn(0), quoteMode(QxtCsvModel::DefaultQuoteMode) - {} + QxtCsvModelPrivate() + : csvData(), + header(), + maxColumn(0), + quoteMode(QxtCsvModel::DefaultQuoteMode) + { + } QXT_DECLARE_PUBLIC(QxtCsvModel) virtual ~QxtCsvModelPrivate() = default; @@ -78,21 +82,19 @@ QT_WARNING_DISABLE_GCC("-Weffc++") /*! Creates an empty QxtCsvModel with parent \a parent. */ -QxtCsvModel::QxtCsvModel(QObject *parent) : QAbstractTableModel(parent) -{ - QXT_INIT_PRIVATE(QxtCsvModel) -} +QxtCsvModel::QxtCsvModel(QObject *parent) + : QAbstractTableModel(parent){QXT_INIT_PRIVATE(QxtCsvModel)} -/*! - Creates a QxtCsvModel with the parent \a parent and content loaded from \a file. + /*! + Creates a QxtCsvModel with the parent \a parent and content loaded from \a file. - See \a setSource for information on the \a withHeader and \a separator properties, or - if you need control over the quoting method or codec used to parse the file. + See \a setSource for information on the \a withHeader and \a separator properties, or + if you need control over the quoting method or codec used to parse the file. - \sa setSource - */ -QxtCsvModel::QxtCsvModel(QIODevice *file, QObject *parent, bool withHeader, QChar separator, VTextCodec* codec) - : QAbstractTableModel(parent) + \sa setSource + */ + QxtCsvModel::QxtCsvModel(QIODevice * file, QObject * parent, bool withHeader, QChar separator, VTextCodec *codec) + : QAbstractTableModel(parent) { QXT_INIT_PRIVATE(QxtCsvModel) setSource(file, withHeader, separator, codec); @@ -108,8 +110,8 @@ QxtCsvModel::QxtCsvModel(QIODevice *file, QObject *parent, bool withHeader, QCha \sa setSource */ -QxtCsvModel::QxtCsvModel(const QString &filename, QObject *parent, bool withHeader, QChar separator, VTextCodec* codec) - : QAbstractTableModel(parent) +QxtCsvModel::QxtCsvModel(const QString &filename, QObject *parent, bool withHeader, QChar separator, VTextCodec *codec) + : QAbstractTableModel(parent) { QXT_INIT_PRIVATE(QxtCsvModel) QFile src(filename); @@ -157,7 +159,7 @@ auto QxtCsvModel::data(const QModelIndex &index, int role) const -> QVariant { return QVariant(); } - const QStringList& row = qxt_d().csvData[index.row()]; + const QStringList &row = qxt_d().csvData[index.row()]; if (index.column() >= row.length()) { return QVariant(); @@ -172,9 +174,8 @@ auto QxtCsvModel::data(const QModelIndex &index, int role) const -> QVariant */ auto QxtCsvModel::headerData(int section, Qt::Orientation orientation, int role) const -> QVariant { - if (section < qxt_d().header.count() && orientation == Qt::Horizontal && (role == Qt::DisplayRole - || role == Qt::EditRole - || role == Qt::UserRole)) + if (section < qxt_d().header.count() && orientation == Qt::Horizontal && + (role == Qt::DisplayRole || role == Qt::EditRole || role == Qt::UserRole)) { return qxt_d().header[section]; } @@ -187,7 +188,7 @@ auto QxtCsvModel::headerData(int section, Qt::Orientation orientation, int role) Reads in a CSV file from the provided \a file using \a codec. */ -void QxtCsvModel::setSource(const QString &filename, bool withHeader, QChar separator, VTextCodec* codec) +void QxtCsvModel::setSource(const QString &filename, bool withHeader, QChar separator, VTextCodec *codec) { QFile src(filename); setSource(&src, withHeader, separator, codec); @@ -202,9 +203,9 @@ void QxtCsvModel::setSource(const QString &filename, bool withHeader, QChar sepa \sa quoteMode */ -void QxtCsvModel::setSource(QIODevice *file, bool withHeader, QChar separator, VTextCodec* codec) +void QxtCsvModel::setSource(QIODevice *file, bool withHeader, QChar separator, VTextCodec *codec) { - QxtCsvModelPrivate* d_ptr = &qxt_d(); + QxtCsvModelPrivate *d_ptr = &qxt_d(); bool headerSet = !withHeader; if (not file->isOpen()) { @@ -334,7 +335,7 @@ void QxtCsvModel::setSource(QIODevice *file, bool withHeader, QChar separator, V /*! Sets the horizontal headers of the model to the values provided in \a data. */ -void QxtCsvModel::setHeaderData(const QStringList& data) +void QxtCsvModel::setHeaderData(const QStringList &data) { qxt_d().header = data; emit headerDataChanged(Qt::Horizontal, 0, static_cast(data.count())); @@ -385,7 +386,7 @@ auto QxtCsvModel::setData(const QModelIndex &index, const QVariant &data, int ro { return false; } - QStringList& row = qxt_d().csvData[index.row()]; + QStringList &row = qxt_d().csvData[index.row()]; while (row.length() <= index.column()) { row << QString(); @@ -415,17 +416,17 @@ auto QxtCsvModel::insertRows(int row, int count, const QModelIndex &parent) -> b return false; } beginInsertRows(parent, row, row + count); - QxtCsvModelPrivate& d_ptr = qxt_d(); + QxtCsvModelPrivate &d_ptr = qxt_d(); if (row >= rowCount()) { - for(int i = 0; i < count; i++) + for (int i = 0; i < count; i++) { d_ptr.csvData << QStringList(); } } else { - for(int i = 0; i < count; i++) + for (int i = 0; i < count; i++) { d_ptr.csvData.insert(row, QStringList()); } @@ -460,8 +461,8 @@ auto QxtCsvModel::removeRows(int row, int count, const QModelIndex &parent) -> b count = rowCount() - row; } beginRemoveRows(parent, row, row + count); - QxtCsvModelPrivate& d_ptr = qxt_d(); - for (int i = 0;i < count;i++) + QxtCsvModelPrivate &d_ptr = qxt_d(); + for (int i = 0; i < count; i++) { d_ptr.csvData.removeAt(row); } @@ -487,10 +488,10 @@ auto QxtCsvModel::insertColumns(int col, int count, const QModelIndex &parent) - return false; } beginInsertColumns(parent, col, col + count - 1); - QxtCsvModelPrivate& d_ptr = qxt_d(); + QxtCsvModelPrivate &d_ptr = qxt_d(); for (int i = 0; i < rowCount(); i++) { - QStringList& row = d_ptr.csvData[i]; + QStringList &row = d_ptr.csvData[i]; while (col >= row.length()) { row.append(QString()); @@ -500,7 +501,7 @@ auto QxtCsvModel::insertColumns(int col, int count, const QModelIndex &parent) - row.insert(col, QString()); } } - for (int i = 0; i < count ;i++) + for (int i = 0; i < count; i++) { d_ptr.header.insert(col, QString()); } @@ -535,7 +536,7 @@ auto QxtCsvModel::removeColumns(int col, int count, const QModelIndex &parent) - count = columnCount() - col; } beginRemoveColumns(parent, col, col + count); - QxtCsvModelPrivate& d_ptr = qxt_d(); + QxtCsvModelPrivate &d_ptr = qxt_d(); for (int i = 0; i < rowCount(); i++) { for (int j = 0; j < count; j++) @@ -562,7 +563,7 @@ static auto qxt_addCsvQuotes(QxtCsvModel::QuoteMode mode, QString field) -> QStr { addDoubleQuotes = true; } - else if(mode & QxtCsvModel::SingleQuote) + else if (mode & QxtCsvModel::SingleQuote) { addSingleQuotes = true; } @@ -601,14 +602,14 @@ static auto qxt_addCsvQuotes(QxtCsvModel::QuoteMode mode, QString field) -> QStr auto QxtCsvModel::toCSV(QIODevice *dest, QString &error, bool withHeader, QChar separator, VTextCodec *codec) const -> bool { - const QxtCsvModelPrivate& d_ptr = qxt_d(); + const QxtCsvModelPrivate &d_ptr = qxt_d(); int row, col, rows, cols; rows = rowCount(); cols = columnCount(); QString data; if (not dest->isOpen()) { - if ( not dest->open(QIODevice::WriteOnly | QIODevice::Truncate)) + if (not dest->open(QIODevice::WriteOnly | QIODevice::Truncate)) { error = dest->errorString(); return false; @@ -640,7 +641,7 @@ auto QxtCsvModel::toCSV(QIODevice *dest, QString &error, bool withHeader, QChar } for (row = 0; row < rows; ++row) { - const QStringList& rowData = d_ptr.csvData[row]; + const QStringList &rowData = d_ptr.csvData[row]; data = QString(); for (col = 0; col < cols; ++col) { @@ -713,7 +714,7 @@ void QxtCsvModel::setQuoteMode(QuoteMode mode) \sa text */ -void QxtCsvModel::setText(int row, int column, const QString& value) +void QxtCsvModel::setText(int row, int column, const QString &value) { setData(index(row, column), value); } @@ -733,7 +734,7 @@ auto QxtCsvModel::text(int row, int column) const -> QString \sa headerText */ -void QxtCsvModel::setHeaderText(int column, const QString& value) +void QxtCsvModel::setHeaderText(int column, const QString &value) { setHeaderData(column, Qt::Horizontal, value); } diff --git a/src/libs/vmisc/qxtcsvmodel.h b/src/libs/vmisc/qxtcsvmodel.h index da8ffef46..b8526e919 100644 --- a/src/libs/vmisc/qxtcsvmodel.h +++ b/src/libs/vmisc/qxtcsvmodel.h @@ -42,7 +42,6 @@ #include #include #include -#include #include #include "def.h" diff --git a/src/libs/vmisc/share/resources/breezethemes/dark/stylesheet.qss b/src/libs/vmisc/share/resources/breezethemes/dark/stylesheet.qss index aa0589cbf..dc1fa863d 100644 --- a/src/libs/vmisc/share/resources/breezethemes/dark/stylesheet.qss +++ b/src/libs/vmisc/share/resources/breezethemes/dark/stylesheet.qss @@ -52,6 +52,18 @@ QToolTip opacity: 200; } +QListWidget { + background-color: #333333; +} + +QListWidget::item { + color: #ffffff; +} + +QListWidget::item:selected { + background-color: #555555; +} + QWidget { color: #eff0f1; @@ -157,7 +169,7 @@ QCheckBox:disabled QGroupBox { /* Need to make sure the groupbox doesn't compress below the title. */ - min-height: 1.2em; + /*min-height: 1.2em;*/ border: 0.04em solid #76797c; border-radius: 0.09em; /** @@ -1076,6 +1088,11 @@ QAbstractSpinBox:hover border: 0.09em solid #3daee9; } +QAbstractSpinBox:disabled +{ + color: #888888; +} + QAbstractSpinBox:up-button, QAbstractSpinBox:up-button:hover { @@ -1281,6 +1298,11 @@ QLabel border: 0em solid black; } +QLabel:disabled +{ + color: #888888; +} + /* BORDERS */ QTabWidget::pane { @@ -1994,6 +2016,16 @@ QDialog QToolBar QToolButton[hasMenu="false"][popupMode="2"] padding: 0em; } +QToolButton[text]:disabled +{ + color: #8C8C8C; +} + +QToolButton[text]:enabled +{ + color: #eff0f1; +} + QToolButton[autoRaise="false"] { background-color: #31363b; @@ -2008,8 +2040,8 @@ QToolButton[autoRaise="true"] } /* Add selectors for the QDialog if a menu is explicitly requested. */ -QToolButton[hasMenu="true"], -QToolButton[autoRaise="false"][text], +QDialog QToolButton[hasMenu="true"], +QDialog QToolButton[autoRaise="false"][text], QDialog QToolBar QToolButton[hasMenu="true"][popupMode="0"], QDialog QToolBar QToolButton[hasMenu="true"][popupMode="1"], QDialog QToolBar QToolButton[hasMenu="true"][popupMode="2"] diff --git a/src/libs/vmisc/share/resources/icon.qrc b/src/libs/vmisc/share/resources/icon.qrc index 6d9764ced..c7a6d3e20 100644 --- a/src/libs/vmisc/share/resources/icon.qrc +++ b/src/libs/vmisc/share/resources/icon.qrc @@ -9,9 +9,7 @@ icon/32x32/option_draw.png icon/32x32/table.png icon/24x24/putHere.png - icon/24x24/equal.png icon/32x32/history.png - icon/32x32/put_after.png icon/32x32/layout.png icon/16x16/mirror.png icon/config.png @@ -32,23 +30,12 @@ icon/16x16/portrait.png icon/16x16/template.png icon/32x32/pdf.png - icon/24x24/fx.png - icon/16x16/fx.png icon/16x16/roll.png - icon/16x16/progress.gif + icon/16x16/roll@2x.png icon/32x32/export_to_picture_document.png - icon/24x24/fast_forward_left_to_right_arrow.png - icon/24x24/fast_forward_right_to_left_arrow.png - icon/24x24/left_to_right_arrow.png - icon/24x24/right_to_left_arrow.png - icon/32x32/clockwise.png icon/32x32/syncM.png icon/16x16/operations.png icon/16x16/operations@2x.png - icon/16x16/closed_eye.png - icon/16x16/closed_eye@2x.png - icon/16x16/open_eye.png - icon/16x16/open_eye@2x.png icon/16x16/allow_detail.png icon/16x16/allow_detail@2x.png icon/16x16/forbid_detail.png @@ -82,58 +69,144 @@ icon/24x24/close.png icon/24x24/close@2x.png icon/layout.png - icon/32x32/rotate-top-left-hover@2x.png - icon/32x32/rotate-top-left-hover.png - icon/32x32/rotate-top-left@2x.png - icon/32x32/rotate-top-left.png - icon/32x32/rotate-top-right-hover@2x.png - icon/32x32/rotate-top-right-hover.png - icon/32x32/rotate-top-right@2x.png - icon/32x32/rotate-top-right.png - icon/32x32/rotate-bottom-right-hover@2x.png - icon/32x32/rotate-bottom-right-hover.png - icon/32x32/rotate-bottom-right@2x.png - icon/32x32/rotate-bottom-right.png - icon/32x32/rotate-bottom-left-hover@2x.png - icon/32x32/rotate-bottom-left-hover.png - icon/32x32/rotate-bottom-left@2x.png - icon/32x32/rotate-bottom-left.png - icon/32x32/expand2-hover@2x.png - icon/32x32/expand2-hover.png - icon/32x32/expand2@2x.png - icon/32x32/expand2.png - icon/32x32/expand1-hover@2x.png - icon/32x32/expand1-hover.png - icon/32x32/expand1@2x.png - icon/32x32/expand1.png - icon/32x32/double-arrow-vertical-hover@2x.png - icon/32x32/double-arrow-vertical-hover.png - icon/32x32/double-arrow-vertical@2x.png - icon/32x32/double-arrow-vertical.png - icon/32x32/double-arrow-horizontal-hover@2x.png - icon/32x32/double-arrow-horizontal@2x.png - icon/32x32/double-arrow-horizontal-hover.png - icon/32x32/double-arrow-horizontal.png icon/svg/broken_path.svg - icon/16x16/not_hold_image@2x.png - icon/16x16/not_hold_image.png - icon/16x16/hold_image@2x.png - icon/16x16/hold_image.png - icon/32x32/rotate-top-right-disabled@2x.png - icon/32x32/rotate-top-right-disabled.png - icon/32x32/rotate-top-left-disabled@2x.png - icon/32x32/rotate-top-left-disabled.png - icon/32x32/rotate-bottom-right-disabled@2x.png - icon/32x32/rotate-bottom-right-disabled.png - icon/32x32/rotate-bottom-left-disabled@2x.png - icon/32x32/rotate-bottom-left-disabled.png - icon/32x32/expand2-disabled@2x.png - icon/32x32/expand2-disabled.png - icon/32x32/expand1-disabled@2x.png - icon/32x32/expand1-disabled.png - icon/32x32/double-arrow-vertical-disabled@2x.png - icon/32x32/double-arrow-vertical-disabled.png - icon/32x32/double-arrow-horizontal-disabled@2x.png - icon/32x32/double-arrow-horizontal-disabled.png + icon/light/16x16/fx@2x.png + icon/light/16x16/fx.png + icon/light/24x24/fx@2x.png + icon/light/24x24/fx.png + icon/dark/16x16/fx@2x.png + icon/dark/16x16/fx.png + icon/dark/24x24/fx@2x.png + icon/dark/24x24/fx.png + icon/light/24x24/equal@2x.png + icon/light/24x24/equal.png + icon/dark/24x24/equal@2x.png + icon/dark/24x24/equal.png + icon/light/16x16/progress.gif + icon/dark/16x16/progress.gif + icon/light/24x24/go-previous-skip@2x.png + icon/light/24x24/go-previous-skip.png + icon/light/24x24/go-previous@2x.png + icon/light/24x24/go-previous.png + icon/light/24x24/go-next-skip@2x.png + icon/light/24x24/go-next-skip.png + icon/light/24x24/go-next@2x.png + icon/light/24x24/go-next.png + icon/dark/24x24/go-previous-skip@2x.png + icon/dark/24x24/go-previous-skip.png + icon/dark/24x24/go-previous@2x.png + icon/dark/24x24/go-previous.png + icon/dark/24x24/go-next-skip@2x.png + icon/dark/24x24/go-next-skip.png + icon/dark/24x24/go-next@2x.png + icon/dark/24x24/go-next.png + icon/light/16x16/closed_eye@2x.png + icon/light/16x16/closed_eye.png + icon/light/16x16/open_eye@2x.png + icon/light/16x16/open_eye.png + icon/dark/16x16/open_eye@2x.png + icon/dark/16x16/open_eye.png + icon/dark/16x16/closed_eye@2x.png + icon/dark/16x16/closed_eye.png + icon/light/16x16/not_hold_image@2x.png + icon/light/16x16/not_hold_image.png + icon/light/16x16/hold_image@2x.png + icon/light/16x16/hold_image.png + icon/dark/16x16/not_hold_image@2x.png + icon/dark/16x16/not_hold_image.png + icon/dark/16x16/hold_image@2x.png + icon/dark/16x16/hold_image.png + icon/light/32x32/clockwise@2x.png + icon/light/32x32/clockwise.png + icon/dark/32x32/clockwise@2x.png + icon/dark/32x32/clockwise.png + icon/light/32x32/double-arrow-vertical-hover@2x.png + icon/light/32x32/double-arrow-vertical-hover.png + icon/light/32x32/double-arrow-vertical-disabled@2x.png + icon/light/32x32/double-arrow-vertical-disabled.png + icon/light/32x32/double-arrow-vertical@2x.png + icon/light/32x32/double-arrow-vertical.png + icon/light/32x32/double-arrow-horizontal-hover@2x.png + icon/light/32x32/double-arrow-horizontal-hover.png + icon/light/32x32/double-arrow-horizontal-disabled@2x.png + icon/light/32x32/double-arrow-horizontal-disabled.png + icon/light/32x32/double-arrow-horizontal@2x.png + icon/light/32x32/double-arrow-horizontal.png + icon/light/32x32/expand1@2x.png + icon/light/32x32/expand1.png + icon/light/32x32/expand1-disabled@2x.png + icon/light/32x32/expand1-disabled.png + icon/light/32x32/expand1-hover@2x.png + icon/light/32x32/expand1-hover.png + icon/light/32x32/expand2.png + icon/light/32x32/expand2@2x.png + icon/light/32x32/expand2-disabled@2x.png + icon/light/32x32/expand2-disabled.png + icon/light/32x32/expand2-hover@2x.png + icon/light/32x32/expand2-hover.png + icon/light/32x32/rotate-top-right-hover@2x.png + icon/light/32x32/rotate-top-right-hover.png + icon/light/32x32/rotate-top-right-disabled@2x.png + icon/light/32x32/rotate-top-right-disabled.png + icon/light/32x32/rotate-top-right@2x.png + icon/light/32x32/rotate-top-right.png + icon/light/32x32/rotate-top-left-hover@2x.png + icon/light/32x32/rotate-top-left-hover.png + icon/light/32x32/rotate-top-left-disabled@2x.png + icon/light/32x32/rotate-top-left-disabled.png + icon/light/32x32/rotate-top-left@2x.png + icon/light/32x32/rotate-top-left.png + icon/light/32x32/rotate-bottom-right-hover@2x.png + icon/light/32x32/rotate-bottom-right-hover.png + icon/light/32x32/rotate-bottom-right-disabled@2x.png + icon/light/32x32/rotate-bottom-right-disabled.png + icon/light/32x32/rotate-bottom-right@2x.png + icon/light/32x32/rotate-bottom-right.png + icon/light/32x32/rotate-bottom-left-hover@2x.png + icon/light/32x32/rotate-bottom-left-hover.png + icon/light/32x32/rotate-bottom-left-disabled@2x.png + icon/light/32x32/rotate-bottom-left-disabled.png + icon/light/32x32/rotate-bottom-left@2x.png + icon/light/32x32/rotate-bottom-left.png + icon/dark/32x32/double-arrow-vertical-hover@2x.png + icon/dark/32x32/double-arrow-vertical-hover.png + icon/dark/32x32/double-arrow-vertical-disabled@2x.png + icon/dark/32x32/double-arrow-vertical-disabled.png + icon/dark/32x32/double-arrow-vertical@2x.png + icon/dark/32x32/double-arrow-vertical.png + icon/dark/32x32/double-arrow-horizontal-hover@2x.png + icon/dark/32x32/double-arrow-horizontal-hover.png + icon/dark/32x32/double-arrow-horizontal-disabled@2x.png + icon/dark/32x32/double-arrow-horizontal-disabled.png + icon/dark/32x32/double-arrow-horizontal@2x.png + icon/dark/32x32/double-arrow-horizontal.png + icon/dark/32x32/rotate-top-right-hover@2x.png + icon/dark/32x32/rotate-top-right-hover.png + icon/dark/32x32/rotate-top-right-disabled@2x.png + icon/dark/32x32/rotate-top-right-disabled.png + icon/dark/32x32/rotate-top-right@2x.png + icon/dark/32x32/rotate-top-right.png + icon/dark/32x32/rotate-top-left-hover@2x.png + icon/dark/32x32/rotate-top-left-hover.png + icon/dark/32x32/rotate-top-left-disabled@2x.png + icon/dark/32x32/rotate-top-left-disabled.png + icon/dark/32x32/rotate-top-left@2x.png + icon/dark/32x32/rotate-top-left.png + icon/dark/32x32/rotate-bottom-right-hover@2x.png + icon/dark/32x32/rotate-bottom-right-hover.png + icon/dark/32x32/rotate-bottom-right-disabled@2x.png + icon/dark/32x32/rotate-bottom-right-disabled.png + icon/dark/32x32/rotate-bottom-right@2x.png + icon/dark/32x32/rotate-bottom-right.png + icon/dark/32x32/rotate-bottom-left-hover@2x.png + icon/dark/32x32/rotate-bottom-left-hover.png + icon/dark/32x32/rotate-bottom-left-disabled@2x.png + icon/dark/32x32/rotate-bottom-left-disabled.png + icon/dark/32x32/rotate-bottom-left@2x.png + icon/dark/32x32/rotate-bottom-left.png + icon/light/32x32/put_after@2x.png + icon/light/32x32/put_after.png + icon/dark/32x32/put_after@2x.png + icon/dark/32x32/put_after.png diff --git a/src/libs/vmisc/share/resources/icon/16x16/closed_eye.png b/src/libs/vmisc/share/resources/icon/16x16/closed_eye.png deleted file mode 100644 index 918d90e9d..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/closed_eye.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/closed_eye@2x.png b/src/libs/vmisc/share/resources/icon/16x16/closed_eye@2x.png deleted file mode 100644 index ed3d73c0e..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/closed_eye@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/fx.png b/src/libs/vmisc/share/resources/icon/16x16/fx.png deleted file mode 100644 index 10b80ef00..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/fx.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/hold_image.png b/src/libs/vmisc/share/resources/icon/16x16/hold_image.png deleted file mode 100644 index 5b90c5fb9..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/hold_image.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/hold_image@2x.png b/src/libs/vmisc/share/resources/icon/16x16/hold_image@2x.png deleted file mode 100644 index f4912d48d..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/hold_image@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/not_hold_image.png b/src/libs/vmisc/share/resources/icon/16x16/not_hold_image.png deleted file mode 100644 index 3782e02cd..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/not_hold_image.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/not_hold_image@2x.png b/src/libs/vmisc/share/resources/icon/16x16/not_hold_image@2x.png deleted file mode 100644 index 8ac0d649f..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/not_hold_image@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/open_eye.png b/src/libs/vmisc/share/resources/icon/16x16/open_eye.png deleted file mode 100644 index 3a86b505c..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/open_eye.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/open_eye@2x.png b/src/libs/vmisc/share/resources/icon/16x16/open_eye@2x.png deleted file mode 100644 index c636eaa58..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/open_eye@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/progress.gif b/src/libs/vmisc/share/resources/icon/16x16/progress.gif deleted file mode 100644 index 215f2864d..000000000 Binary files a/src/libs/vmisc/share/resources/icon/16x16/progress.gif and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/roll.png b/src/libs/vmisc/share/resources/icon/16x16/roll.png index 49c30dff1..91c5f3c56 100644 Binary files a/src/libs/vmisc/share/resources/icon/16x16/roll.png and b/src/libs/vmisc/share/resources/icon/16x16/roll.png differ diff --git a/src/libs/vmisc/share/resources/icon/16x16/roll@2x.png b/src/libs/vmisc/share/resources/icon/16x16/roll@2x.png new file mode 100644 index 000000000..6038e5125 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/16x16/roll@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/close.png b/src/libs/vmisc/share/resources/icon/24x24/close.png index 6847dbcad..71656d540 100644 Binary files a/src/libs/vmisc/share/resources/icon/24x24/close.png and b/src/libs/vmisc/share/resources/icon/24x24/close.png differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/close@2x.png b/src/libs/vmisc/share/resources/icon/24x24/close@2x.png index 2b077e626..6a267690d 100644 Binary files a/src/libs/vmisc/share/resources/icon/24x24/close@2x.png and b/src/libs/vmisc/share/resources/icon/24x24/close@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/equal.png b/src/libs/vmisc/share/resources/icon/24x24/equal.png deleted file mode 100644 index 44ffe8df5..000000000 Binary files a/src/libs/vmisc/share/resources/icon/24x24/equal.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/fast_forward_left_to_right_arrow.png b/src/libs/vmisc/share/resources/icon/24x24/fast_forward_left_to_right_arrow.png deleted file mode 100644 index 1d767796f..000000000 Binary files a/src/libs/vmisc/share/resources/icon/24x24/fast_forward_left_to_right_arrow.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/fast_forward_right_to_left_arrow.png b/src/libs/vmisc/share/resources/icon/24x24/fast_forward_right_to_left_arrow.png deleted file mode 100644 index e113a5957..000000000 Binary files a/src/libs/vmisc/share/resources/icon/24x24/fast_forward_right_to_left_arrow.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/fx.png b/src/libs/vmisc/share/resources/icon/24x24/fx.png deleted file mode 100644 index 6cc6192cc..000000000 Binary files a/src/libs/vmisc/share/resources/icon/24x24/fx.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/left_to_right_arrow.png b/src/libs/vmisc/share/resources/icon/24x24/left_to_right_arrow.png deleted file mode 100644 index bda96192e..000000000 Binary files a/src/libs/vmisc/share/resources/icon/24x24/left_to_right_arrow.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/star.png b/src/libs/vmisc/share/resources/icon/24x24/star.png index cfe569427..c4fde3efa 100644 Binary files a/src/libs/vmisc/share/resources/icon/24x24/star.png and b/src/libs/vmisc/share/resources/icon/24x24/star.png differ diff --git a/src/libs/vmisc/share/resources/icon/24x24/star@2x.png b/src/libs/vmisc/share/resources/icon/24x24/star@2x.png index 608044078..7072d5021 100644 Binary files a/src/libs/vmisc/share/resources/icon/24x24/star@2x.png and b/src/libs/vmisc/share/resources/icon/24x24/star@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/clockwise.png b/src/libs/vmisc/share/resources/icon/32x32/clockwise.png deleted file mode 100644 index c039eb18a..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/clockwise.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-disabled.png deleted file mode 100644 index c960cf06f..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-disabled@2x.png deleted file mode 100644 index 3195fbcf0..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-hover.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-hover.png deleted file mode 100644 index 7f650065f..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-hover@2x.png deleted file mode 100644 index c19c80031..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal.png deleted file mode 100644 index 579f38c22..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal@2x.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal@2x.png deleted file mode 100644 index 1aa418fd1..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-horizontal@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-disabled.png deleted file mode 100644 index 15aaa0d7c..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-disabled@2x.png deleted file mode 100644 index fc75c19e2..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-hover.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-hover.png deleted file mode 100644 index 903e8179c..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-hover@2x.png deleted file mode 100644 index 17755c2c3..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical.png deleted file mode 100644 index 8776d89a5..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical@2x.png b/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical@2x.png deleted file mode 100644 index 8156ab56d..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/double-arrow-vertical@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand1-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/expand1-disabled.png deleted file mode 100644 index 2113c4925..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand1-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand1-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/expand1-disabled@2x.png deleted file mode 100644 index fdf3a1bab..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand1-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand1-hover.png b/src/libs/vmisc/share/resources/icon/32x32/expand1-hover.png deleted file mode 100644 index b76843abd..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand1-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand1-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/expand1-hover@2x.png deleted file mode 100644 index f5582f361..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand1-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand1.png b/src/libs/vmisc/share/resources/icon/32x32/expand1.png deleted file mode 100644 index 3af137629..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand1.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand1@2x.png b/src/libs/vmisc/share/resources/icon/32x32/expand1@2x.png deleted file mode 100644 index c27956626..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand1@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand2-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/expand2-disabled.png deleted file mode 100644 index 2f44074d2..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand2-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand2-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/expand2-disabled@2x.png deleted file mode 100644 index 8ea6152e1..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand2-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand2-hover.png b/src/libs/vmisc/share/resources/icon/32x32/expand2-hover.png deleted file mode 100644 index 632180b8b..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand2-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand2-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/expand2-hover@2x.png deleted file mode 100644 index 43299180b..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand2-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand2.png b/src/libs/vmisc/share/resources/icon/32x32/expand2.png deleted file mode 100644 index c09132e5d..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand2.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/expand2@2x.png b/src/libs/vmisc/share/resources/icon/32x32/expand2@2x.png deleted file mode 100644 index 50087d6d2..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/expand2@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/put_after.png b/src/libs/vmisc/share/resources/icon/32x32/put_after.png deleted file mode 100644 index 95d26d455..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/put_after.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-disabled.png deleted file mode 100644 index df4cf3d3a..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-disabled@2x.png deleted file mode 100644 index 3793c7129..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-hover.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-hover.png deleted file mode 100644 index 3bc050adc..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-hover@2x.png deleted file mode 100644 index 41f4161c4..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left.png deleted file mode 100644 index 6689d185f..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left@2x.png deleted file mode 100644 index b44f7f2ad..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-left@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-disabled.png deleted file mode 100644 index 236d9919a..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-disabled@2x.png deleted file mode 100644 index deb1b4188..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-hover.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-hover.png deleted file mode 100644 index 31e49da46..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-hover@2x.png deleted file mode 100644 index 0db7fd538..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right.png deleted file mode 100644 index a3fa998b4..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right@2x.png deleted file mode 100644 index 671a38f99..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-bottom-right@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-disabled.png deleted file mode 100644 index 95b5c2c1a..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-disabled@2x.png deleted file mode 100644 index 218b30914..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-hover.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-hover.png deleted file mode 100644 index e85db7883..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-hover@2x.png deleted file mode 100644 index b14635d5d..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left.png deleted file mode 100644 index 561c8817a..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left@2x.png deleted file mode 100644 index 962491024..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-left@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-disabled.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-disabled.png deleted file mode 100644 index b63cdfbc2..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-disabled.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-disabled@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-disabled@2x.png deleted file mode 100644 index 3f4fd1861..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-disabled@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-hover.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-hover.png deleted file mode 100644 index 33b1d42a5..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-hover.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-hover@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-hover@2x.png deleted file mode 100644 index 754361260..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right-hover@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right.png deleted file mode 100644 index aa5fb25de..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right@2x.png b/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right@2x.png deleted file mode 100644 index 58458f511..000000000 Binary files a/src/libs/vmisc/share/resources/icon/32x32/rotate-top-right@2x.png and /dev/null differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/closed_eye.png b/src/libs/vmisc/share/resources/icon/dark/16x16/closed_eye.png new file mode 100644 index 000000000..56d562793 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/closed_eye.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/closed_eye@2x.png b/src/libs/vmisc/share/resources/icon/dark/16x16/closed_eye@2x.png new file mode 100644 index 000000000..b78063f9a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/closed_eye@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/fx.png b/src/libs/vmisc/share/resources/icon/dark/16x16/fx.png new file mode 100644 index 000000000..1058f4960 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/fx.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/fx@2x.png b/src/libs/vmisc/share/resources/icon/dark/16x16/fx@2x.png new file mode 100644 index 000000000..556582c9b Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/fx@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/hold_image.png b/src/libs/vmisc/share/resources/icon/dark/16x16/hold_image.png new file mode 100644 index 000000000..5c0acdc40 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/hold_image.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/hold_image@2x.png b/src/libs/vmisc/share/resources/icon/dark/16x16/hold_image@2x.png new file mode 100644 index 000000000..7eaffa25d Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/hold_image@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/not_hold_image.png b/src/libs/vmisc/share/resources/icon/dark/16x16/not_hold_image.png new file mode 100644 index 000000000..12772b4ca Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/not_hold_image.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/not_hold_image@2x.png b/src/libs/vmisc/share/resources/icon/dark/16x16/not_hold_image@2x.png new file mode 100644 index 000000000..71b603d88 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/not_hold_image@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/open_eye.png b/src/libs/vmisc/share/resources/icon/dark/16x16/open_eye.png new file mode 100644 index 000000000..706700ada Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/open_eye.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/open_eye@2x.png b/src/libs/vmisc/share/resources/icon/dark/16x16/open_eye@2x.png new file mode 100644 index 000000000..a7d9fdc1c Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/open_eye@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/16x16/progress.gif b/src/libs/vmisc/share/resources/icon/dark/16x16/progress.gif new file mode 100644 index 000000000..32910e728 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/16x16/progress.gif differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/equal.png b/src/libs/vmisc/share/resources/icon/dark/24x24/equal.png new file mode 100644 index 000000000..158499733 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/equal.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/equal@2x.png b/src/libs/vmisc/share/resources/icon/dark/24x24/equal@2x.png new file mode 100644 index 000000000..51ba8b075 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/equal@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/fx.png b/src/libs/vmisc/share/resources/icon/dark/24x24/fx.png new file mode 100644 index 000000000..207fd8344 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/fx.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/fx@2x.png b/src/libs/vmisc/share/resources/icon/dark/24x24/fx@2x.png new file mode 100644 index 000000000..9fbe460f1 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/fx@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-next-skip.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next-skip.png new file mode 100644 index 000000000..3a47cdc20 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next-skip.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-next-skip@2x.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next-skip@2x.png new file mode 100644 index 000000000..f3fd9e486 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next-skip@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-next.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next.png new file mode 100644 index 000000000..9261ea1e3 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-next@2x.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next@2x.png new file mode 100644 index 000000000..ce813b40a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-next@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous-skip.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous-skip.png new file mode 100644 index 000000000..a40cc957f Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous-skip.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous-skip@2x.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous-skip@2x.png new file mode 100644 index 000000000..b59a3da22 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous-skip@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous.png new file mode 100644 index 000000000..6d86870ec Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous@2x.png b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous@2x.png new file mode 100644 index 000000000..63fcea7bb Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/24x24/go-previous@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/clockwise.png b/src/libs/vmisc/share/resources/icon/dark/32x32/clockwise.png new file mode 100644 index 000000000..1795ba632 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/clockwise.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/clockwise@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/clockwise@2x.png new file mode 100644 index 000000000..d6cff6d24 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/clockwise@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-disabled.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-disabled.png new file mode 100644 index 000000000..5749b9902 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-disabled@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-disabled@2x.png new file mode 100644 index 000000000..7f7ec8f5a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-hover.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-hover.png new file mode 100644 index 000000000..709040e7f Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-hover@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-hover@2x.png new file mode 100644 index 000000000..33648dca1 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal.png new file mode 100644 index 000000000..5d79de635 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal@2x.png new file mode 100644 index 000000000..cfba603b2 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-horizontal@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-disabled.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-disabled.png new file mode 100644 index 000000000..fad718657 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-disabled@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-disabled@2x.png new file mode 100644 index 000000000..cabe53eca Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-hover.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-hover.png new file mode 100644 index 000000000..299702e34 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-hover@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-hover@2x.png new file mode 100644 index 000000000..93614bd38 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical.png new file mode 100644 index 000000000..54cbc2a4c Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical@2x.png new file mode 100644 index 000000000..a59c5df87 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/double-arrow-vertical@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/put_after.png b/src/libs/vmisc/share/resources/icon/dark/32x32/put_after.png new file mode 100644 index 000000000..7ceeb7bd5 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/put_after.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/put_after@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/put_after@2x.png new file mode 100644 index 000000000..47a9da246 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/put_after@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-disabled.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-disabled.png new file mode 100644 index 000000000..d3f7024e3 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-disabled@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-disabled@2x.png new file mode 100644 index 000000000..e74d15049 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-hover.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-hover.png new file mode 100644 index 000000000..e26c88a73 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-hover@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-hover@2x.png new file mode 100644 index 000000000..f328e91a5 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left.png new file mode 100644 index 000000000..786aff588 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left@2x.png new file mode 100644 index 000000000..edfa3322e Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-left@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-disabled.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-disabled.png new file mode 100644 index 000000000..90fc270e8 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-disabled@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-disabled@2x.png new file mode 100644 index 000000000..0c9eaf010 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-hover.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-hover.png new file mode 100644 index 000000000..cfca1c2a7 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-hover@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-hover@2x.png new file mode 100644 index 000000000..e4c94a543 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right.png new file mode 100644 index 000000000..6cdc10be7 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right@2x.png new file mode 100644 index 000000000..cdfbffdd4 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-bottom-right@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-disabled.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-disabled.png new file mode 100644 index 000000000..4d39389e9 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-disabled@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-disabled@2x.png new file mode 100644 index 000000000..a33e0c9c9 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-hover.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-hover.png new file mode 100644 index 000000000..fa7b56688 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-hover@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-hover@2x.png new file mode 100644 index 000000000..649ff4506 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left.png new file mode 100644 index 000000000..b22effe78 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left@2x.png new file mode 100644 index 000000000..e18f2ff80 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-left@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-disabled.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-disabled.png new file mode 100644 index 000000000..308ab7d7a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-disabled@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-disabled@2x.png new file mode 100644 index 000000000..90c1277df Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-hover.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-hover.png new file mode 100644 index 000000000..3a9cad6f5 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-hover@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-hover@2x.png new file mode 100644 index 000000000..c3b006878 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right.png new file mode 100644 index 000000000..f4cc56dfe Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right.png differ diff --git a/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right@2x.png b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right@2x.png new file mode 100644 index 000000000..6fe6e3f92 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/dark/32x32/rotate-top-right@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/closed_eye.png b/src/libs/vmisc/share/resources/icon/light/16x16/closed_eye.png new file mode 100644 index 000000000..bbc98c126 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/closed_eye.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/closed_eye@2x.png b/src/libs/vmisc/share/resources/icon/light/16x16/closed_eye@2x.png new file mode 100644 index 000000000..5537ea7a0 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/closed_eye@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/fx.png b/src/libs/vmisc/share/resources/icon/light/16x16/fx.png new file mode 100644 index 000000000..7854c0f80 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/fx.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/fx@2x.png b/src/libs/vmisc/share/resources/icon/light/16x16/fx@2x.png new file mode 100644 index 000000000..201ac6a97 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/fx@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/hold_image.png b/src/libs/vmisc/share/resources/icon/light/16x16/hold_image.png new file mode 100644 index 000000000..6b4efc563 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/hold_image.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/hold_image@2x.png b/src/libs/vmisc/share/resources/icon/light/16x16/hold_image@2x.png new file mode 100644 index 000000000..e14c8d962 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/hold_image@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/not_hold_image.png b/src/libs/vmisc/share/resources/icon/light/16x16/not_hold_image.png new file mode 100644 index 000000000..435313bf1 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/not_hold_image.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/not_hold_image@2x.png b/src/libs/vmisc/share/resources/icon/light/16x16/not_hold_image@2x.png new file mode 100644 index 000000000..a9ebb7c5b Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/not_hold_image@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/open_eye.png b/src/libs/vmisc/share/resources/icon/light/16x16/open_eye.png new file mode 100644 index 000000000..a59ad027e Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/open_eye.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/open_eye@2x.png b/src/libs/vmisc/share/resources/icon/light/16x16/open_eye@2x.png new file mode 100644 index 000000000..0e6728fdb Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/open_eye@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/16x16/progress.gif b/src/libs/vmisc/share/resources/icon/light/16x16/progress.gif new file mode 100644 index 000000000..25b785f96 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/16x16/progress.gif differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/equal.png b/src/libs/vmisc/share/resources/icon/light/24x24/equal.png new file mode 100644 index 000000000..9a952b916 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/equal.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/equal@2x.png b/src/libs/vmisc/share/resources/icon/light/24x24/equal@2x.png new file mode 100644 index 000000000..6d26be6e7 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/equal@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/fx.png b/src/libs/vmisc/share/resources/icon/light/24x24/fx.png new file mode 100644 index 000000000..33e532540 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/fx.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/fx@2x.png b/src/libs/vmisc/share/resources/icon/light/24x24/fx@2x.png new file mode 100644 index 000000000..9fd929048 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/fx@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-next-skip.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-next-skip.png new file mode 100644 index 000000000..cd8319f67 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-next-skip.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-next-skip@2x.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-next-skip@2x.png new file mode 100644 index 000000000..61a971464 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-next-skip@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-next.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-next.png new file mode 100644 index 000000000..e6d4550f7 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-next.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-next@2x.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-next@2x.png new file mode 100644 index 000000000..9cb5c7e20 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-next@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-previous-skip.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous-skip.png new file mode 100644 index 000000000..6efb72617 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous-skip.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-previous-skip@2x.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous-skip@2x.png new file mode 100644 index 000000000..f3106fc1f Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous-skip@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-previous.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous.png new file mode 100644 index 000000000..46ff2a35f Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/24x24/go-previous@2x.png b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous@2x.png new file mode 100644 index 000000000..4614714f4 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/24x24/go-previous@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/clockwise.png b/src/libs/vmisc/share/resources/icon/light/32x32/clockwise.png new file mode 100644 index 000000000..f62da04dc Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/clockwise.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/clockwise@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/clockwise@2x.png new file mode 100644 index 000000000..e7ac77603 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/clockwise@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-disabled.png new file mode 100644 index 000000000..c14b5089a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-disabled@2x.png new file mode 100644 index 000000000..7ddeb3d1e Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-hover.png new file mode 100644 index 000000000..2423b30ca Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-hover@2x.png new file mode 100644 index 000000000..b3e7620b2 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal.png new file mode 100644 index 000000000..538e9cb0c Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal@2x.png new file mode 100644 index 000000000..00688abba Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-horizontal@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-disabled.png new file mode 100644 index 000000000..a1eb6d40c Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-disabled@2x.png new file mode 100644 index 000000000..58359fb3f Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-hover.png new file mode 100644 index 000000000..d726bdb0c Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-hover@2x.png new file mode 100644 index 000000000..dedb10579 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical.png new file mode 100644 index 000000000..9511b9a9b Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical@2x.png new file mode 100644 index 000000000..22565cc8b Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/double-arrow-vertical@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand1-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-disabled.png new file mode 100644 index 000000000..5afc068fc Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand1-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-disabled@2x.png new file mode 100644 index 000000000..12107c9c6 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand1-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-hover.png new file mode 100644 index 000000000..17ea13498 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand1-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-hover@2x.png new file mode 100644 index 000000000..440f72a4e Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand1-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand1.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand1.png new file mode 100644 index 000000000..31a0226d0 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand1.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand1@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand1@2x.png new file mode 100644 index 000000000..80b11c6b6 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand1@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand2-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-disabled.png new file mode 100644 index 000000000..d677853d5 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand2-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-disabled@2x.png new file mode 100644 index 000000000..55ad13241 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand2-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-hover.png new file mode 100644 index 000000000..ed3bfadec Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand2-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-hover@2x.png new file mode 100644 index 000000000..f0f0b0375 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand2-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand2.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand2.png new file mode 100644 index 000000000..73312172e Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand2.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/expand2@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/expand2@2x.png new file mode 100644 index 000000000..c7ebd65f6 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/expand2@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/put_after.png b/src/libs/vmisc/share/resources/icon/light/32x32/put_after.png new file mode 100644 index 000000000..d295bc2ae Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/put_after.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/put_after@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/put_after@2x.png new file mode 100644 index 000000000..63e9114fe Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/put_after@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-disabled.png new file mode 100644 index 000000000..715b0fe86 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-disabled@2x.png new file mode 100644 index 000000000..f37aeaaaa Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-hover.png new file mode 100644 index 000000000..cd655196a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-hover@2x.png new file mode 100644 index 000000000..7eeffec72 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left.png new file mode 100644 index 000000000..b19a855ab Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left@2x.png new file mode 100644 index 000000000..68d70e8f1 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-left@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-disabled.png new file mode 100644 index 000000000..15d5dc1c6 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-disabled@2x.png new file mode 100644 index 000000000..af6099f9a Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-hover.png new file mode 100644 index 000000000..0fbcf6d5d Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-hover@2x.png new file mode 100644 index 000000000..165cdfd35 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right.png new file mode 100644 index 000000000..23bff2b61 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right@2x.png new file mode 100644 index 000000000..33070e043 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-bottom-right@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-disabled.png new file mode 100644 index 000000000..a4042ed34 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-disabled@2x.png new file mode 100644 index 000000000..8b4701905 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-hover.png new file mode 100644 index 000000000..0ee5e9833 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-hover@2x.png new file mode 100644 index 000000000..bec645280 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left.png new file mode 100644 index 000000000..44e17791e Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left@2x.png new file mode 100644 index 000000000..4fb730d79 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-left@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-disabled.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-disabled.png new file mode 100644 index 000000000..5a0a937a0 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-disabled.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-disabled@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-disabled@2x.png new file mode 100644 index 000000000..bafe33000 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-disabled@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-hover.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-hover.png new file mode 100644 index 000000000..0eb24a468 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-hover.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-hover@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-hover@2x.png new file mode 100644 index 000000000..0cf62b98b Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right-hover@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right.png new file mode 100644 index 000000000..e55fd5fdd Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right.png differ diff --git a/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right@2x.png b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right@2x.png new file mode 100644 index 000000000..bf1f1c0a5 Binary files /dev/null and b/src/libs/vmisc/share/resources/icon/light/32x32/rotate-top-right@2x.png differ diff --git a/src/libs/vmisc/share/resources/icon/svg/close.svg b/src/libs/vmisc/share/resources/icon/svg/close.svg new file mode 100644 index 000000000..43f57c41e --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/close.svg @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/clockwise.svg b/src/libs/vmisc/share/resources/icon/svg/dark/clockwise.svg new file mode 100644 index 000000000..cda1e158e --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/clockwise.svg @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/closed_eye.svg b/src/libs/vmisc/share/resources/icon/svg/dark/closed_eye.svg new file mode 100644 index 000000000..7227c4894 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/closed_eye.svg @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal-disabled.svg new file mode 100644 index 000000000..ec06cb4fd --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal-disabled.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal-hover.svg new file mode 100644 index 000000000..71e814ca7 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal-hover.svg @@ -0,0 +1,44 @@ + + + +up right down left sign diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal.svg b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal.svg new file mode 100644 index 000000000..59b821bc8 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-horizontal.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical-disabled.svg new file mode 100644 index 000000000..bcfcaaa97 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical-disabled.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical-hover.svg new file mode 100644 index 000000000..5d2e937b8 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical-hover.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical.svg b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical.svg new file mode 100644 index 000000000..4837da8e3 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/double-arrow-vertical.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/equal.svg b/src/libs/vmisc/share/resources/icon/svg/dark/equal.svg new file mode 100644 index 000000000..815f5f5de --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/equal.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/expand1-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/expand1-disabled.svg new file mode 100644 index 000000000..ac75aad24 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/expand1-disabled.svg @@ -0,0 +1,45 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/expand1-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/expand1-hover.svg new file mode 100644 index 000000000..598a2da3c --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/expand1-hover.svg @@ -0,0 +1,45 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/expand1.svg b/src/libs/vmisc/share/resources/icon/svg/dark/expand1.svg new file mode 100644 index 000000000..ece24ddc3 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/expand1.svg @@ -0,0 +1,45 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/expand2-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/expand2-disabled.svg new file mode 100644 index 000000000..3ab0ea80c --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/expand2-disabled.svg @@ -0,0 +1,44 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/expand2-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/expand2-hover.svg new file mode 100644 index 000000000..f72ee2fbc --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/expand2-hover.svg @@ -0,0 +1,44 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/expand2.svg b/src/libs/vmisc/share/resources/icon/svg/dark/expand2.svg new file mode 100644 index 000000000..a2c6cd95e --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/expand2.svg @@ -0,0 +1,44 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/fx.svg b/src/libs/vmisc/share/resources/icon/svg/dark/fx.svg new file mode 100644 index 000000000..39d94e937 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/fx.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/go-next-skip.svg b/src/libs/vmisc/share/resources/icon/svg/dark/go-next-skip.svg new file mode 100644 index 000000000..f9b78bb66 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/go-next-skip.svg @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/go-next.svg b/src/libs/vmisc/share/resources/icon/svg/dark/go-next.svg new file mode 100644 index 000000000..aa8a34b1b --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/go-next.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/go-previous-skip.svg b/src/libs/vmisc/share/resources/icon/svg/dark/go-previous-skip.svg new file mode 100644 index 000000000..29b85287d --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/go-previous-skip.svg @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/go-previous.svg b/src/libs/vmisc/share/resources/icon/svg/dark/go-previous.svg new file mode 100644 index 000000000..9dc361202 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/go-previous.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/hold_image.svg b/src/libs/vmisc/share/resources/icon/svg/dark/hold_image.svg new file mode 100644 index 000000000..0317266ae --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/hold_image.svg @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/not_hold_image.svg b/src/libs/vmisc/share/resources/icon/svg/dark/not_hold_image.svg new file mode 100644 index 000000000..421d53e3c --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/not_hold_image.svg @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/open_eye.svg b/src/libs/vmisc/share/resources/icon/svg/dark/open_eye.svg new file mode 100644 index 000000000..9ce581003 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/open_eye.svg @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/put_after.svg b/src/libs/vmisc/share/resources/icon/svg/dark/put_after.svg new file mode 100644 index 000000000..b2c5f194b --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/put_after.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left-disabled.svg new file mode 100644 index 000000000..a1e542d87 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left-hover.svg new file mode 100644 index 000000000..da0026394 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left-hover.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left.svg new file mode 100644 index 000000000..48e8ac322 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-left.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right-disabled.svg new file mode 100644 index 000000000..20b94fa3e --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right-hover.svg new file mode 100644 index 000000000..41f7e594b --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right-hover.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right.svg new file mode 100644 index 000000000..ccebe17a4 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-bottom-right.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left-disabled.svg new file mode 100644 index 000000000..35b5eece9 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left-hover.svg new file mode 100644 index 000000000..c87dc09fa --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left-hover.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left.svg new file mode 100644 index 000000000..dba7cae04 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-left.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right-disabled.svg new file mode 100644 index 000000000..bbe69d352 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right-hover.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right-hover.svg new file mode 100644 index 000000000..70f93d418 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right-hover.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right.svg b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right.svg new file mode 100644 index 000000000..06b12a5f0 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/dark/rotate-top-right.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/clockwise.svg b/src/libs/vmisc/share/resources/icon/svg/light/clockwise.svg new file mode 100644 index 000000000..f19359e9f --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/clockwise.svg @@ -0,0 +1,47 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/closed_eye.svg b/src/libs/vmisc/share/resources/icon/svg/light/closed_eye.svg new file mode 100644 index 000000000..9f2d9ad6d --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/closed_eye.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal-disabled.svg new file mode 100644 index 000000000..104705eac --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal-disabled.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal-hover.svg new file mode 100644 index 000000000..c3db82e62 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal-hover.svg @@ -0,0 +1,44 @@ + + + +up right down left sign diff --git a/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal.svg b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal.svg new file mode 100644 index 000000000..7eef0dc91 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-horizontal.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical-disabled.svg new file mode 100644 index 000000000..0d5ac177c --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical-disabled.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical-hover.svg new file mode 100644 index 000000000..224bbcd09 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical-hover.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical.svg b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical.svg new file mode 100644 index 000000000..1c6b2b50a --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/double-arrow-vertical.svg @@ -0,0 +1,48 @@ + + + + + + + up right down left sign + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/equal.svg b/src/libs/vmisc/share/resources/icon/svg/light/equal.svg new file mode 100644 index 000000000..d85dfee1b --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/equal.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/expand1-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/expand1-disabled.svg new file mode 100644 index 000000000..74ab3b8cc --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/expand1-disabled.svg @@ -0,0 +1,47 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/expand1-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/expand1-hover.svg new file mode 100644 index 000000000..5dfd19893 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/expand1-hover.svg @@ -0,0 +1,47 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/expand1.svg b/src/libs/vmisc/share/resources/icon/svg/light/expand1.svg new file mode 100644 index 000000000..ef4c6b1da --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/expand1.svg @@ -0,0 +1,47 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/expand2-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/expand2-disabled.svg new file mode 100644 index 000000000..25731b3dc --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/expand2-disabled.svg @@ -0,0 +1,47 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/expand2-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/expand2-hover.svg new file mode 100644 index 000000000..f60de9664 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/expand2-hover.svg @@ -0,0 +1,47 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/expand2.svg b/src/libs/vmisc/share/resources/icon/svg/light/expand2.svg new file mode 100644 index 000000000..0b27a275f --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/expand2.svg @@ -0,0 +1,47 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/fx.svg b/src/libs/vmisc/share/resources/icon/svg/light/fx.svg new file mode 100644 index 000000000..8e9fbfecb --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/fx.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/go-next-skip.svg b/src/libs/vmisc/share/resources/icon/svg/light/go-next-skip.svg new file mode 100644 index 000000000..05c1579cb --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/go-next-skip.svg @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/go-next.svg b/src/libs/vmisc/share/resources/icon/svg/light/go-next.svg new file mode 100644 index 000000000..59c6b0b0e --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/go-next.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/go-previous-skip.svg b/src/libs/vmisc/share/resources/icon/svg/light/go-previous-skip.svg new file mode 100644 index 000000000..52da11cf0 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/go-previous-skip.svg @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/go-previous.svg b/src/libs/vmisc/share/resources/icon/svg/light/go-previous.svg new file mode 100644 index 000000000..436ce4a12 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/go-previous.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/hold_image.svg b/src/libs/vmisc/share/resources/icon/svg/light/hold_image.svg new file mode 100644 index 000000000..05ecb044b --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/hold_image.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/not_hold_image.svg b/src/libs/vmisc/share/resources/icon/svg/light/not_hold_image.svg new file mode 100644 index 000000000..5d9a68191 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/not_hold_image.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/open_eye.svg b/src/libs/vmisc/share/resources/icon/svg/light/open_eye.svg new file mode 100644 index 000000000..4dbd5bfce --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/open_eye.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/put_after.svg b/src/libs/vmisc/share/resources/icon/svg/light/put_after.svg new file mode 100644 index 000000000..29e242507 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/put_after.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left-disabled.svg new file mode 100644 index 000000000..bbbbd436c --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left-hover.svg new file mode 100644 index 000000000..5a31f2a25 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left-hover.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left.svg new file mode 100644 index 000000000..233710812 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-left.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right-disabled.svg new file mode 100644 index 000000000..bb6714104 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right-hover.svg new file mode 100644 index 000000000..3c2a19217 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right-hover.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right.svg new file mode 100644 index 000000000..9cb579a03 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-bottom-right.svg @@ -0,0 +1,61 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left-disabled.svg new file mode 100644 index 000000000..e76cdcb5c --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left-hover.svg new file mode 100644 index 000000000..07bc5fa03 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left-hover.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left.svg new file mode 100644 index 000000000..5a0868cdf --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-left.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right-disabled.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right-disabled.svg new file mode 100644 index 000000000..edbec2ccd --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right-disabled.svg @@ -0,0 +1,60 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right-hover.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right-hover.svg new file mode 100644 index 000000000..528eb93bd --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right-hover.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right.svg b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right.svg new file mode 100644 index 000000000..5abd15d8b --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/light/rotate-top-right.svg @@ -0,0 +1,59 @@ + + + + diff --git a/src/libs/vmisc/share/resources/icon/svg/roll.svg b/src/libs/vmisc/share/resources/icon/svg/roll.svg new file mode 100644 index 000000000..a252680d3 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/roll.svg @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/src/libs/vmisc/share/resources/icon/svg/star.svg b/src/libs/vmisc/share/resources/icon/svg/star.svg new file mode 100644 index 000000000..5da91ad71 --- /dev/null +++ b/src/libs/vmisc/share/resources/icon/svg/star.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + diff --git a/src/libs/vmisc/share/resources/scenestyle.qrc b/src/libs/vmisc/share/resources/scenestyle.qrc new file mode 100644 index 000000000..b5ac6c4a9 --- /dev/null +++ b/src/libs/vmisc/share/resources/scenestyle.qrc @@ -0,0 +1,6 @@ + + + scenestyle/light/style.json + scenestyle/dark/style.json + + diff --git a/src/libs/vmisc/share/resources/scenestyle/dark/style.json b/src/libs/vmisc/share/resources/scenestyle/dark/style.json new file mode 100644 index 000000000..e5255b9d9 --- /dev/null +++ b/src/libs/vmisc/share/resources/scenestyle/dark/style.json @@ -0,0 +1,48 @@ +{ + "ToolStyle": { + "PatternColor": [120, 160, 200], + "DisabledColor": "#dedede", + "ColorAdjustments": { + "black": [120, 160, 200] + }, + "PointColor": [120, 160, 200], + "LabelColor": "#f8f8f8", + "LabelHoverColor": "lightGreen", + "LabelLineColor": [120, 160, 200, 125], + "AccuracyRadiusColor": "yellow", + "ControlLineColor": [120, 160, 200, 125], + "ControlPointColor": "red", + "VisMainColor": "red", + "VisSupportColor": "magenta", + "VisSupportColor2": "darkGreen", + "VisSupportColor3": "darkBlue", + "VisSupportColor4": "darkRed", + "BasePointColor": "red" + }, + "PatternPieceStyle": { + "PieceColor": [120, 160, 200], + "PointColor": [120, 160, 200], + "NodeLabelColor": "#f8f8f8", + "NodeLabelHoverColor": "lightGreen", + "NodeLabelLineColor": [120, 160, 200, 125], + "LabelBackgroundColor": [255, 255, 180, 200], + "LabelTextColor": "black", + "LabelModeColor": "white" + }, + "ManualLayoutStyle": { + "SheetBorderColor": "#808080", + "SheetMarginColor": [0, 179, 255], + "SheetGridColor": [204, 204, 204], + "SheetTileGridColor": [255, 0, 0, 127], + "SheetTileNumberColor": "lightBlue", + "PieceOkColor": [120, 160, 200], + "PieceErrorColor": [255, 150, 150], + "PieceHoverColor": [199, 244, 249, 60], + "PieceHandleColor": "lightBlue", + "PieceHandleHoverColor": "lightGreen", + "CarrouselPieceColor": [120, 160, 200], + "CarrouselPieceSelectedColor": [255, 160, 160, 60], + "CarrouselPieceBackgroundColor": [32, 32, 32], + "CarrouselPieceForegroundColor": [0, 0, 80] + } +} diff --git a/src/libs/vmisc/share/resources/scenestyle/light/style.json b/src/libs/vmisc/share/resources/scenestyle/light/style.json new file mode 100644 index 000000000..1afc8e2c7 --- /dev/null +++ b/src/libs/vmisc/share/resources/scenestyle/light/style.json @@ -0,0 +1,45 @@ +{ + "ToolStyle": { + "PatternColor": "black", + "DisabledColor": "lightgray", + "PointColor": "black", + "LabelColor": "black", + "LabelHoverColor": "green", + "LabelLineColor": [0, 0, 0], + "AccuracyRadiusColor": "blue", + "ControlLineColor": [0, 0, 0], + "ControlPointColor": "red", + "VisMainColor": "red", + "VisSupportColor": "magenta", + "VisSupportColor2": "darkGreen", + "VisSupportColor3": "darkBlue", + "VisSupportColor4": "darkRed", + "BasePointColor": "red" + }, + "PatternPieceStyle": { + "PieceColor": "black", + "PointColor": "black", + "NodeLabelColor": "black", + "NodeLabelHoverColor": "green", + "NodeLabelLineColor": [0, 0, 0], + "LabelBackgroundColor": [251, 251, 175, 128], + "LabelTextColor": "black", + "LabelModeColor": "black" + }, + "ManualLayoutStyle": { + "SheetBorderColor": "black", + "SheetMarginColor": [0, 179, 255], + "SheetGridColor": [204, 204, 204], + "SheetTileGridColor": [255, 0, 0, 127], + "SheetTileNumberColor": "black", + "PieceOkColor": "black", + "PieceErrorColor": "red", + "PieceHoverColor": [199, 244, 249, 60], + "PieceHandleColor": "black", + "PieceHandleHoverColor": "green", + "CarrouselPieceColor": "black", + "CarrouselPieceSelectedColor": [255, 160, 160, 60], + "CarrouselPieceBackgroundColor": "white", + "CarrouselPieceForegroundColor": "white" + } +} diff --git a/src/libs/vmisc/theme/themeDef.h b/src/libs/vmisc/theme/themeDef.h new file mode 100644 index 000000000..704dd1667 --- /dev/null +++ b/src/libs/vmisc/theme/themeDef.h @@ -0,0 +1,56 @@ +/************************************************************************ + ** + ** @file themeDef.h + ** @author Roman Telezhynskyi + ** @date 26 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#ifndef THEMEDEF_H +#define THEMEDEF_H + +enum class VColorRole +{ + DefaultColor, + PatternColor, + CustomColor, // Controled by pen color outside of an item + DraftPointColor, + DraftLabelColor, + DraftLabelHoverColor, + DraftLabelLineColor, + ControlLineColor, + ControlPointColor, + AccuracyRadiusColor, + VisMainColor, + VisSupportColor, + VisSupportColor2, + VisSupportColor3, + VisSupportColor4, + BasePointColor, + PieceColor, + PiecePointColor, + PieceNodeLabelColor, + PieceNodeLabelHoverColor, + PieceNodeLabelLineColor +}; + +#endif // THEMEDEF_H diff --git a/src/libs/vmisc/theme/vmanuallayoutstyle.cpp b/src/libs/vmisc/theme/vmanuallayoutstyle.cpp new file mode 100644 index 000000000..d4f2732d6 --- /dev/null +++ b/src/libs/vmisc/theme/vmanuallayoutstyle.cpp @@ -0,0 +1,119 @@ +/************************************************************************ + ** + ** @file vmanuallayoutstyle.cpp + ** @author Roman Telezhynskyi + ** @date 29 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#include "vmanuallayoutstyle.h" + +#include +#include + +#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) +#include "../diagnostic.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) + +namespace +{ +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wunused-member-function") + +Q_GLOBAL_STATIC_WITH_ARGS(const QString, ManualLayoutStyleNodeVar, (QLatin1String("ManualLayoutStyle"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, SheetBorderColorVar, (QLatin1String("SheetBorderColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, SheetMarginColorVar, (QLatin1String("SheetMarginColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, SheetGridColorVar, (QLatin1String("SheetGridColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, SheetTileGridColorVar, (QLatin1String("SheetTileGridColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, SheetTileNumberColorVar, (QLatin1String("SheetTileNumberColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PieceOkColorVar, (QLatin1String("PieceOkColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PieceErrorColorVar, (QLatin1String("PieceErrorColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PieceHoverColorVar, (QLatin1String("PieceHoverColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PieceHandleColorVar, (QLatin1String("PieceHandleColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PieceHandleHoverColorVar, (QLatin1String("PieceHandleHoverColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, CarrouselPieceColorVar, (QLatin1String("CarrouselPieceColor"))) // NOLINT +// NOLINTNEXTLINE +Q_GLOBAL_STATIC_WITH_ARGS(const QString, CarrouselPieceSelectedColorVar, (QLatin1String("CarrouselPieceSelectedColor"))) +// NOLINTNEXTLINE +Q_GLOBAL_STATIC_WITH_ARGS(const QString, CarrouselPieceBackgroundColorVar, + (QLatin1String("CarrouselPieceBackgroundColor"))) +// NOLINTNEXTLINE +Q_GLOBAL_STATIC_WITH_ARGS(const QString, CarrouselPieceForegroundColorVar, + (QLatin1String("CarrouselPieceForegroundColor"))) + +QT_WARNING_POP +} // namespace + +//--------------------------------------------------------------------------------------------------------------------- +VManualLayoutStyle::VManualLayoutStyle() +{ + LoadJsonFile(VStylesheetStyle::GetResourceName()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VManualLayoutStyle::LoadJson(const QJsonObject &json) +{ + QJsonValue toolStyleValues = json[*ManualLayoutStyleNodeVar]; + + QJsonObject obj = toolStyleValues.toObject(); + + ReadColor(obj, *SheetBorderColorVar, m_sheetBorderColor); + ReadColor(obj, *SheetMarginColorVar, m_sheetMarginColor); + ReadColor(obj, *SheetGridColorVar, m_sheetGridColor); + ReadColor(obj, *SheetTileGridColorVar, m_sheetTileGridColor); + ReadColor(obj, *SheetTileNumberColorVar, m_sheetTileNumberColor); + ReadColor(obj, *PieceOkColorVar, m_pieceOkColor); + ReadColor(obj, *PieceErrorColorVar, m_pieceErrorColor); + ReadColor(obj, *PieceHoverColorVar, m_pieceHoverColor); + ReadColor(obj, *PieceHandleColorVar, m_pieceHandleColor); + ReadColor(obj, *PieceHandleHoverColorVar, m_pieceHandleHoverColor); + ReadColor(obj, *CarrouselPieceColorVar, m_carrouselPieceColor); + ReadColor(obj, *CarrouselPieceSelectedColorVar, m_carrouselPieceSelectedColor); + ReadColor(obj, *CarrouselPieceBackgroundColorVar, m_carrouselPieceBackgroundColor); + ReadColor(obj, *CarrouselPieceForegroundColorVar, m_carrouselPieceForegroundColor); +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VManualLayoutStyle::ToJson() const -> QJsonObject +{ + QJsonObject obj; + + WriteColor(obj, *SheetBorderColorVar, m_sheetBorderColor); + WriteColor(obj, *SheetMarginColorVar, m_sheetMarginColor); + WriteColor(obj, *SheetGridColorVar, m_sheetGridColor); + WriteColor(obj, *SheetTileGridColorVar, m_sheetTileGridColor); + WriteColor(obj, *SheetTileNumberColorVar, m_sheetTileNumberColor); + WriteColor(obj, *PieceOkColorVar, m_pieceOkColor); + WriteColor(obj, *PieceErrorColorVar, m_pieceErrorColor); + WriteColor(obj, *PieceHoverColorVar, m_pieceHoverColor); + WriteColor(obj, *PieceHandleColorVar, m_pieceHandleColor); + WriteColor(obj, *PieceHandleHoverColorVar, m_pieceHandleHoverColor); + WriteColor(obj, *CarrouselPieceColorVar, m_carrouselPieceColor); + WriteColor(obj, *CarrouselPieceSelectedColorVar, m_carrouselPieceSelectedColor); + WriteColor(obj, *CarrouselPieceBackgroundColorVar, m_carrouselPieceBackgroundColor); + WriteColor(obj, *CarrouselPieceForegroundColorVar, m_carrouselPieceForegroundColor); + + QJsonObject root; + root[*ManualLayoutStyleNodeVar] = obj; + + return root; +} diff --git a/src/libs/vmisc/theme/vmanuallayoutstyle.h b/src/libs/vmisc/theme/vmanuallayoutstyle.h new file mode 100644 index 000000000..878a5d2b4 --- /dev/null +++ b/src/libs/vmisc/theme/vmanuallayoutstyle.h @@ -0,0 +1,170 @@ +/************************************************************************ + ** + ** @file vmanuallayoutstyle.h + ** @author Roman Telezhynskyi + ** @date 29 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#ifndef VMANUALLAYOUTSTYLE_H +#define VMANUALLAYOUTSTYLE_H + +#include "vstylesheetstyle.h" + +#include + +class VManualLayoutStyle : public VStylesheetStyle +{ +public: + VManualLayoutStyle(); + + ~VManualLayoutStyle() override = default; + + VManualLayoutStyle(const VManualLayoutStyle &) = default; + auto operator=(const VManualLayoutStyle &) -> VManualLayoutStyle & = default; + +#ifdef Q_COMPILER_RVALUE_REFS + VManualLayoutStyle(VManualLayoutStyle &&) = default; + auto operator=(VManualLayoutStyle &&) -> VManualLayoutStyle & = default; +#endif + + void LoadJson(QJsonObject const &json) override; + + auto ToJson() const -> QJsonObject override; + + auto SheetBorderColor() const -> QColor; + auto SheetMarginColor() const -> QColor; + auto SheetGridColor() const -> QColor; + auto SheetTileGridColor() const -> QColor; + auto SheetTileNumberColor() const -> QColor; + auto PieceOkColor() const -> QColor; + auto PieceErrorColor() const -> QColor; + auto PieceHoverColor() const -> QColor; + auto PieceHandleColor() const -> QColor; + auto PieceHandleHoverColor() const -> QColor; + auto CarrouselPieceColor() const -> QColor; + auto CarrouselPieceSelectedColor() const -> QColor; + auto CarrouselPieceBackgroundColor() const -> QColor; + auto CarrouselPieceForegroundColor() const -> QColor; + +private: + QColor m_sheetBorderColor{}; + QColor m_sheetMarginColor{}; + QColor m_sheetGridColor{}; + QColor m_sheetTileGridColor{}; + QColor m_sheetTileNumberColor{}; + QColor m_pieceOkColor{}; + QColor m_pieceErrorColor{}; + QColor m_pieceHoverColor{}; + QColor m_pieceHandleColor{}; + QColor m_pieceHandleHoverColor{}; + QColor m_carrouselPieceColor{}; + QColor m_carrouselPieceSelectedColor{}; + QColor m_carrouselPieceBackgroundColor{}; + QColor m_carrouselPieceForegroundColor{}; +}; + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::SheetBorderColor() const -> QColor +{ + return m_sheetBorderColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::SheetMarginColor() const -> QColor +{ + return m_sheetMarginColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::SheetGridColor() const -> QColor +{ + return m_sheetGridColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::SheetTileGridColor() const -> QColor +{ + return m_sheetTileGridColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::SheetTileNumberColor() const -> QColor +{ + return m_sheetTileNumberColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::PieceOkColor() const -> QColor +{ + return m_pieceOkColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::PieceErrorColor() const -> QColor +{ + return m_pieceErrorColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::PieceHoverColor() const -> QColor +{ + return m_pieceHoverColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::PieceHandleColor() const -> QColor +{ + return m_pieceHandleColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VManualLayoutStyle::PieceHandleHoverColor() const -> QColor +{ + return m_pieceHandleHoverColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QColor VManualLayoutStyle::CarrouselPieceColor() const +{ + return m_carrouselPieceColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QColor VManualLayoutStyle::CarrouselPieceSelectedColor() const +{ + return m_carrouselPieceSelectedColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QColor VManualLayoutStyle::CarrouselPieceBackgroundColor() const +{ + return m_carrouselPieceBackgroundColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QColor VManualLayoutStyle::CarrouselPieceForegroundColor() const +{ + return m_carrouselPieceForegroundColor; +} + +#endif // VMANUALLAYOUTSTYLE_H diff --git a/src/libs/vmisc/theme/vpatternpiecestyle.cpp b/src/libs/vmisc/theme/vpatternpiecestyle.cpp new file mode 100644 index 000000000..811c6b959 --- /dev/null +++ b/src/libs/vmisc/theme/vpatternpiecestyle.cpp @@ -0,0 +1,95 @@ +/************************************************************************ + ** + ** @file vpatternpiecestyle.cpp + ** @author Roman Telezhynskyi + ** @date 28 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#include "vpatternpiecestyle.h" + +#include + +#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) +#include "../diagnostic.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) + +namespace +{ +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wunused-member-function") + +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PatternPieceStyleNodeVar, (QLatin1String("PatternPieceStyle"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PieceColorVar, (QLatin1String("PieceColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PointColorVar, (QLatin1String("PointColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, NodeLabelColorVar, (QLatin1String("NodeLabelColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, NodeLabelHoverColorVar, (QLatin1String("NodeLabelHoverColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, NodeLabelLineColorVar, (QLatin1String("NodeLabelLineColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, LabelBackgroundColorVar, (QLatin1String("LabelBackgroundColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, LabelTextColorVar, (QLatin1String("LabelTextColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, LabelModeColorVar, (QLatin1String("LabelModeColor"))) // NOLINT + +QT_WARNING_POP +} // namespace + +//--------------------------------------------------------------------------------------------------------------------- +VPatternPieceStyle::VPatternPieceStyle() +{ + LoadJsonFile(VStylesheetStyle::GetResourceName()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VPatternPieceStyle::LoadJson(const QJsonObject &json) +{ + QJsonValue toolStyleValues = json[*PatternPieceStyleNodeVar]; + + QJsonObject obj = toolStyleValues.toObject(); + + ReadColor(obj, *PieceColorVar, m_pieceColor); + ReadColor(obj, *PointColorVar, m_pointColor); + ReadColor(obj, *NodeLabelColorVar, m_nodeLabelColor); + ReadColor(obj, *NodeLabelHoverColorVar, m_nodeLabelHoverColor); + ReadColor(obj, *NodeLabelLineColorVar, m_nodeLabelLineColor); + ReadColor(obj, *LabelBackgroundColorVar, m_labelBackgroundColor); + ReadColor(obj, *LabelTextColorVar, m_labelTextColor); + ReadColor(obj, *LabelModeColorVar, m_labelModeColor); +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VPatternPieceStyle::ToJson() const -> QJsonObject +{ + QJsonObject obj; + + WriteColor(obj, *PieceColorVar, m_pieceColor); + WriteColor(obj, *PointColorVar, m_pointColor); + WriteColor(obj, *NodeLabelColorVar, m_nodeLabelColor); + WriteColor(obj, *NodeLabelHoverColorVar, m_nodeLabelHoverColor); + WriteColor(obj, *NodeLabelLineColorVar, m_nodeLabelLineColor); + WriteColor(obj, *LabelBackgroundColorVar, m_labelBackgroundColor); + WriteColor(obj, *LabelTextColorVar, m_labelTextColor); + WriteColor(obj, *LabelModeColorVar, m_labelModeColor); + + QJsonObject root; + root[*PatternPieceStyleNodeVar] = obj; + + return root; +} diff --git a/src/libs/vmisc/theme/vpatternpiecestyle.h b/src/libs/vmisc/theme/vpatternpiecestyle.h new file mode 100644 index 000000000..2b54505b1 --- /dev/null +++ b/src/libs/vmisc/theme/vpatternpiecestyle.h @@ -0,0 +1,122 @@ +/************************************************************************ + ** + ** @file vpatternpiecestyle.h + ** @author Roman Telezhynskyi + ** @date 28 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#ifndef VPATTERNPIECESTYLE_H +#define VPATTERNPIECESTYLE_H + +#include "vstylesheetstyle.h" + +#include + +class VPatternPieceStyle : public VStylesheetStyle +{ +public: + VPatternPieceStyle(); + + ~VPatternPieceStyle() override = default; + + VPatternPieceStyle(const VPatternPieceStyle &) = default; + auto operator=(const VPatternPieceStyle &) -> VPatternPieceStyle & = default; + +#ifdef Q_COMPILER_RVALUE_REFS + VPatternPieceStyle(VPatternPieceStyle &&) = default; + auto operator=(VPatternPieceStyle &&) -> VPatternPieceStyle & = default; +#endif + + void LoadJson(QJsonObject const &json) override; + + auto ToJson() const -> QJsonObject override; + + auto PieceColor() const -> QColor; + auto PointColor() const -> QColor; + auto NodeLabelColor() const -> QColor; + auto NodeLabelHoverColor() const -> QColor; + auto NodeLabelLineColor() const -> QColor; + auto LabelBackgroundColor() const -> QColor; + auto LabelTextColor() const -> QColor; + auto LabelModeColor() const -> QColor; + +private: + QColor m_pieceColor{}; + QColor m_pointColor{}; + QColor m_nodeLabelColor{}; + QColor m_nodeLabelHoverColor{}; + QColor m_nodeLabelLineColor{}; + QColor m_labelBackgroundColor{}; + QColor m_labelTextColor{}; + QColor m_labelModeColor{}; +}; + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::PieceColor() const -> QColor +{ + return m_pieceColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::PointColor() const -> QColor +{ + return m_pointColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::NodeLabelColor() const -> QColor +{ + return m_nodeLabelColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::NodeLabelHoverColor() const -> QColor +{ + return m_nodeLabelHoverColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::NodeLabelLineColor() const -> QColor +{ + return m_nodeLabelLineColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::LabelBackgroundColor() const -> QColor +{ + return m_labelBackgroundColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::LabelTextColor() const -> QColor +{ + return m_labelTextColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VPatternPieceStyle::LabelModeColor() const -> QColor +{ + return m_labelModeColor; +} + +#endif // VPATTERNPIECESTYLE_H diff --git a/src/libs/vmisc/theme/vscenestylesheet.cpp b/src/libs/vmisc/theme/vscenestylesheet.cpp new file mode 100644 index 000000000..79210c07d --- /dev/null +++ b/src/libs/vmisc/theme/vscenestylesheet.cpp @@ -0,0 +1,172 @@ +/************************************************************************ + ** + ** @file vscenestylesheet.cpp + ** @author Roman Telezhynskyi + ** @date 24 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#include "vscenestylesheet.h" + +#include "../def.h" +#include "vmisc/theme/vmanuallayoutstyle.h" +#include "vtheme.h" + +#include +#include + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::Instance() -> VSceneStylesheet & +{ + static VSceneStylesheet stylesheet; + + return stylesheet; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VSceneStylesheet::ResetStyles() +{ + SetToolStyle(VToolStyle()); + SetPatternPieceStyle(VPatternPieceStyle()); + SetManualLayoutStyle(VManualLayoutStyle()); +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::ToolStyle() -> const VToolStyle & +{ + return Instance().m_toolStyle; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VSceneStylesheet::SetToolStyle(const VToolStyle &style) +{ + Instance().m_toolStyle = style; +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::PatternPieceStyle() -> const VPatternPieceStyle & +{ + return Instance().m_patternPieceStyle; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VSceneStylesheet::SetPatternPieceStyle(const VPatternPieceStyle &style) +{ + Instance().m_patternPieceStyle = style; +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::ManualLayoutStyle() -> const VManualLayoutStyle & +{ + return Instance().m_manualLayoutStyle; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VSceneStylesheet::SetManualLayoutStyle(const VManualLayoutStyle &style) +{ + Instance().m_manualLayoutStyle = style; +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::Color(VColorRole role) -> QColor +{ + switch (role) + { + case (VColorRole::PatternColor): + return ToolStyle().PatternColor(); + case (VColorRole::DraftPointColor): + return ToolStyle().PointColor(); + case (VColorRole::DraftLabelColor): + return ToolStyle().LabelColor(); + case (VColorRole::DraftLabelHoverColor): + return ToolStyle().LabelHoverColor(); + case (VColorRole::DraftLabelLineColor): + return ToolStyle().LabelLineColor(); + case (VColorRole::ControlLineColor): + return ToolStyle().ControlLineColor(); + case (VColorRole::ControlPointColor): + return ToolStyle().ControlPointColor(); + case (VColorRole::AccuracyRadiusColor): + return ToolStyle().AccuracyRadiusColor(); + case (VColorRole::VisMainColor): + return ToolStyle().VisMainColor(); + case (VColorRole::VisSupportColor): + return ToolStyle().VisSupportColor(); + case (VColorRole::VisSupportColor2): + return ToolStyle().VisSupportColor2(); + case (VColorRole::VisSupportColor3): + return ToolStyle().VisSupportColor3(); + case (VColorRole::VisSupportColor4): + return ToolStyle().VisSupportColor4(); + case (VColorRole::BasePointColor): + return ToolStyle().BasePointColor(); + case (VColorRole::PieceColor): + return PatternPieceStyle().PieceColor(); + case (VColorRole::PiecePointColor): + return PatternPieceStyle().PointColor(); + case (VColorRole::PieceNodeLabelColor): + return PatternPieceStyle().NodeLabelColor(); + case (VColorRole::PieceNodeLabelHoverColor): + return PatternPieceStyle().NodeLabelHoverColor(); + case (VColorRole::PieceNodeLabelLineColor): + return PatternPieceStyle().NodeLabelLineColor(); + case (VColorRole::DefaultColor): + default: + return Qt::black; + } +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::CorrectToolColor(const QGraphicsItem *item, const QColor &color) -> QColor +{ + SCASSERT(item != nullptr) + + if (item->isEnabled()) + { + return color; + } + + QColor disabled = ToolStyle().DisabledColor(); + disabled.setAlpha(color.alpha()); + return disabled; +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VSceneStylesheet::CorrectToolColorForDarkTheme(const QColor &color) -> QColor +{ + if (VTheme::ColorSheme() != VColorSheme::Dark) + { + return color; + } + + QMap adjustments = ToolStyle().ColorAdjustments(); + + QString colorName = color.name(QColor::HexArgb); + if (adjustments.contains(colorName)) + { + QColor c = adjustments.value(color.name(QColor::HexArgb)); + colorName = c.name(QColor::HexArgb); + return c; + } + + return color.lighter(150); +} diff --git a/src/libs/vmisc/theme/vscenestylesheet.h b/src/libs/vmisc/theme/vscenestylesheet.h new file mode 100644 index 000000000..145e557d7 --- /dev/null +++ b/src/libs/vmisc/theme/vscenestylesheet.h @@ -0,0 +1,77 @@ +/************************************************************************ + ** + ** @file vscenestylesheet.h + ** @author Roman Telezhynskyi + ** @date 24 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#ifndef VSCENESTYLESHEET_H +#define VSCENESTYLESHEET_H + +#include + +#include "themeDef.h" +#include "vmanuallayoutstyle.h" +#include "vpatternpiecestyle.h" +#include "vtoolstyle.h" + +#if QT_VERSION < QT_VERSION_CHECK(5, 13, 0) +#include "../defglobal.h" +#endif + +class QGraphicsItem; + +class VSceneStylesheet +{ +public: + ~VSceneStylesheet() = default; + + static auto Instance() -> VSceneStylesheet &; + + static void ResetStyles(); + + static auto ToolStyle() -> VToolStyle const &; + static void SetToolStyle(const VToolStyle &style); + + static auto PatternPieceStyle() -> VPatternPieceStyle const &; + static void SetPatternPieceStyle(const VPatternPieceStyle &style); + + static auto ManualLayoutStyle() -> VManualLayoutStyle const &; + static void SetManualLayoutStyle(const VManualLayoutStyle &style); + + static auto Color(VColorRole role) -> QColor; + + static auto CorrectToolColor(const QGraphicsItem *item, const QColor &color) -> QColor; + static auto CorrectToolColorForDarkTheme(const QColor &color) -> QColor; + +private: + Q_DISABLE_COPY_MOVE(VSceneStylesheet) // NOLINT + + VToolStyle m_toolStyle{}; + VPatternPieceStyle m_patternPieceStyle{}; + VManualLayoutStyle m_manualLayoutStyle{}; + + VSceneStylesheet() = default; +}; + +#endif // VSCENESTYLESHEET_H diff --git a/src/libs/vmisc/theme/vstylesheetstyle.cpp b/src/libs/vmisc/theme/vstylesheetstyle.cpp new file mode 100644 index 000000000..edb573290 --- /dev/null +++ b/src/libs/vmisc/theme/vstylesheetstyle.cpp @@ -0,0 +1,152 @@ +/************************************************************************ + ** + ** @file vstylesheetstyle.cpp + ** @author Roman Telezhynskyi + ** @date 24 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#include "vstylesheetstyle.h" +#include "vtheme.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace +{ +ExportColorScheme exportColorScheme = ExportColorScheme::Default; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::LoadJsonFromByteArray(const QByteArray &byteArray) +{ + auto json = QJsonDocument::fromJson(byteArray).object(); + + LoadJson(json); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::LoadJsonText(const QString &jsonText) +{ + LoadJsonFromByteArray(jsonText.toUtf8()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::LoadJsonFile(const QString &fileName) +{ + QFile file(fileName); + + if (!file.open(QIODevice::ReadOnly)) + { + qWarning() << "Couldn't open file " << fileName; + + return; + } + + LoadJsonFromByteArray(file.readAll()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::SetExportColorScheme(ExportColorScheme colorScheme) +{ + exportColorScheme = colorScheme; +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VStylesheetStyle::GetResourceName() -> QString +{ + const QString light = QStringLiteral("light"); + QString colorSheme; + + if (exportColorScheme == ExportColorScheme::BackAndWhite) + { + colorSheme = light; + } + else + { + colorSheme = (VTheme::ColorSheme() == VColorSheme::Dark ? QStringLiteral("dark") : light); + } + + return QStringLiteral(":/scenestyle/%1/style.json").arg(colorSheme); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::CheckUndefinedValue(const QJsonValue &v, const QString &variable) +{ + if (v.type() == QJsonValue::Undefined || v.type() == QJsonValue::Null) + { + qWarning() << "Undefined value for parameter:" << variable; + } +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VStylesheetStyle::ReadColorValue(const QJsonValue &value) -> QColor +{ + if (value.isArray()) + { + auto colorArray = value.toArray(); + std::vector rgba; + rgba.reserve(4); + + std::transform(colorArray.begin(), colorArray.end(), std::back_inserter(rgba), + [](const QJsonValue &value) { return value.toInt(); }); + + if (rgba.size() == 3) + { + rgba.push_back(255); + } + + if (rgba.size() == 4) + { + return {rgba[0], rgba[1], rgba[2], rgba[3]}; + } + } + else + { + return {value.toString()}; + } + return Qt::black; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::ReadColor(const QJsonObject &values, const QString &colorName, QColor &variable) +{ + auto valueRef = values[colorName]; + + CheckUndefinedValue(valueRef, colorName); + + variable = ReadColorValue(valueRef); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStylesheetStyle::WriteColor(const QJsonObject &values, const QString &colorName, const QColor &variable) +{ + values[colorName] = variable.name(QColor::HexArgb); +} diff --git a/src/libs/vmisc/theme/vstylesheetstyle.h b/src/libs/vmisc/theme/vstylesheetstyle.h new file mode 100644 index 000000000..f2821da65 --- /dev/null +++ b/src/libs/vmisc/theme/vstylesheetstyle.h @@ -0,0 +1,78 @@ +/************************************************************************ + ** + ** @file vstylesheetstyle.h + ** @author Roman Telezhynskyi + ** @date 24 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#ifndef VSTYLESHEETSTYLE_H +#define VSTYLESHEETSTYLE_H + +#include + +class QJsonObject; +class QJsonValue; +class QByteArray; +class QString; +class QColor; + +enum class ExportColorScheme +{ + Default, + BackAndWhite +}; + +class VStylesheetStyle +{ +public: + VStylesheetStyle() = default; + virtual ~VStylesheetStyle() = default; + + VStylesheetStyle(const VStylesheetStyle &) = default; + auto operator=(const VStylesheetStyle &) -> VStylesheetStyle & = default; + +#ifdef Q_COMPILER_RVALUE_REFS + VStylesheetStyle(VStylesheetStyle &&) = default; + auto operator=(VStylesheetStyle &&) -> VStylesheetStyle & = default; +#endif + + virtual void LoadJson(QJsonObject const &json) = 0; + virtual auto ToJson() const -> QJsonObject = 0; + + /// Loads from utf-8 byte array. + virtual void LoadJsonFromByteArray(const QByteArray &byteArray); + virtual void LoadJsonText(const QString &jsonText); + virtual void LoadJsonFile(const QString &fileName); + + static void SetExportColorScheme(ExportColorScheme colorScheme); + + static auto GetResourceName() -> QString; + + static void CheckUndefinedValue(const QJsonValue &v, const QString &variable); + + static auto ReadColorValue(const QJsonValue &value) -> QColor; + static void ReadColor(const QJsonObject &values, const QString &colorName, QColor &variable); + static void WriteColor(const QJsonObject &values, const QString &colorName, const QColor &variable); +}; + +#endif // VSTYLESHEETSTYLE_H diff --git a/src/libs/vmisc/theme/vtheme.cpp b/src/libs/vmisc/theme/vtheme.cpp index ec3160ee2..79cb63af2 100644 --- a/src/libs/vmisc/theme/vtheme.cpp +++ b/src/libs/vmisc/theme/vtheme.cpp @@ -66,6 +66,7 @@ using namespace bpstd::literals::chrono_literals; #include "../defglobal.h" #include "../vabstractapplication.h" +#include "vscenestylesheet.h" namespace { @@ -223,7 +224,7 @@ void ActivateDefaultTheme() } //--------------------------------------------------------------------------------------------------------------------- -QString GetResourceName(const QString &root, const QString &iconName, bool dark) +auto GetResourceName(const QString &root, const QString &iconName, bool dark) -> QString { return QStringLiteral(":/%1/%2/%3").arg(root, dark ? "dark" : "light", iconName); } @@ -500,6 +501,9 @@ void VTheme::ResetThemeSettings() const SetToAutoTheme(); SetIconTheme(); InitThemeMode(); + VSceneStylesheet::ResetStyles(); + + emit Instance()->ThemeSettingsChanged(); } //--------------------------------------------------------------------------------------------------------------------- @@ -507,7 +511,7 @@ auto VTheme::GetIconResource(const QString &root, const QString &iconName) -> QI { QIcon icon; bool dark = (ColorSheme() == VColorSheme::Dark); - QPixmap pixmap = GetPixmapResource(root, iconName, dark); + QPixmap pixmap = ::GetPixmapResource(root, iconName, dark); icon.addPixmap(pixmap); if (dark) { @@ -520,6 +524,13 @@ auto VTheme::GetIconResource(const QString &root, const QString &iconName) -> QI return icon; } +//--------------------------------------------------------------------------------------------------------------------- +auto VTheme::GetPixmapResource(const QString &root, const QString &iconName) -> QPixmap +{ + bool dark = (ColorSheme() == VColorSheme::Dark); + return ::GetPixmapResource(root, iconName, dark); +} + //--------------------------------------------------------------------------------------------------------------------- auto VTheme::GetResourceName(const QString &root, const QString &iconName) -> QString { diff --git a/src/libs/vmisc/theme/vtheme.h b/src/libs/vmisc/theme/vtheme.h index ddf429a03..5df569ec6 100644 --- a/src/libs/vmisc/theme/vtheme.h +++ b/src/libs/vmisc/theme/vtheme.h @@ -57,6 +57,7 @@ public: void ResetThemeSettings() const; static auto GetIconResource(const QString &root, const QString &iconName) -> QIcon; + static auto GetPixmapResource(const QString &root, const QString &iconName) -> QPixmap; static auto GetResourceName(const QString &root, const QString &iconName) -> QString; static auto NativeDarkThemeAvailable() -> bool; @@ -67,6 +68,9 @@ public: static void InitThemeMode(); static auto ThemeStylesheet() -> QString; +signals: + void ThemeSettingsChanged(); + private: Q_DISABLE_COPY_MOVE(VTheme) // NOLINT diff --git a/src/libs/vmisc/theme/vtoolstyle.cpp b/src/libs/vmisc/theme/vtoolstyle.cpp new file mode 100644 index 000000000..9cf139318 --- /dev/null +++ b/src/libs/vmisc/theme/vtoolstyle.cpp @@ -0,0 +1,158 @@ +/************************************************************************ + ** + ** @file vtoolstyle.cpp + ** @author Roman Telezhynskyi + ** @date 24 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#include "vtoolstyle.h" + +#include +#include +#include +#include +#include + +#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) +#include "../diagnostic.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) + +namespace +{ +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wunused-member-function") + +Q_GLOBAL_STATIC_WITH_ARGS(const QString, ToolStyleNodeVar, (QLatin1String("ToolStyle"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PatternColorVar, (QLatin1String("PatternColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, DisabledColorVar, (QLatin1String("DisabledColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, ColorAdjustmentsVar, (QLatin1String("ColorAdjustments"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, PointColorVar, (QLatin1String("PointColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, LabelColorVar, (QLatin1String("LabelColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, LabelHoverColorVar, (QLatin1String("LabelHoverColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, LabelLineColorVar, (QLatin1String("LabelLineColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, AccuracyRadiusColorVar, (QLatin1String("AccuracyRadiusColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, ControlLineColorVar, (QLatin1String("ControlLineColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, ControlPointColorVar, (QLatin1String("ControlPointColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, VisMainColorVar, (QLatin1String("VisMainColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, VisSupportColorVar, (QLatin1String("VisSupportColor"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, VisSupportColor2Var, (QLatin1String("VisSupportColor2"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, VisSupportColor3Var, (QLatin1String("VisSupportColor3"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, VisSupportColor4Var, (QLatin1String("VisSupportColor4"))) // NOLINT +Q_GLOBAL_STATIC_WITH_ARGS(const QString, BasePointColorVar, (QLatin1String("BasePointColor"))) // NOLINT + +QT_WARNING_POP + +//--------------------------------------------------------------------------------------------------------------------- +void ReadColorAdjustments(const QJsonObject &values, const QString &variable, QMap &adjustments) +{ + auto valueRef = values[variable]; + + if (valueRef.type() == QJsonValue::Undefined || valueRef.type() == QJsonValue::Null || !valueRef.isObject()) + { + return; + } + + QJsonObject colorAdjustmentsObject = valueRef.toObject(); + + for (const QString &key : colorAdjustmentsObject.keys()) + { + QColor keyColor(key); + QColor valueColor = VStylesheetStyle::ReadColorValue(colorAdjustmentsObject.value(key)); + QString colorName = valueColor.name(QColor::HexArgb); + adjustments.insert(keyColor.name(QColor::HexArgb), colorName); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void WriteColorAdjustments(const QJsonObject &values, const QString &variable, + const QMap &adjustments) +{ + QJsonObject colorAdjustmentsObject; + + for (auto it = adjustments.begin(); it != adjustments.end(); ++it) + { + colorAdjustmentsObject.insert(it.key(), it.value()); + } + + values[variable] = colorAdjustmentsObject; +} +} // namespace + +//--------------------------------------------------------------------------------------------------------------------- +VToolStyle::VToolStyle() +{ + LoadJsonFile(VStylesheetStyle::GetResourceName()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VToolStyle::LoadJson(const QJsonObject &json) +{ + QJsonValue toolStyleValues = json[*ToolStyleNodeVar]; + + QJsonObject obj = toolStyleValues.toObject(); + + ReadColor(obj, *PatternColorVar, m_patternColor); + ReadColor(obj, *DisabledColorVar, m_disabledColor); + ReadColorAdjustments(obj, *ColorAdjustmentsVar, m_colorAdjustments); + ReadColor(obj, *PointColorVar, m_pointColor); + ReadColor(obj, *LabelColorVar, m_labelColor); + ReadColor(obj, *LabelHoverColorVar, m_labelHoverColor); + ReadColor(obj, *LabelLineColorVar, m_labelLineColor); + ReadColor(obj, *AccuracyRadiusColorVar, m_accuracyRadiusColor); + ReadColor(obj, *ControlLineColorVar, m_controlLineColor); + ReadColor(obj, *ControlPointColorVar, m_controlPointColor); + ReadColor(obj, *VisMainColorVar, m_visMainColor); + ReadColor(obj, *VisSupportColorVar, m_visSupportColor); + ReadColor(obj, *VisSupportColor2Var, m_visSupportColor2); + ReadColor(obj, *VisSupportColor3Var, m_visSupportColor3); + ReadColor(obj, *VisSupportColor4Var, m_visSupportColor4); + ReadColor(obj, *BasePointColorVar, m_basePointColor); +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VToolStyle::ToJson() const -> QJsonObject +{ + QJsonObject obj; + + WriteColor(obj, *PatternColorVar, m_patternColor); + WriteColor(obj, *DisabledColorVar, m_disabledColor); + WriteColorAdjustments(obj, *ColorAdjustmentsVar, m_colorAdjustments); + WriteColor(obj, *PointColorVar, m_pointColor); + WriteColor(obj, *LabelColorVar, m_labelColor); + WriteColor(obj, *LabelHoverColorVar, m_labelHoverColor); + WriteColor(obj, *LabelLineColorVar, m_labelLineColor); + WriteColor(obj, *AccuracyRadiusColorVar, m_accuracyRadiusColor); + WriteColor(obj, *ControlLineColorVar, m_controlLineColor); + WriteColor(obj, *ControlPointColorVar, m_controlPointColor); + WriteColor(obj, *VisMainColorVar, m_visMainColor); + WriteColor(obj, *VisSupportColorVar, m_visSupportColor); + WriteColor(obj, *VisSupportColor2Var, m_visSupportColor2); + WriteColor(obj, *VisSupportColor3Var, m_visSupportColor3); + WriteColor(obj, *VisSupportColor4Var, m_visSupportColor4); + WriteColor(obj, *BasePointColorVar, m_basePointColor); + + QJsonObject root; + root[*ToolStyleNodeVar] = obj; + + return root; +} diff --git a/src/libs/vmisc/theme/vtoolstyle.h b/src/libs/vmisc/theme/vtoolstyle.h new file mode 100644 index 000000000..b51de91f9 --- /dev/null +++ b/src/libs/vmisc/theme/vtoolstyle.h @@ -0,0 +1,188 @@ +/************************************************************************ + ** + ** @file vtoolstyle.h + ** @author Roman Telezhynskyi + ** @date 24 7, 2023 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentina project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2023 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ +#ifndef VTOOLSTYLE_H +#define VTOOLSTYLE_H + +#include "vstylesheetstyle.h" + +#include +#include + +class VToolStyle : public VStylesheetStyle +{ +public: + VToolStyle(); + + ~VToolStyle() override = default; + + VToolStyle(const VToolStyle &) = default; + auto operator=(const VToolStyle &) -> VToolStyle & = default; + +#ifdef Q_COMPILER_RVALUE_REFS + VToolStyle(VToolStyle &&) = default; + auto operator=(VToolStyle &&) -> VToolStyle & = default; +#endif + + void LoadJson(QJsonObject const &json) override; + + auto ToJson() const -> QJsonObject override; + + auto ColorAdjustments() const -> QMap; + + auto PatternColor() const -> QColor; + auto DisabledColor() const -> QColor; + auto PointColor() const -> QColor; + auto LabelColor() const -> QColor; + auto LabelHoverColor() const -> QColor; + auto LabelLineColor() const -> QColor; + auto AccuracyRadiusColor() const -> QColor; + auto ControlLineColor() const -> QColor; + auto ControlPointColor() const -> QColor; + auto VisMainColor() const -> QColor; + auto VisSupportColor() const -> QColor; + auto VisSupportColor2() const -> QColor; + auto VisSupportColor3() const -> QColor; + auto VisSupportColor4() const -> QColor; + auto BasePointColor() const -> QColor; + +private: + QColor m_patternColor{}; + QColor m_disabledColor{}; + QColor m_pointColor{}; + QColor m_labelColor{}; + QColor m_labelHoverColor{}; + QColor m_labelLineColor{}; + QColor m_controlLineColor{}; + QColor m_controlPointColor{}; + QColor m_accuracyRadiusColor{}; + QColor m_visMainColor{}; + QColor m_visSupportColor{}; + QColor m_visSupportColor2{}; + QColor m_visSupportColor3{}; + QColor m_visSupportColor4{}; + QColor m_basePointColor{}; + QMap m_colorAdjustments{}; +}; + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::PatternColor() const -> QColor +{ + return m_patternColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::DisabledColor() const -> QColor +{ + return m_disabledColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::ColorAdjustments() const -> QMap +{ + return m_colorAdjustments; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::PointColor() const -> QColor +{ + return m_pointColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::LabelColor() const -> QColor +{ + return m_labelColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::LabelHoverColor() const -> QColor +{ + return m_labelHoverColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::LabelLineColor() const -> QColor +{ + return m_labelLineColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::AccuracyRadiusColor() const -> QColor +{ + return m_accuracyRadiusColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::ControlLineColor() const -> QColor +{ + return m_controlLineColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::ControlPointColor() const -> QColor +{ + return m_controlPointColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::VisMainColor() const -> QColor +{ + return m_visMainColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::VisSupportColor() const -> QColor +{ + return m_visSupportColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::VisSupportColor2() const -> QColor +{ + return m_visSupportColor2; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::VisSupportColor3() const -> QColor +{ + return m_visSupportColor3; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::VisSupportColor4() const -> QColor +{ + return m_visSupportColor4; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VToolStyle::BasePointColor() const -> QColor +{ + return m_basePointColor; +} + +#endif // VTOOLSTYLE_H diff --git a/src/libs/vmisc/vabstractapplication.cpp b/src/libs/vmisc/vabstractapplication.cpp index 4dda44ccd..0f68add98 100644 --- a/src/libs/vmisc/vabstractapplication.cpp +++ b/src/libs/vmisc/vabstractapplication.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include "QtConcurrent/qtconcurrentrun.h" diff --git a/src/libs/vmisc/vmisc.qbs b/src/libs/vmisc/vmisc.qbs index 29a19e164..38ded48b1 100644 --- a/src/libs/vmisc/vmisc.qbs +++ b/src/libs/vmisc/vmisc.qbs @@ -160,10 +160,21 @@ VLib { name: "theme" prefix: "theme/" files: [ + "themeDef.h", "vapplicationstyle.cpp", "vapplicationstyle.h", + "vmanuallayoutstyle.cpp", + "vmanuallayoutstyle.h", + "vpatternpiecestyle.cpp", + "vpatternpiecestyle.h", + "vscenestylesheet.cpp", + "vscenestylesheet.h", + "vstylesheetstyle.cpp", + "vstylesheetstyle.h", "vtheme.h", "vtheme.cpp", + "vtoolstyle.cpp", + "vtoolstyle.h", ] } @@ -183,7 +194,8 @@ VLib { files: [ "icon.qrc", "flags.qrc", - "breezethemes/breeze.qrc" + "breezethemes/breeze.qrc", + "scenestyle.qrc", ] } diff --git a/src/libs/vmisc/vtablesearch.cpp b/src/libs/vmisc/vtablesearch.cpp index 2a9ec417d..2c1107718 100644 --- a/src/libs/vmisc/vtablesearch.cpp +++ b/src/libs/vmisc/vtablesearch.cpp @@ -32,17 +32,16 @@ #include #include #include -#include -#include "../vmisc/def.h" #include "../vmisc/compatibility.h" +#include "../vmisc/def.h" const int VTableSearch::MaxHistoryRecords = 10; //--------------------------------------------------------------------------------------------------------------------- VTableSearch::VTableSearch(QTableWidget *table, QObject *parent) - : QObject(parent), - table(table) + : QObject(parent), + table(table) { } @@ -51,19 +50,19 @@ void VTableSearch::Clear() { SCASSERT(table != nullptr) - for(int i = 0; i < table->rowCount(); ++i) + for (int i = 0; i < table->rowCount(); ++i) { - for(int j = 0; j < table->columnCount(); ++j) + for (int j = 0; j < table->columnCount(); ++j) { if (QTableWidgetItem *item = table->item(i, j)) { if (item->row() % 2 != 0 && table->alternatingRowColors()) { - item->setBackground(QPalette().alternateBase()); + item->setBackground(table->palette().alternateBase()); } else { - item->setBackground(QPalette().base()); + item->setBackground(table->palette().base()); } } } @@ -122,16 +121,16 @@ auto VTableSearch::FindTableItems(QString term) -> QList QRegularExpression re(term, options); - if(not re.isValid()) + if (not re.isValid()) { return {}; } QList list; - for (int r=0; rrowCount(); ++r) + for (int r = 0; r < table->rowCount(); ++r) { - for (int c=0; ccolumnCount(); ++c) + for (int c = 0; c < table->columnCount(); ++c) { QTableWidgetItem *cell = table->item(r, c); if (cell != nullptr) @@ -156,18 +155,18 @@ auto VTableSearch::FindCurrentMatchIndex() const -> int return 0; } - QList selectedItems = table->selectedItems(); + QList selectedItems = table->selectedItems(); if (selectedItems.isEmpty()) { return 0; } - QTableWidgetItem* selectedItem = ConstFirst(selectedItems); + QTableWidgetItem *selectedItem = ConstFirst(selectedItems); - for (int i=0; irow()>= selectedItem->row() && item->column()>= selectedItem->column()) + QTableWidgetItem *item = searchList.at(i); + if (item->row() >= selectedItem->row() && item->column() >= selectedItem->column()) { return i; } @@ -179,7 +178,7 @@ auto VTableSearch::FindCurrentMatchIndex() const -> int //--------------------------------------------------------------------------------------------------------------------- void VTableSearch::Find(const QString &term) { - if(table == nullptr) + if (table == nullptr) { return; } @@ -293,11 +292,11 @@ void VTableSearch::RefreshList(const QString &term) if (searchIndex < 0) { - searchIndex = searchList.size() - 1; + searchIndex = searchList.size() - 1; } else if (searchIndex >= searchList.size()) { - searchIndex = 0; + searchIndex = 0; } QTableWidgetItem *item = searchList.at(searchIndex); diff --git a/src/libs/vpropertyexplorer/checkablemessagebox.cpp b/src/libs/vpropertyexplorer/checkablemessagebox.cpp index 28eee0a3b..61aa17f81 100644 --- a/src/libs/vpropertyexplorer/checkablemessagebox.cpp +++ b/src/libs/vpropertyexplorer/checkablemessagebox.cpp @@ -30,7 +30,6 @@ #include #include #include -#include static const char kDoNotAskAgainKey[] = "DoNotAskAgain"; @@ -51,7 +50,11 @@ class CheckableMessageBoxPrivate { public: explicit CheckableMessageBoxPrivate(QDialog *q) - : pixmapLabel(nullptr), messageLabel(nullptr), checkBox(nullptr), buttonBox(nullptr), clickedButton(nullptr) + : pixmapLabel(nullptr), + messageLabel(nullptr), + checkBox(nullptr), + buttonBox(nullptr), + clickedButton(nullptr) { QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); @@ -68,7 +71,7 @@ public: messageLabel->setMinimumSize(QSize(300, 0)); messageLabel->setWordWrap(true); messageLabel->setOpenExternalLinks(true); - messageLabel->setTextInteractionFlags(Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse); + messageLabel->setTextInteractionFlags(Qt::LinksAccessibleByKeyboard | Qt::LinksAccessibleByMouse); QSpacerItem *checkBoxRightSpacer = new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum); QSpacerItem *buttonSpacer = new QSpacerItem(0, 1, QSizePolicy::Minimum, QSizePolicy::Minimum); @@ -78,7 +81,7 @@ public: buttonBox = new QDialogButtonBox(q); buttonBox->setOrientation(Qt::Horizontal); - buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); + buttonBox->setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok); QVBoxLayout *verticalLayout = new QVBoxLayout(); verticalLayout->addWidget(pixmapLabel); @@ -104,19 +107,20 @@ public: QCheckBox *checkBox; QDialogButtonBox *buttonBox; QAbstractButton *clickedButton; + private: Q_DISABLE_COPY_MOVE(CheckableMessageBoxPrivate) // NOLINT }; -CheckableMessageBox::CheckableMessageBox(QWidget *parent) : - QDialog(parent), +CheckableMessageBox::CheckableMessageBox(QWidget *parent) + : QDialog(parent), d(new CheckableMessageBoxPrivate(this)) { setModal(true); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); connect(d->buttonBox, SIGNAL(accepted()), SLOT(accept())); connect(d->buttonBox, SIGNAL(rejected()), SLOT(reject())); - connect(d->buttonBox, SIGNAL(clicked(QAbstractButton*)), SLOT(slotClicked(QAbstractButton*))); + connect(d->buttonBox, SIGNAL(clicked(QAbstractButton *)), SLOT(slotClicked(QAbstractButton *))); } CheckableMessageBox::~CheckableMessageBox() @@ -233,7 +237,7 @@ auto CheckableMessageBox::defaultButton() const -> QDialogButtonBox::StandardBut { if (pb->isDefault()) { - return d->buttonBox->standardButton(pb); + return d->buttonBox->standardButton(pb); } } } @@ -295,7 +299,7 @@ auto CheckableMessageBox::dialogButtonBoxToMessageBoxButton(QDialogButtonBox::St auto CheckableMessageBox::askAgain(QSettings *settings, const QString &settingsSubKey) -> bool { - //QTC_CHECK(settings); + // QTC_CHECK(settings); if (settings) { settings->beginGroup(QLatin1String(kDoNotAskAgainKey)); @@ -315,9 +319,8 @@ void CheckableMessageBox::initDoNotAskAgainMessageBox(CheckableMessageBox &messa DoNotAskAgainType type) { messageBox.setWindowTitle(title); - messageBox.setIconPixmap(QMessageBox::standardIcon(type == Information - ? QMessageBox::Information - : QMessageBox::Question)); + messageBox.setIconPixmap( + QMessageBox::standardIcon(type == Information ? QMessageBox::Information : QMessageBox::Question)); messageBox.setText(text); messageBox.setCheckBoxVisible(true); messageBox.setCheckBoxText(type == Information ? CheckableMessageBox::msgDoNotShowAgain() @@ -393,7 +396,7 @@ CheckableMessageBox::doNotShowAgainInformation(QWidget *parent, const QString &t { if (!askAgain(settings, settingsSubKey)) { - return defaultButton; + return defaultButton; } CheckableMessageBox messageBox(parent); @@ -414,7 +417,7 @@ CheckableMessageBox::doNotShowAgainInformation(QWidget *parent, const QString &t // cppcheck-suppress unusedFunction void CheckableMessageBox::resetAllDoNotAskAgainQuestions(QSettings *settings) { - //Q_ASSERT(settings, return); + // Q_ASSERT(settings, return); settings->beginGroup(QLatin1String(kDoNotAskAgainKey)); settings->remove(QString()); settings->endGroup(); @@ -427,7 +430,7 @@ void CheckableMessageBox::resetAllDoNotAskAgainQuestions(QSettings *settings) // cppcheck-suppress unusedFunction auto CheckableMessageBox::hasSuppressedQuestions(QSettings *settings) -> bool { - //Q_ASSERT(settings, return false); + // Q_ASSERT(settings, return false); bool hasSuppressed = false; settings->beginGroup(QLatin1String(kDoNotAskAgainKey)); for (auto &subKey : settings->childKeys()) diff --git a/src/libs/vpropertyexplorer/plugins/Vector3d/vvector3dproperty.h b/src/libs/vpropertyexplorer/plugins/Vector3d/vvector3dproperty.h index 0ebbd0f94..f5573383a 100644 --- a/src/libs/vpropertyexplorer/plugins/Vector3d/vvector3dproperty.h +++ b/src/libs/vpropertyexplorer/plugins/Vector3d/vvector3dproperty.h @@ -21,14 +21,12 @@ #ifndef VVECTOR3DPROPERTY_H #define VVECTOR3DPROPERTY_H - -#include #include #include #include #include -#include #include +#include #include "../../vproperty.h" #include "../../vpropertyexplorer_global.h" @@ -40,16 +38,22 @@ struct VPROPERTYEXPLORERSHARED_EXPORT Vector3D //-V690 { public: Vector3D() - :X(0), Y(0), Z(0) - {} + : X(0), + Y(0), + Z(0) + { + } - Vector3D(const Vector3D& other) - :X(other.X), Y(other.Y), Z(other.Z) - {} + Vector3D(const Vector3D &other) + : X(other.X), + Y(other.Y), + Z(other.Z) + { + } auto operator=(const Vector3D &other) -> Vector3D & { - if ( &other == this ) + if (&other == this) { return *this; } @@ -76,8 +80,9 @@ QT_WARNING_DISABLE_GCC("-Wsuggest-final-types") class VPROPERTYEXPLORERSHARED_EXPORT QVector3DProperty : public VProperty { Q_OBJECT // NOLINT + public: - explicit QVector3DProperty(const QString& name); + explicit QVector3DProperty(const QString &name); virtual ~QVector3DProperty() override {} @@ -91,7 +96,7 @@ public: virtual auto getVector() const -> Vector3D; //! Sets the Vector3d - virtual void setVector(const Vector3D& vect); + virtual void setVector(const Vector3D &vect); //! Sets the Vector3d virtual void setVector(double x, double y, double z); @@ -107,7 +112,7 @@ public: virtual auto clone(bool include_children = true, VProperty *container = NULL) const -> VProperty * override; //! Sets the value of the property - virtual void setValue(const QVariant& value) override; + virtual void setValue(const QVariant &value) override; //! Returns the value of the property as a QVariant virtual auto getValue() const -> QVariant override; @@ -118,6 +123,6 @@ private: QT_WARNING_POP -} +} // namespace VPE #endif // VVECTOR3DPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vboolproperty.h b/src/libs/vpropertyexplorer/plugins/vboolproperty.h index 91d0a90df..de97e820c 100644 --- a/src/libs/vpropertyexplorer/plugins/vboolproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vboolproperty.h @@ -25,7 +25,6 @@ #include #include #include -#include #include #include diff --git a/src/libs/vpropertyexplorer/plugins/vcolorproperty.h b/src/libs/vpropertyexplorer/plugins/vcolorproperty.h index fce23807a..ade990639 100644 --- a/src/libs/vpropertyexplorer/plugins/vcolorproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vcolorproperty.h @@ -26,7 +26,6 @@ #include #include #include -#include #include #include diff --git a/src/libs/vpropertyexplorer/plugins/vemptyproperty.h b/src/libs/vpropertyexplorer/plugins/vemptyproperty.h index fc1a68f84..c16bb0b9b 100644 --- a/src/libs/vpropertyexplorer/plugins/vemptyproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vemptyproperty.h @@ -26,7 +26,6 @@ #include #include #include -#include #include #include "../vproperty.h" diff --git a/src/libs/vpropertyexplorer/plugins/venumproperty.h b/src/libs/vpropertyexplorer/plugins/venumproperty.h index 7a3820e0c..22f7b9ca5 100644 --- a/src/libs/vpropertyexplorer/plugins/venumproperty.h +++ b/src/libs/vpropertyexplorer/plugins/venumproperty.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include "../vproperty.h" diff --git a/src/libs/vpropertyexplorer/plugins/vfileproperty.h b/src/libs/vpropertyexplorer/plugins/vfileproperty.h index b80497bdc..12dcef011 100644 --- a/src/libs/vpropertyexplorer/plugins/vfileproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vfileproperty.h @@ -21,7 +21,6 @@ #ifndef VFILEPROPERTY_H #define VFILEPROPERTY_H - #include #include #include @@ -29,7 +28,6 @@ #include #include #include -#include #include #include "../vproperty.h" @@ -45,6 +43,7 @@ QT_WARNING_DISABLE_GCC("-Wsuggest-final-methods") class VPROPERTYEXPLORERSHARED_EXPORT VFileProperty : public VProperty { Q_OBJECT // NOLINT + public: explicit VFileProperty(const QString &name); @@ -52,13 +51,13 @@ public: virtual ~VFileProperty() override; //! Sets the file filters. The file filters have to be like the ones passed a QFileOpenDialog. - virtual void setFileFilters(const QString& filefilters); + virtual void setFileFilters(const QString &filefilters); //! Returns the current file filters as a string virtual auto getFileFilters() const -> QString; //! Set file - virtual void setFile(const QString& file); + virtual void setFile(const QString &file); //! Get file virtual auto getFile() const -> QString; @@ -83,7 +82,7 @@ public: //! Sets the settings. Available settings: //! //! key: "FileFilters" - value: File filters in the same format the QFileDialog expects it - virtual void setSetting(const QString& key, const QVariant& value) override; + virtual void setSetting(const QString &key, const QVariant &value) override; //! Get the settings. This function has to be implemented in a subclass in order to have an effect virtual auto getSetting(const QString &key) const -> QVariant override; @@ -114,6 +113,6 @@ private: QT_WARNING_POP -} +} // namespace VPE #endif // VFILEPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp b/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp index f2be7b5a6..86556ef57 100644 --- a/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp +++ b/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) #include @@ -44,8 +43,13 @@ #endif VPE::VFileEditWidget::VFileEditWidget(QWidget *parent, bool is_directory) - : QWidget(parent), CurrentFilePath(), ToolButton(nullptr), FileLineEdit(nullptr), FileDialogFilter(), FilterList(), - Directory(is_directory) + : QWidget(parent), + CurrentFilePath(), + ToolButton(nullptr), + FileLineEdit(nullptr), + FileDialogFilter(), + FilterList(), + Directory(is_directory) { // Create the tool button,ToolButton = new QToolButton(this); ToolButton = new QToolButton(this); @@ -53,7 +57,7 @@ VPE::VFileEditWidget::VFileEditWidget(QWidget *parent, bool is_directory) ToolButton->setText("..."); ToolButton->setFixedWidth(20); ToolButton->installEventFilter(this); - setFocusProxy(ToolButton); // Make the ToolButton the focus proxy + setFocusProxy(ToolButton); // Make the ToolButton the focus proxy setFocusPolicy(ToolButton->focusPolicy()); connect(ToolButton, &QToolButton::clicked, this, &VFileEditWidget::onToolButtonClicked); @@ -64,7 +68,7 @@ VPE::VFileEditWidget::VFileEditWidget(QWidget *parent, bool is_directory) FileLineEdit->installEventFilter(this); // The layout (a horizontal layout) - QHBoxLayout* layout = new QHBoxLayout(this); + QHBoxLayout *layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(FileLineEdit); @@ -74,13 +78,11 @@ VPE::VFileEditWidget::VFileEditWidget(QWidget *parent, bool is_directory) setAcceptDrops(true); } - VPE::VFileEditWidget::~VFileEditWidget() { // nothing needs to be done here } - void VPE::VFileEditWidget::setFile(const QString &value, bool emit_signal) { if (CurrentFilePath != value) @@ -96,8 +98,7 @@ void VPE::VFileEditWidget::setFile(const QString &value, bool emit_signal) } } - -void VPE::VFileEditWidget::setFilter(const QString &dialog_filter, const QStringList& filter_list) +void VPE::VFileEditWidget::setFilter(const QString &dialog_filter, const QStringList &filter_list) { FileDialogFilter = dialog_filter; FilterList = filter_list; @@ -113,21 +114,21 @@ auto VPE::VFileEditWidget::getFile() const -> QString return CurrentFilePath; } - void VPE::VFileEditWidget::onToolButtonClicked() { - QString filepath = (Directory ? QFileDialog::getExistingDirectory(nullptr, tr("Directory"), CurrentFilePath, - QFileDialog::ShowDirsOnly + QString filepath = + (Directory ? QFileDialog::getExistingDirectory(nullptr, tr("Directory"), CurrentFilePath, + QFileDialog::ShowDirsOnly #ifdef Q_OS_LINUX - | QFileDialog::DontUseNativeDialog + | QFileDialog::DontUseNativeDialog #endif - ) - : QFileDialog::getOpenFileName(nullptr, tr("Open File"), CurrentFilePath, - FileDialogFilter, nullptr + ) + : QFileDialog::getOpenFileName(nullptr, tr("Open File"), CurrentFilePath, FileDialogFilter, nullptr #ifdef Q_OS_LINUX - , QFileDialog::DontUseNativeDialog + , + QFileDialog::DontUseNativeDialog #endif - )); + )); if (filepath.isNull() == false) { setFile(filepath, true); @@ -141,11 +142,11 @@ auto VPE::VFileEditWidget::eventFilter(QObject *obj, QEvent *ev) -> bool ev->ignore(); if (ev->type() == QEvent::DragEnter) { - dragEnterEvent(static_cast(ev)); + dragEnterEvent(static_cast(ev)); } else if (ev->type() == QEvent::Drop) { - dropEvent(static_cast(ev)); + dropEvent(static_cast(ev)); } if (ev->isAccepted()) @@ -178,8 +179,7 @@ auto VPE::VFileEditWidget::isDirectory() -> bool return Directory; } - -void VPE::VFileEditWidget::dragEnterEvent(QDragEnterEvent* event) +void VPE::VFileEditWidget::dragEnterEvent(QDragEnterEvent *event) { QString tmpFileName; if (checkMimeData(event->mimeData(), tmpFileName)) @@ -190,18 +190,18 @@ void VPE::VFileEditWidget::dragEnterEvent(QDragEnterEvent* event) } // cppcheck-suppress unusedFunction -void VPE::VFileEditWidget::dragMoveEvent(QDragMoveEvent* event) +void VPE::VFileEditWidget::dragMoveEvent(QDragMoveEvent *event) { event->acceptProposedAction(); } // cppcheck-suppress unusedFunction -void VPE::VFileEditWidget::dragLeaveEvent(QDragLeaveEvent* event) +void VPE::VFileEditWidget::dragLeaveEvent(QDragLeaveEvent *event) { event->accept(); } -void VPE::VFileEditWidget::dropEvent(QDropEvent* event) +void VPE::VFileEditWidget::dropEvent(QDropEvent *event) { QString tmpFileName; if (checkMimeData(event->mimeData(), tmpFileName)) @@ -214,8 +214,7 @@ void VPE::VFileEditWidget::dropEvent(QDropEvent* event) } } - -auto VPE::VFileEditWidget::checkMimeData(const QMimeData* data, QString& file) const -> bool +auto VPE::VFileEditWidget::checkMimeData(const QMimeData *data, QString &file) const -> bool { if (data->hasUrls()) { @@ -223,7 +222,7 @@ auto VPE::VFileEditWidget::checkMimeData(const QMimeData* data, QString& file) c QFileInfo tmpFileInfo; auto tmpUrl = std::find_if(tmpUrlList.cbegin(), tmpUrlList.cend(), - [](const QUrl &tmpUrl){return QFile::exists(tmpUrl.toLocalFile());}); + [](const QUrl &tmpUrl) { return QFile::exists(tmpUrl.toLocalFile()); }); if (tmpUrl != tmpUrlList.cend()) { @@ -254,16 +253,17 @@ auto VPE::VFileEditWidget::checkFileFilter(const QString &file) const -> bool return false; } - return std::any_of(FilterList.begin(), FilterList.end(), [file](const QString &tmpFilter) - { + return std::any_of(FilterList.begin(), FilterList.end(), + [file](const QString &tmpFilter) + { #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) - const QString wildcardFilter = QRegularExpression::wildcardToRegularExpression(tmpFilter); - QRegularExpression tmpRegExpFilter(QRegularExpression::anchoredPattern(wildcardFilter), - QRegularExpression::CaseInsensitiveOption); - return tmpRegExpFilter.match(file).hasMatch(); + const QString wildcardFilter = QRegularExpression::wildcardToRegularExpression(tmpFilter); + QRegularExpression tmpRegExpFilter(QRegularExpression::anchoredPattern(wildcardFilter), + QRegularExpression::CaseInsensitiveOption); + return tmpRegExpFilter.match(file).hasMatch(); #else QRegExp tmpRegExpFilter(tmpFilter, Qt::CaseInsensitive, QRegExp::Wildcard); return tmpRegExpFilter.exactMatch(file); #endif - }); + }); } diff --git a/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.cpp b/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.cpp index 90bf9711f..550752c46 100644 --- a/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.cpp +++ b/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -40,13 +41,14 @@ #include "../vproperty_p.h" VPE::VLineColorProperty::VLineColorProperty(const QString &name) - : VProperty(name, + : VProperty(name, #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - QMetaType::Int), + QMetaType::Int), #else - QVariant::Int), + QVariant::Int), #endif - colors(), indexList() + colors(), + indexList() { VProperty::d_ptr->VariantValue = 0; #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) @@ -60,7 +62,7 @@ auto VPE::VLineColorProperty::data(int column, int role) const -> QVariant { if (colors.empty()) { - return QVariant(); + return {}; } int tmpIndex = VProperty::d_ptr->VariantValue.toInt(); @@ -78,10 +80,8 @@ auto VPE::VLineColorProperty::data(int column, int role) const -> QVariant { return tmpIndex; } - else - { - return VProperty::data(column, role); - } + + return VProperty::data(column, role); } auto VPE::VLineColorProperty::createEditor(QWidget *parent, const QStyleOptionViewItem &options, @@ -89,19 +89,26 @@ auto VPE::VLineColorProperty::createEditor(QWidget *parent, const QStyleOptionVi { Q_UNUSED(options) Q_UNUSED(delegate) - QComboBox* tmpEditor = new QComboBox(parent); + auto *tmpEditor = new QComboBox(parent); + tmpEditor->setPalette(parent->palette()); int size = tmpEditor->iconSize().height(); // On Mac pixmap should be little bit smaller. #if defined(Q_OS_MAC) size -= 2; // Two pixels should be enough. -#endif //defined(Q_OS_MAC) +#endif // defined(Q_OS_MAC) QMap::const_iterator i = colors.constBegin(); while (i != colors.constEnd()) { QPixmap pix(size, size); pix.fill(QColor(i.key())); + + // Draw a white border around the icon + QPainter painter(&pix); + painter.setPen(tmpEditor->palette().color(QPalette::Text)); + painter.drawRect(0, 0, size - 1, size - 1); + tmpEditor->addItem(QIcon(pix), i.value(), QVariant(i.key())); ++i; } @@ -117,13 +124,13 @@ auto VPE::VLineColorProperty::createEditor(QWidget *parent, const QStyleOptionVi auto VPE::VLineColorProperty::getEditorData(const QWidget *editor) const -> QVariant { - const QComboBox* tmpEditor = qobject_cast(editor); + const auto *tmpEditor = qobject_cast(editor); if (tmpEditor) { return tmpEditor->currentIndex(); } - return QVariant(0); + return {0}; } void VPE::VLineColorProperty::setColors(const QMap &colors) @@ -191,6 +198,6 @@ auto VPE::VLineColorProperty::IndexOfColor(const QMap &colors, void VPE::VLineColorProperty::currentIndexChanged(int index) { Q_UNUSED(index) - UserChangeEvent *event = new UserChangeEvent(); - QCoreApplication::postEvent ( VProperty::d_ptr->editor, event ); + auto *event = new UserChangeEvent(); + QCoreApplication::postEvent(VProperty::d_ptr->editor, event); } diff --git a/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.h b/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.h index f7136a9f0..0e5981320 100644 --- a/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vlinecolorproperty.h @@ -29,7 +29,6 @@ #ifndef VLINECOLORPROPERTY_H #define VLINECOLORPROPERTY_H - #include #include #include @@ -37,7 +36,6 @@ #include #include #include -#include #include #include "../vproperty.h" @@ -49,12 +47,13 @@ namespace VPE class VPROPERTYEXPLORERSHARED_EXPORT VLineColorProperty : public VProperty { Q_OBJECT // NOLINT + public: //! Constructor - explicit VLineColorProperty(const QString& name); + explicit VLineColorProperty(const QString &name); //! Destructor - virtual ~VLineColorProperty() override {} + ~VLineColorProperty() override {} //! Get the data how it should be displayed virtual auto data(int column = DPC_Name, int role = Qt::DisplayRole) const -> QVariant override; @@ -77,7 +76,7 @@ public: virtual auto getColors() const -> QMap; //! Sets the value of the property - virtual void setValue(const QVariant& value) override; + virtual void setValue(const QVariant &value) override; //! Returns a string containing the type of the property virtual auto type() const -> QString override; @@ -100,11 +99,12 @@ protected: QMap colors; QVector indexList; // No use of d-pointer in this case, because it is unlikely this will change. If it does, we can still add other - //members by reimplementing the VPropertyPrivate class without touching this header file. + // members by reimplementing the VPropertyPrivate class without touching this header file. + private: Q_DISABLE_COPY_MOVE(VLineColorProperty) // NOLINT }; -} +} // namespace VPE #endif // VLINECOLORPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.cpp b/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.cpp index c5a476d16..d5cd793ad 100644 --- a/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.cpp +++ b/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.cpp @@ -37,13 +37,14 @@ #include "../vproperty_p.h" VPE::VLineTypeProperty::VLineTypeProperty(const QString &name) - : VProperty(name, + : VProperty(name, #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - QMetaType::Int), + QMetaType::Int), #else - QVariant::Int), + QVariant::Int), #endif - styles(), indexList() + styles(), + indexList() { VProperty::d_ptr->VariantValue = 0; #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) @@ -57,7 +58,7 @@ auto VPE::VLineTypeProperty::data(int column, int role) const -> QVariant { if (styles.empty()) { - return QVariant(); + return {}; } int tmpIndex = VProperty::d_ptr->VariantValue.toInt(); @@ -71,14 +72,12 @@ auto VPE::VLineTypeProperty::data(int column, int role) const -> QVariant { return indexList.at(tmpIndex); } + if (column == DPC_Data && Qt::EditRole == role) { return tmpIndex; } - else - { - return VProperty::data(column, role); - } + return VProperty::data(column, role); } auto VPE::VLineTypeProperty::createEditor(QWidget *parent, const QStyleOptionViewItem &options, @@ -86,7 +85,7 @@ auto VPE::VLineTypeProperty::createEditor(QWidget *parent, const QStyleOptionVie { Q_UNUSED(options) Q_UNUSED(delegate) - QComboBox* tmpEditor = new QComboBox(parent); + auto *tmpEditor = new QComboBox(parent); tmpEditor->clear(); tmpEditor->setLocale(parent->locale()); tmpEditor->setIconSize(QSize(80, 14)); @@ -110,13 +109,13 @@ auto VPE::VLineTypeProperty::createEditor(QWidget *parent, const QStyleOptionVie auto VPE::VLineTypeProperty::getEditorData(const QWidget *editor) const -> QVariant { - const QComboBox* tmpEditor = qobject_cast(editor); + const auto *tmpEditor = qobject_cast(editor); if (tmpEditor) { return tmpEditor->currentIndex(); } - return QVariant(0); + return {0}; } void VPE::VLineTypeProperty::setStyles(const QMap &styles) @@ -184,6 +183,6 @@ auto VPE::VLineTypeProperty::IndexOfStyle(const QMap &styles, co void VPE::VLineTypeProperty::currentIndexChanged(int index) { Q_UNUSED(index) - UserChangeEvent *event = new UserChangeEvent(); - QCoreApplication::postEvent ( VProperty::d_ptr->editor, event ); + auto *event = new UserChangeEvent(); + QCoreApplication::postEvent(VProperty::d_ptr->editor, event); } diff --git a/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.h b/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.h index 1472e402a..9272eb7ba 100644 --- a/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vlinetypeproperty.h @@ -29,7 +29,6 @@ #ifndef VLINETYPEPROPERTY_H #define VLINETYPEPROPERTY_H - #include #include #include @@ -38,7 +37,6 @@ #include #include #include -#include #include #include "../vproperty.h" @@ -50,26 +48,27 @@ namespace VPE class VPROPERTYEXPLORERSHARED_EXPORT VLineTypeProperty : public VProperty { Q_OBJECT // NOLINT + public: //! Constructor - explicit VLineTypeProperty(const QString& name); + explicit VLineTypeProperty(const QString &name); //! Destructor - virtual ~VLineTypeProperty() override {} + ~VLineTypeProperty() override = default; //! Get the data how it should be displayed - virtual auto data(int column = DPC_Name, int role = Qt::DisplayRole) const -> QVariant override; + auto data(int column = DPC_Name, int role = Qt::DisplayRole) const -> QVariant override; //! Returns an editor widget, or NULL if it doesn't supply one //! \param parent The widget to which the editor will be added as a child //! \options Render options //! \delegate A pointer to the QAbstractItemDelegate requesting the editor. This can be used to connect signals and //! slots. - virtual auto createEditor(QWidget *parent, const QStyleOptionViewItem &options, - const QAbstractItemDelegate *delegate) -> QWidget * override; + auto createEditor(QWidget *parent, const QStyleOptionViewItem &options, const QAbstractItemDelegate *delegate) + -> QWidget * override; //! Gets the data from the widget - virtual auto getEditorData(const QWidget *editor) const -> QVariant override; + auto getEditorData(const QWidget *editor) const -> QVariant override; //! Sets the line styles virtual void setStyles(const QMap &styles); @@ -78,17 +77,17 @@ public: virtual auto getStyles() const -> QMap; //! Sets the value of the property - virtual void setValue(const QVariant& value) override; + void setValue(const QVariant &value) override; //! Returns a string containing the type of the property - virtual auto type() const -> QString override; + auto type() const -> QString override; //! Clones this property //! \param include_children Indicates whether to also clone the children //! \param container If a property is being passed here, no new VProperty is being created but instead it is tried //! to fill all the data into container. This can also be used when subclassing this function. //! \return Returns the newly created property (or container, if it was not NULL) - Q_REQUIRED_RESULT virtual auto clone(bool include_children = true, VProperty *container = nullptr) const + Q_REQUIRED_RESULT auto clone(bool include_children = true, VProperty *container = nullptr) const -> VProperty * override; static auto IndexOfStyle(const QMap &styles, const QString &style) -> vpesizetype; @@ -101,11 +100,12 @@ protected: QMap styles; QVector indexList; // No use of d-pointer in this case, because it is unlikely this will change. If it does, we can still add other - //members by reimplementing the VPropertyPrivate class without touching this header file. + // members by reimplementing the VPropertyPrivate class without touching this header file. + private: Q_DISABLE_COPY_MOVE(VLineTypeProperty) // NOLINT }; -} +} // namespace VPE #endif // VLINETYPEPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vobjectproperty.h b/src/libs/vpropertyexplorer/plugins/vobjectproperty.h index 838e234e4..0bd07046e 100644 --- a/src/libs/vpropertyexplorer/plugins/vobjectproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vobjectproperty.h @@ -21,7 +21,6 @@ #ifndef VOBJECTPROPERTY_H #define VOBJECTPROPERTY_H - #include #include #include @@ -29,7 +28,6 @@ #include #include #include -#include #include #include "../vproperty.h" @@ -43,9 +41,10 @@ namespace VPE class VPROPERTYEXPLORERSHARED_EXPORT VObjectProperty : public VProperty { Q_OBJECT // NOLINT + public: //! Constructor - explicit VObjectProperty(const QString& name); + explicit VObjectProperty(const QString &name); //! Destructor virtual ~VObjectProperty() override {} @@ -74,7 +73,7 @@ public: virtual auto getObjects() const -> QMap; //! Sets the value of the property - virtual void setValue(const QVariant& value) override; + virtual void setValue(const QVariant &value) override; //! Returns a string containing the type of the property virtual auto type() const -> QString override; @@ -94,14 +93,14 @@ protected: //! The list of possible objects QMap objects; - void FillList(QComboBox *box, const QMap &list)const; + void FillList(QComboBox *box, const QMap &list) const; // No use of d-pointer in this case, because it is unlikely this will change. If it does, we can still add other - //members by reimplementing the VPropertyPrivate class without touching this header file. + // members by reimplementing the VPropertyPrivate class without touching this header file. private: Q_DISABLE_COPY_MOVE(VObjectProperty) // NOLINT }; -} +} // namespace VPE #endif // VOBJECTPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vpointfproperty.h b/src/libs/vpropertyexplorer/plugins/vpointfproperty.h index 152d829a9..4158eed1c 100644 --- a/src/libs/vpropertyexplorer/plugins/vpointfproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vpointfproperty.h @@ -21,13 +21,11 @@ #ifndef VPOINTFPROPERTY_H #define VPOINTFPROPERTY_H - #include #include #include #include #include -#include #include #include "../vproperty.h" @@ -39,8 +37,9 @@ namespace VPE class VPROPERTYEXPLORERSHARED_EXPORT VPointFProperty : public VProperty { Q_OBJECT // NOLINT + public: - explicit VPointFProperty(const QString& name); + explicit VPointFProperty(const QString &name); virtual ~VPointFProperty() override {} @@ -54,7 +53,7 @@ public: virtual auto getPointF() const -> QPointF; //! Sets the QPointF - virtual void setPointF(const QPointF& point); + virtual void setPointF(const QPointF &point); //! Sets the QPointF virtual void setPointF(qreal x, qreal y); @@ -71,7 +70,7 @@ public: -> VProperty * override; //! Sets the value of the property - virtual void setValue(const QVariant& value) override; + virtual void setValue(const QVariant &value) override; //! Returns the value of the property as a QVariant virtual auto getValue() const -> QVariant override; @@ -80,6 +79,6 @@ private: Q_DISABLE_COPY_MOVE(VPointFProperty) // NOLINT }; -} +} // namespace VPE #endif // VPOINTFPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vshortcutproperty.h b/src/libs/vpropertyexplorer/plugins/vshortcutproperty.h index ab1259ad4..b64b45217 100644 --- a/src/libs/vpropertyexplorer/plugins/vshortcutproperty.h +++ b/src/libs/vpropertyexplorer/plugins/vshortcutproperty.h @@ -21,13 +21,11 @@ #ifndef VSHORTCUTROPERTY_H #define VSHORTCUTROPERTY_H - #include #include #include #include #include -#include #include #include "../vproperty.h" @@ -43,6 +41,7 @@ QT_WARNING_DISABLE_GCC("-Wsuggest-final-types") class VPROPERTYEXPLORERSHARED_EXPORT VShortcutProperty : public VProperty { Q_OBJECT // NOLINT + public: explicit VShortcutProperty(const QString &name); @@ -78,7 +77,7 @@ public: -> VProperty * override; //! Sets the value of the property - virtual void setValue(const QVariant& value) override; + virtual void setValue(const QVariant &value) override; private: Q_DISABLE_COPY_MOVE(VShortcutProperty) // NOLINT @@ -86,6 +85,6 @@ private: QT_WARNING_POP -} +} // namespace VPE #endif // VFILEPROPERTY_H diff --git a/src/libs/vpropertyexplorer/plugins/vshortcutpropertyeditor.cpp b/src/libs/vpropertyexplorer/plugins/vshortcutpropertyeditor.cpp index 279b1307e..d59ba21eb 100644 --- a/src/libs/vpropertyexplorer/plugins/vshortcutpropertyeditor.cpp +++ b/src/libs/vpropertyexplorer/plugins/vshortcutpropertyeditor.cpp @@ -25,10 +25,11 @@ #include #include #include -#include VPE::VShortcutEditWidget::VShortcutEditWidget(QWidget *parent) - : QWidget(parent), CurrentKeySequence(), LineEdit(nullptr) + : QWidget(parent), + CurrentKeySequence(), + LineEdit(nullptr) { // Create the line edit widget LineEdit = new QLineEdit(this); @@ -39,13 +40,12 @@ VPE::VShortcutEditWidget::VShortcutEditWidget(QWidget *parent) connect(LineEdit, &QLineEdit::textEdited, this, &VShortcutEditWidget::onTextEdited); // The layout (a horizontal layout) - QHBoxLayout* layout = new QHBoxLayout(this); + QHBoxLayout *layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(LineEdit); } - VPE::VShortcutEditWidget::~VShortcutEditWidget() { // nothing needs to be done here @@ -57,15 +57,12 @@ auto VPE::VShortcutEditWidget::eventFilter(QObject *obj, QEvent *event) -> bool { if (event->type() == QEvent::KeyPress) { - QKeyEvent *keyEvent = static_cast(event); + QKeyEvent *keyEvent = static_cast(event); int keys = keyEvent->key(); - if (keys != Qt::Key_Shift && - keys != Qt::Key_Control && - keys != Qt::Key_Meta && - keys != Qt::Key_AltGr && - keys != Qt::Key_Alt) + if (keys != Qt::Key_Shift && keys != Qt::Key_Control && keys != Qt::Key_Meta && keys != Qt::Key_AltGr && + keys != Qt::Key_Alt) { keys += keyEvent->modifiers(); setShortcut(QKeySequence(keys), true); diff --git a/src/libs/vpropertyexplorer/vproperty.h b/src/libs/vpropertyexplorer/vproperty.h index e4067d73e..9e2a2f498 100644 --- a/src/libs/vpropertyexplorer/vproperty.h +++ b/src/libs/vpropertyexplorer/vproperty.h @@ -64,7 +64,7 @@ public: : QEvent(static_cast(MyCustomEventType)) { } - virtual ~UserChangeEvent() override; + ~UserChangeEvent() override; }; class VPropertyPrivate; diff --git a/src/libs/vpropertyexplorer/vpropertyformview.cpp b/src/libs/vpropertyexplorer/vpropertyformview.cpp index f72d5b87c..a5c648b62 100644 --- a/src/libs/vpropertyexplorer/vpropertyformview.cpp +++ b/src/libs/vpropertyexplorer/vpropertyformview.cpp @@ -21,27 +21,26 @@ #include "vpropertyformview.h" #include -#include #include "vpropertyformview_p.h" #include "vpropertyformwidget_p.h" #include "vpropertymodel.h" #include "vpropertyset.h" -VPE::VPropertyFormView::VPropertyFormView(QWidget* parent) - : VPropertyFormWidget(new VPropertyFormViewPrivate(), parent) +VPE::VPropertyFormView::VPropertyFormView(QWidget *parent) + : VPropertyFormWidget(new VPropertyFormViewPrivate(), parent) { // } -VPE::VPropertyFormView::VPropertyFormView(VPropertyModel* model, QWidget *parent) - : VPropertyFormWidget(new VPropertyFormViewPrivate(), parent) +VPE::VPropertyFormView::VPropertyFormView(VPropertyModel *model, QWidget *parent) + : VPropertyFormWidget(new VPropertyFormViewPrivate(), parent) { setModel(model); } -VPE::VPropertyFormView::VPropertyFormView(VPropertySet* property_set, QWidget *parent) - : VPropertyFormWidget(new VPropertyFormViewPrivate(), parent) +VPE::VPropertyFormView::VPropertyFormView(VPropertySet *property_set, QWidget *parent) + : VPropertyFormWidget(new VPropertyFormViewPrivate(), parent) { setPropertySet(property_set); } @@ -65,7 +64,7 @@ void VPE::VPropertyFormView::setModel(VPropertyModel *model) removeModelAndSet(); // Set model - static_cast(d_ptr)->Model = model; + static_cast(d_ptr)->Model = model; if (model) { // Set the property list @@ -85,13 +84,13 @@ void VPE::VPropertyFormView::setModel(VPropertyModel *model) updatePropertyList(); } -void VPE::VPropertyFormView::setPropertySet(VPropertySet* property_set) +void VPE::VPropertyFormView::setPropertySet(VPropertySet *property_set) { // Remove old model or set removeModelAndSet(); // Set property set - static_cast(d_ptr)->PropertySet = property_set; + static_cast(d_ptr)->PropertySet = property_set; if (property_set) { // Set the property list @@ -137,40 +136,40 @@ void VPE::VPropertyFormView::dataChanged(const QModelIndex &top_left, const QMod Q_UNUSED(bottom_right) // Ucomment when handle data changes -// if (static_cast(d_ptr)->IgnoreDataChangedSignal) -// { -// return; -// } + // if (static_cast(d_ptr)->IgnoreDataChangedSignal) + // { + // return; + // } // todo: handle data changes } void VPE::VPropertyFormView::dataSubmitted(VProperty *property) { - VPropertyModel* tmpModel = static_cast(d_ptr)->Model; + VPropertyModel *tmpModel = static_cast(d_ptr)->Model; if (tmpModel && d_ptr->UpdateEditors) { - static_cast(d_ptr)->IgnoreDataChangedSignal = true; + static_cast(d_ptr)->IgnoreDataChangedSignal = true; tmpModel->onDataChangedByModel(property); - static_cast(d_ptr)->IgnoreDataChangedSignal = false; + static_cast(d_ptr)->IgnoreDataChangedSignal = false; } } void VPE::VPropertyFormView::showEvent(QShowEvent *event) { Q_UNUSED(event) - if (static_cast(d_ptr)->NeedsRebuild) + if (static_cast(d_ptr)->NeedsRebuild) { build(); } - static_cast(d_ptr)->NeedsRebuild = false; + static_cast(d_ptr)->NeedsRebuild = false; } void VPE::VPropertyFormView::updatePropertyList() { - VPropertyModel* tmpModel = static_cast(d_ptr)->Model; - VPropertySet* tmpSet = static_cast(d_ptr)->PropertySet; + VPropertyModel *tmpModel = static_cast(d_ptr)->Model; + VPropertySet *tmpSet = static_cast(d_ptr)->PropertySet; if (tmpModel && tmpModel->getPropertySet()) { @@ -188,20 +187,20 @@ void VPE::VPropertyFormView::updatePropertyList() build(); } else - static_cast(d_ptr)->NeedsRebuild = true; + static_cast(d_ptr)->NeedsRebuild = true; } void VPE::VPropertyFormView::removeModelAndSet() { - if (static_cast(d_ptr)->Model) + if (static_cast(d_ptr)->Model) { - disconnect(static_cast(d_ptr)->Model, nullptr, this, nullptr); - static_cast(d_ptr)->Model = nullptr; + disconnect(static_cast(d_ptr)->Model, nullptr, this, nullptr); + static_cast(d_ptr)->Model = nullptr; } - static_cast(d_ptr)->NeedsRebuild = true; + static_cast(d_ptr)->NeedsRebuild = true; d_ptr->Properties.clear(); - static_cast(d_ptr)->PropertySet = nullptr; + static_cast(d_ptr)->PropertySet = nullptr; } void VPE::VPropertyFormView::connectPropertyFormWidget(VPropertyFormWidget *widget) @@ -213,7 +212,7 @@ void VPE::VPropertyFormView::connectPropertyFormWidget(VPropertyFormWidget *widg connect(widget, &VPropertyFormWidget::propertyDataSubmitted, this, &VPropertyFormView::dataSubmitted, Qt::UniqueConnection); - const QList tmpList = widget->getChildPropertyFormWidgets(); + const QList tmpList = widget->getChildPropertyFormWidgets(); for (auto *tmpEditorWidget : tmpList) { diff --git a/src/libs/vpropertyexplorer/vpropertyformview.h b/src/libs/vpropertyexplorer/vpropertyformview.h index 659e58059..9424dc5b1 100644 --- a/src/libs/vpropertyexplorer/vpropertyformview.h +++ b/src/libs/vpropertyexplorer/vpropertyformview.h @@ -21,7 +21,6 @@ #ifndef VPROPERTYFORMVIEW_H #define VPROPERTYFORMVIEW_H - #include #include #include @@ -44,55 +43,54 @@ QT_WARNING_DISABLE_GCC("-Wsuggest-final-methods") class VPROPERTYEXPLORERSHARED_EXPORT VPropertyFormView : public VPropertyFormWidget { Q_OBJECT // NOLINT + public: //! Constructor explicit VPropertyFormView(QWidget *parent = nullptr); //! Constructor - explicit VPropertyFormView(VPropertyModel* model, QWidget *parent = nullptr); + explicit VPropertyFormView(VPropertyModel *model, QWidget *parent = nullptr); //! Constructor - explicit VPropertyFormView(VPropertySet* property_set, QWidget *parent = nullptr); + explicit VPropertyFormView(VPropertySet *property_set, QWidget *parent = nullptr); //! Destructor virtual ~VPropertyFormView() override; - public slots: //! Rebuilds the whole form virtual void build() override; //! Set the source model. Leads to the rebuild of the form //! \param model The model to use - void setModel(VPropertyModel* model); + void setModel(VPropertyModel *model); //! Set the property set to use. Note that if using a property set directly, adding and removing properties to the //! property set leads to undifined behaviour for the property set misses notification signals. //! \param property_set The property set to use - void setPropertySet(VPropertySet* property_set); + void setPropertySet(VPropertySet *property_set); //! Called when a row gets removed in the model - void rowsRemoved(const QModelIndex& parent, int start, int end); + void rowsRemoved(const QModelIndex &parent, int start, int end); //! Called when a new row is being inserted into the model - void rowsInserted(const QModelIndex& parent, int start, int end); + void rowsInserted(const QModelIndex &parent, int start, int end); //! Called when the model is being reset void modelReset(); - private slots: //! Called, when the model gets destroyed void modelDestroyed(); //! Called when data in the model gets changed - void dataChanged(const QModelIndex& top_left, const QModelIndex& bottom_right); + void dataChanged(const QModelIndex &top_left, const QModelIndex &bottom_right); //! Updates the model when data was submitted by the view - void dataSubmitted(VProperty* property); + void dataSubmitted(VProperty *property); protected: - virtual void showEvent(QShowEvent* event) override; + void showEvent(QShowEvent *event) override; //! Rebuilds the widegt only if it is visible void updatePropertyList(); @@ -101,7 +99,7 @@ protected: void removeModelAndSet(); //! Function to handle newly created VPropertyWidgets - virtual void connectPropertyFormWidget(VPropertyFormWidget* widget); + virtual void connectPropertyFormWidget(VPropertyFormWidget *widget); private: Q_DISABLE_COPY_MOVE(VPropertyFormView) // NOLINT @@ -109,6 +107,6 @@ private: QT_WARNING_POP -} // Namespace VPE +} // Namespace VPE #endif // VPROPERTYFORMVIEW_H diff --git a/src/libs/vpropertyexplorer/vpropertyformwidget.cpp b/src/libs/vpropertyexplorer/vpropertyformwidget.cpp index 61f309da0..863b04afd 100644 --- a/src/libs/vpropertyexplorer/vpropertyformwidget.cpp +++ b/src/libs/vpropertyexplorer/vpropertyformwidget.cpp @@ -30,15 +30,15 @@ #include #include #include -#include #include "plugins/vwidgetproperty.h" #include "vproperty.h" #include "vpropertyformwidget_p.h" VPE::VPropertyFormWidget::VPropertyFormWidget(const QString &title, const QString &description, - const QList& properties, QWidget *parent) - : QGroupBox(title, parent), d_ptr(new VPropertyFormWidgetPrivate(properties)) + const QList &properties, QWidget *parent) + : QGroupBox(title, parent), + d_ptr(new VPropertyFormWidgetPrivate(properties)) { VPE::VPropertyFormWidget::build(); setToolTip(description); @@ -46,7 +46,8 @@ VPE::VPropertyFormWidget::VPropertyFormWidget(const QString &title, const QStrin } VPE::VPropertyFormWidget::VPropertyFormWidget(VProperty *parent_property, QWidget *parent) - : QGroupBox(parent), d_ptr(new VPropertyFormWidgetPrivate()) + : QGroupBox(parent), + d_ptr(new VPropertyFormWidgetPrivate()) { if (parent_property) { @@ -60,7 +61,8 @@ VPE::VPropertyFormWidget::VPropertyFormWidget(VProperty *parent_property, QWidge VPE::VPropertyFormWidget::VPropertyFormWidget(VPropertyFormWidgetPrivate *d_pointer, QWidget *parent, const QString &title, const QString &description) - : QGroupBox(title, parent), d_ptr(d_pointer) + : QGroupBox(title, parent), + d_ptr(d_pointer) { VPE::VPropertyFormWidget::build(); setToolTip(description); @@ -72,7 +74,6 @@ VPE::VPropertyFormWidget::~VPropertyFormWidget() delete d_ptr; } - void VPE::VPropertyFormWidget::build() { // Clear the old content, delete old widgets @@ -97,14 +98,14 @@ void VPE::VPropertyFormWidget::build() return; //... only if there are properties } - QFormLayout* tmpFormLayout = new QFormLayout(this); + QFormLayout *tmpFormLayout = new QFormLayout(this); tmpFormLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); setLayout(tmpFormLayout); for (int i = 0; i < d_ptr->Properties.count(); ++i) { // Get the current property - VProperty* tmpProperty = d_ptr->Properties.value(i, nullptr); + VProperty *tmpProperty = d_ptr->Properties.value(i, nullptr); if (!tmpProperty) { continue; @@ -118,7 +119,7 @@ void VPE::VPropertyFormWidget::build() QWidget *group = new QWidget(this); tmpFormLayout->addRow(group); - QFormLayout* subFormLayout = new QFormLayout(group); + QFormLayout *subFormLayout = new QFormLayout(group); subFormLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); QMargins margins = subFormLayout->contentsMargins(); margins.setTop(0); @@ -127,7 +128,7 @@ void VPE::VPropertyFormWidget::build() subFormLayout->setContentsMargins(margins); group->setLayout(subFormLayout); - QList children = tmpProperty->getChildren(); + QList children = tmpProperty->getChildren(); for (int j = 0; j < children.size(); ++j) { buildEditor(children[j], subFormLayout); @@ -140,7 +141,7 @@ void VPE::VPropertyFormWidget::build() else { // Child properties, the property itself is not being added - VPropertyFormWidget* tmpNewFormWidget = new VPropertyFormWidget(tmpProperty, this); + VPropertyFormWidget *tmpNewFormWidget = new VPropertyFormWidget(tmpProperty, this); tmpFormLayout->addRow(tmpNewFormWidget); d_ptr->EditorWidgets.append(VPropertyFormWidgetPrivate::SEditorWidget(tmpNewFormWidget)); tmpNewFormWidget->setCommitBehaviour(d_ptr->UpdateEditors); @@ -148,7 +149,7 @@ void VPE::VPropertyFormWidget::build() } else if (tmpProperty->type() == "widget") { - VWidgetProperty* tmpWidgetProperty = static_cast(tmpProperty); + VWidgetProperty *tmpWidgetProperty = static_cast(tmpProperty); tmpFormLayout->addRow(tmpWidgetProperty->getWidget()); d_ptr->EditorWidgets.append(VPropertyFormWidgetPrivate::SEditorWidget(tmpWidgetProperty->getWidget())); } @@ -159,11 +160,11 @@ void VPE::VPropertyFormWidget::build() } } -void VPE::VPropertyFormWidget::buildEditor(VProperty* property, QFormLayout* formLayout, Property type) +void VPE::VPropertyFormWidget::buildEditor(VProperty *property, QFormLayout *formLayout, Property type) { // Add property (no child properties) // Create the editor (if it doesn't work, create empty widget) - QWidget* tmpEditor = property->createEditor(this, QStyleOptionViewItem(), nullptr); + QWidget *tmpEditor = property->createEditor(this, QStyleOptionViewItem(), nullptr); if (!tmpEditor) { tmpEditor = new QWidget(this); @@ -182,7 +183,7 @@ void VPE::VPropertyFormWidget::buildEditor(VProperty* property, QFormLayout* for // add new row if (type == Property::Complex) { - QString name = ""+property->getName()+""; + QString name = "" + property->getName() + ""; formLayout->addRow(name, tmpEditor); } else @@ -216,8 +217,8 @@ void VPE::VPropertyFormWidget::commitData(int row) return; } - VPropertyFormWidgetPrivate::SEditorWidget& tmpEditorWidget = d_ptr->EditorWidgets[row]; - VProperty* tmpProperty = d_ptr->Properties[row]; + VPropertyFormWidgetPrivate::SEditorWidget &tmpEditorWidget = d_ptr->EditorWidgets[row]; + VProperty *tmpProperty = d_ptr->Properties[row]; if (tmpEditorWidget.FormWidget) { tmpEditorWidget.FormWidget->commitData(); @@ -250,8 +251,8 @@ void VPE::VPropertyFormWidget::loadData(int row) return; } - VPropertyFormWidgetPrivate::SEditorWidget& tmpEditorWidget = d_ptr->EditorWidgets[row]; - VProperty* tmpProperty = d_ptr->Properties[row]; + VPropertyFormWidgetPrivate::SEditorWidget &tmpEditorWidget = d_ptr->EditorWidgets[row]; + VProperty *tmpProperty = d_ptr->Properties[row]; if (tmpEditorWidget.FormWidget) { tmpEditorWidget.FormWidget->loadData(); @@ -266,7 +267,7 @@ void VPE::VPropertyFormWidget::setCommitBehaviour(bool auto_commit) { d_ptr->UpdateEditors = auto_commit; - const QList tmpChildFormWidgets = getChildPropertyFormWidgets(); + const QList tmpChildFormWidgets = getChildPropertyFormWidgets(); for (auto *tmpChild : tmpChildFormWidgets) { if (tmpChild) @@ -297,7 +298,7 @@ auto VPE::VPropertyFormWidget::eventFilter(QObject *object, QEvent *event) -> bo return false; } - QWidget* editor = qobject_cast(object); + QWidget *editor = qobject_cast(object); if (!editor) { return false; @@ -377,7 +378,7 @@ void VPE::VPropertyFormWidget::commitData(const QWidget *editor) for (int i = 0; i < d_ptr->EditorWidgets.count(); ++i) { - VPropertyFormWidgetPrivate::SEditorWidget& tmpEditorWidget = d_ptr->EditorWidgets[i]; + VPropertyFormWidgetPrivate::SEditorWidget &tmpEditorWidget = d_ptr->EditorWidgets[i]; if (tmpEditorWidget.Editor == editor) { commitData(i); diff --git a/src/libs/vpropertyexplorer/vpropertymodel.h b/src/libs/vpropertyexplorer/vpropertymodel.h index a0f37186f..3d2581a06 100644 --- a/src/libs/vpropertyexplorer/vpropertymodel.h +++ b/src/libs/vpropertyexplorer/vpropertymodel.h @@ -21,7 +21,6 @@ #ifndef VPROPERTYMODEL_H #define VPROPERTYMODEL_H - #include #include #include @@ -29,7 +28,6 @@ #include #include #include -#include #include #include "vproperty.h" @@ -67,8 +65,9 @@ QT_WARNING_DISABLE_GCC("-Wsuggest-final-methods") class VPROPERTYEXPLORERSHARED_EXPORT VPropertyModel : public QAbstractItemModel { Q_OBJECT // NOLINT + public: - explicit VPropertyModel(QObject * parent = nullptr); + explicit VPropertyModel(QObject *parent = nullptr); virtual ~VPropertyModel() override; //! Adds the property to the model and attaches it to the parentid @@ -143,31 +142,31 @@ public: //! \param property_set The new property set. Setting this to NULL has the same effect as calling clear. //! \param emit_signals Default: true. Set this to false if you want to prevent the model from emmiting the reset //! model signals - virtual void setPropertySet(VPropertySet* property_set, bool emit_signals = true); + virtual void setPropertySet(VPropertySet *property_set, bool emit_signals = true); //! Removes a property from the model and returns it virtual auto takeProperty(const QString &id) -> VProperty *; //! Removes a property from the model and deletes it - virtual void removeProperty(const QString& id); + virtual void removeProperty(const QString &id); signals: //! This signal is being emitted, when the setData method is being called - void onDataChangedByEditor(VProperty* property); + void onDataChangedByEditor(VProperty *property); public slots: //! This function causes the views to update the property - void onDataChangedByModel(VProperty* property); + void onDataChangedByModel(VProperty *property); protected: //! Gets a property by its ModelIndex virtual auto getIndexFromProperty(VProperty *property, int column = 0) const -> QModelIndex; //! Protected constructor passing the private object - explicit VPropertyModel(VPropertyModelPrivate* d, QObject* parent = nullptr); + explicit VPropertyModel(VPropertyModelPrivate *d, QObject *parent = nullptr); //! The model data - VPropertyModelPrivate* d_ptr; + VPropertyModelPrivate *d_ptr; private: Q_DISABLE_COPY_MOVE(VPropertyModel) // NOLINT @@ -175,6 +174,6 @@ private: QT_WARNING_POP -} +} // namespace VPE #endif // VPROPERTYMODEL_H diff --git a/src/libs/vtools/dialogs/dialogtoolbox.cpp b/src/libs/vtools/dialogs/dialogtoolbox.cpp index 17e7908e9..6bb40499f 100644 --- a/src/libs/vtools/dialogs/dialogtoolbox.cpp +++ b/src/libs/vtools/dialogs/dialogtoolbox.cpp @@ -42,6 +42,7 @@ #include "../vpatterndb/variables/vcurvelength.h" #include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vpiecenode.h" +#include "qdialogbuttonbox.h" #include #include @@ -50,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -570,7 +572,7 @@ void SetTabStopDistance(QPlainTextEdit *edit, int tabWidthChar) } //--------------------------------------------------------------------------------------------------------------------- -auto LineColor(int size, const QString &color) -> QIcon +auto LineColor(const QColor &borderColor, int size, const QString &color) -> QIcon { // On Mac pixmap should be little bit smaller. #if defined(Q_OS_MAC) @@ -579,7 +581,13 @@ auto LineColor(int size, const QString &color) -> QIcon QPixmap pix(size, size); pix.fill(QColor(color)); - return QIcon(pix); + + // Draw a white border around the icon + QPainter painter(&pix); + painter.setPen(borderColor); + painter.drawRect(0, 0, size - 1, size - 1); + + return {pix}; } //--------------------------------------------------------------------------------------------------------------------- @@ -831,3 +839,26 @@ auto InvalidSegment(QListWidget *listWidget, const VContainer *data, QString &er return false; } + +//--------------------------------------------------------------------------------------------------------------------- +void InitDialogButtonBoxIcons(QDialogButtonBox *buttonBox) +{ + SCASSERT(buttonBox != nullptr) + + QStyle *style = QApplication::style(); + + if (QPushButton *bOk = buttonBox->button(QDialogButtonBox::Ok)) + { + bOk->setIcon(style->standardIcon(QStyle::SP_DialogOkButton)); + } + + if (QPushButton *bApply = buttonBox->button(QDialogButtonBox::Apply)) + { + bApply->setIcon(style->standardIcon(QStyle::SP_DialogApplyButton)); + } + + if (QPushButton *bCancel = buttonBox->button(QDialogButtonBox::Cancel)) + { + bCancel->setIcon(style->standardIcon(QStyle::SP_DialogCancelButton)); + } +} diff --git a/src/libs/vtools/dialogs/dialogtoolbox.h b/src/libs/vtools/dialogs/dialogtoolbox.h index c0a59f366..e63e9b5f6 100644 --- a/src/libs/vtools/dialogs/dialogtoolbox.h +++ b/src/libs/vtools/dialogs/dialogtoolbox.h @@ -28,13 +28,13 @@ #ifndef DIALOGTOOLBOX_H #define DIALOGTOOLBOX_H +#include #include #include -#include -#include "../vpatterndb/variables/vinternalvariable.h" -#include "../vmisc/typedef.h" #include "../vgeometry/vgeometrydef.h" +#include "../vmisc/typedef.h" +#include "../vpatterndb/variables/vinternalvariable.h" class QPlainTextEdit; class QPushButton; @@ -48,6 +48,7 @@ class QLineEdit; class VContainer; class QListWidget; class VPieceNode; +class QDialogButtonBox; constexpr int formulaTimerTimeout = 300; @@ -59,7 +60,7 @@ QT_WARNING_DISABLE_GCC("-Weffc++") struct FormulaData { QString formula; - const QHash > *variables{nullptr}; + const QHash> *variables{nullptr}; QLabel *labelEditFormula{nullptr}; QLabel *labelResult{nullptr}; QString postfix; @@ -70,14 +71,14 @@ struct FormulaData QT_WARNING_POP auto RowNode(QListWidget *listWidget, int i) -> VPieceNode; -void MoveCursorToEnd(QPlainTextEdit *plainTextEdit); -void DeployFormula(QDialog *dialog, QPlainTextEdit *formula, QPushButton *buttonGrowLength, int formulaBaseHeight); +void MoveCursorToEnd(QPlainTextEdit *plainTextEdit); +void DeployFormula(QDialog *dialog, QPlainTextEdit *formula, QPushButton *buttonGrowLength, int formulaBaseHeight); auto FilterObject(QObject *object, QEvent *event) -> bool; auto EvalToolFormula(QDialog *dialog, const FormulaData &data, bool &flag) -> qreal; -void ChangeColor(QWidget *widget, const QColor &color); +void ChangeColor(QWidget *widget, const QColor &color); auto OkColor(QWidget *widget) -> QColor; -void CheckPointLabel(QDialog *dialog, QLineEdit* edit, QLabel *labelEditNamePoint, const QString &pointName, - const VContainer *data, bool &flag); +void CheckPointLabel(QDialog *dialog, QLineEdit *edit, QLabel *labelEditNamePoint, const QString &pointName, + const VContainer *data, bool &flag); auto FindNotExcludedNodeDown(QListWidget *listWidget, int candidate) -> int; auto FindNotExcludedNodeUp(QListWidget *listWidget, int candidate) -> int; auto FindNotExcludedPointDown(QListWidget *listWidget, int start) -> int; @@ -89,10 +90,11 @@ auto EachPointLabelIsUnique(QListWidget *listWidget) -> bool; auto InvalidSegment(QListWidget *listWidget, const VContainer *data, QString &error) -> bool; auto DialogWarningIcon() -> QString; auto NodeFont(QFont font, bool nodeExcluded = false) -> QFont; -void CurrentCurveLength(vidtype curveId, VContainer *data); -void SetTabStopDistance(QPlainTextEdit *edit, int tabWidthChar=4); -auto LineColor(int size, const QString &color) -> QIcon; +void CurrentCurveLength(vidtype curveId, VContainer *data); +void SetTabStopDistance(QPlainTextEdit *edit, int tabWidthChar = 4); +auto LineColor(const QColor &borderColor, int size, const QString &color) -> QIcon; auto SegmentAliases(GOType curveType, const QString &alias1, const QString &alias2) -> QPair; auto GetNodeName(const VContainer *data, const VPieceNode &node, bool showPassmarkDetails = false) -> QString; +void InitDialogButtonBoxIcons(QDialogButtonBox *buttonBox); #endif // DIALOGTOOLBOX_H diff --git a/src/libs/vtools/dialogs/support/dialogeditlabel.ui b/src/libs/vtools/dialogs/support/dialogeditlabel.ui index 94b3d607a..784efd035 100644 --- a/src/libs/vtools/dialogs/support/dialogeditlabel.ui +++ b/src/libs/vtools/dialogs/support/dialogeditlabel.ui @@ -35,7 +35,7 @@ Clear current and begin new label - ... + @@ -68,7 +68,7 @@ Import from label template - ... + @@ -91,7 +91,7 @@ Export label as template - ... + @@ -141,7 +141,7 @@ Move on top - ... + @@ -158,7 +158,7 @@ Move up - ... + @@ -175,7 +175,7 @@ Move down - ... + @@ -192,7 +192,7 @@ Move on bottom - ... + @@ -231,7 +231,7 @@ Bold - ... + @@ -251,7 +251,7 @@ Italic - ... + @@ -271,7 +271,7 @@ Aligns with the left edge - ... + @@ -291,7 +291,7 @@ Centers horizontally in the available space - ... + @@ -311,7 +311,7 @@ Aligns with the right edge - ... + @@ -363,7 +363,7 @@ - ... + @@ -377,7 +377,7 @@ false - ... + diff --git a/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp b/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp index 426173cc7..b55ea48a3 100644 --- a/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp +++ b/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp @@ -28,7 +28,6 @@ #include "dialogeditwrongformula.h" -#include #include #include #include @@ -47,40 +46,44 @@ #include #include #include +#include #include #include -#include #include -#include -#include "../vpatterndb/vcontainer.h" -#include "../vpatterndb/vtranslatevars.h" +#include "../tools/dialogtool.h" +#include "../vmisc/def.h" +#include "../vmisc/theme/vtheme.h" +#include "../vmisc/vabstractapplication.h" +#include "../vmisc/vcommonsettings.h" #include "../vpatterndb/variables/varcradius.h" #include "../vpatterndb/variables/vcurveangle.h" -#include "../vpatterndb/variables/vcurvelength.h" #include "../vpatterndb/variables/vcurveclength.h" +#include "../vpatterndb/variables/vcurvelength.h" #include "../vpatterndb/variables/vincrement.h" #include "../vpatterndb/variables/vlineangle.h" #include "../vpatterndb/variables/vlinelength.h" #include "../vpatterndb/variables/vmeasurement.h" #include "../vpatterndb/variables/vpiecearea.h" -#include "../vmisc/def.h" -#include "../vmisc/vabstractapplication.h" -#include "../vmisc/vcommonsettings.h" -#include "../tools/dialogtool.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "ui_dialogeditwrongformula.h" template class QSharedPointer; -enum {ColumnName = 0, ColumnFullName}; +enum +{ + ColumnName = 0, + ColumnFullName +}; //--------------------------------------------------------------------------------------------------------------------- DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, quint32 toolId, QWidget *parent) - : QDialog(parent), - ui(new Ui::DialogEditWrongFormula), - m_data(data), - m_toolId(toolId), - timerFormula(new QTimer(this)) + : QDialog(parent), + ui(new Ui::DialogEditWrongFormula), + m_data(data), + m_toolId(toolId), + timerFormula(new QTimer(this)) { SCASSERT(data != nullptr) @@ -115,12 +118,10 @@ DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, quint32 t connect(ui->toolButtonPutHere, &QPushButton::clicked, this, &DialogEditWrongFormula::PutHere); connect(ui->tableWidget, &QTableWidget::itemDoubleClicked, this, &DialogEditWrongFormula::PutVal); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - timerFormula->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { timerFormula->start(formulaTimerTimeout); }); - //Disable Qt::WaitCursor + // Disable Qt::WaitCursor #ifndef QT_NO_CURSOR if (QGuiApplication::overrideCursor() != nullptr) { @@ -166,7 +167,7 @@ void DialogEditWrongFormula::DialogRejected() //--------------------------------------------------------------------------------------------------------------------- void DialogEditWrongFormula::EvalFormula() -{ +{ FormulaData formulaData; formulaData.formula = ui->plainTextEditFormula->toPlainText(); formulaData.variables = m_data->DataVariables(); @@ -191,7 +192,7 @@ void DialogEditWrongFormula::ValChanged(int row) ui->labelDescription->setText(QString()); return; } - QTableWidgetItem *item = ui->tableWidget->item( row, ColumnName ); + QTableWidgetItem *item = ui->tableWidget->item(row, ColumnName); const QString name = VAbstractApplication::VApp()->TrVars()->VarFromUser(item->text()); try @@ -414,8 +415,8 @@ void DialogEditWrongFormula::closeEvent(QCloseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void DialogEditWrongFormula::showEvent(QShowEvent *event) { - QDialog::showEvent( event ); - if ( event->spontaneous() ) + QDialog::showEvent(event); + if (event->spontaneous()) { return; } @@ -434,7 +435,7 @@ void DialogEditWrongFormula::showEvent(QShowEvent *event) CheckState(); - m_isInitialized = true;//first show windows are held + m_isInitialized = true; // first show windows are held } //--------------------------------------------------------------------------------------------------------------------- @@ -450,6 +451,24 @@ void DialogEditWrongFormula::resizeEvent(QResizeEvent *event) QDialog::resizeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogEditWrongFormula::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + QDialog::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogEditWrongFormula::CheckState() { @@ -467,8 +486,8 @@ void DialogEditWrongFormula::CheckState() //--------------------------------------------------------------------------------------------------------------------- void DialogEditWrongFormula::SetFormula(const QString &value) { - formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); ui->plainTextEditFormula->setPlainText(formula); MoveCursorToEnd(ui->plainTextEditFormula); ui->plainTextEditFormula->selectAll(); @@ -538,7 +557,7 @@ void DialogEditWrongFormula::InitVariables() Measurements(); // clear text filter every time when new radio button selected - auto ClearFilterFormulaInputs = [this] () { ui->filterFormulaInputs->clear(); }; + auto ClearFilterFormulaInputs = [this]() { ui->filterFormulaInputs->clear(); }; connect(ui->radioButtonStandardTable, &QRadioButton::clicked, this, &DialogEditWrongFormula::Measurements); connect(ui->radioButtonStandardTable, &QRadioButton::clicked, this, ClearFilterFormulaInputs); @@ -599,13 +618,20 @@ auto DialogEditWrongFormula::Eval(const FormulaData &formulaData, bool &flag) -> return result; } +//--------------------------------------------------------------------------------------------------------------------- +void DialogEditWrongFormula::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->label->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief ShowVariable show variables in list * @param var container with variables */ -template -void DialogEditWrongFormula::ShowVariable(const QMap &var) +template void DialogEditWrongFormula::ShowVariable(const QMap &var) { ui->tableWidget->blockSignals(true); ui->tableWidget->clearContents(); @@ -619,16 +645,16 @@ void DialogEditWrongFormula::ShowVariable(const QMap &var) iMap.next(); if (ui->checkBoxHideEmpty->isEnabled() && ui->checkBoxHideEmpty->isChecked() && iMap.value()->IsNotUsed()) { - continue; //skip this measurement + continue; // skip this measurement } if (iMap.value()->Filter(m_toolId) == false) - {// If we create this variable don't show + { // If we create this variable don't show ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1); auto *item = new QTableWidgetItem(iMap.key()); QFont font = item->font(); font.setBold(true); item->setFont(font); - ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, ColumnName, item); + ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, ColumnName, item); } } ui->tableWidget->blockSignals(false); @@ -641,7 +667,7 @@ void DialogEditWrongFormula::ShowVariable(const QMap &var) * @brief ShowMeasurements show measurements in table * @param var container with measurements */ -void DialogEditWrongFormula::ShowMeasurements(const QMap > &var) +void DialogEditWrongFormula::ShowMeasurements(const QMap> &var) { ui->tableWidget->blockSignals(true); ui->tableWidget->clearContents(); @@ -655,10 +681,10 @@ void DialogEditWrongFormula::ShowMeasurements(const QMapcheckBoxHideEmpty->isEnabled() && ui->checkBoxHideEmpty->isChecked() && iMap.value()->IsNotUsed()) { - continue; //skip this measurement + continue; // skip this measurement } if (not iMap.value()->Filter(m_toolId)) - {// If we create this variable don't show + { // If we create this variable don't show ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1); auto *itemName = new QTableWidgetItem(iMap.key()); QFont fontName = itemName->font(); @@ -680,8 +706,8 @@ void DialogEditWrongFormula::ShowMeasurements(const QMapsetToolTip(itemFullName->text()); - ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, ColumnName, itemName); - ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, ColumnFullName, itemFullName); + ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, ColumnName, itemName); + ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, ColumnFullName, itemFullName); } } ui->tableWidget->blockSignals(false); @@ -713,12 +739,11 @@ void DialogEditWrongFormula::ShowFunctions() QFont font = item->font(); font.setBold(true); item->setFont(font); - ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, ColumnName, item); + ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, ColumnName, item); - functionsDescriptions.contains(i.key()) - ? item->setToolTip(functionsDescriptions.value(i.key()) - .translate(VAbstractApplication::VApp()->Settings()->GetLocale())) - : item->setToolTip(i.value().getMdisambiguation()); + functionsDescriptions.contains(i.key()) ? item->setToolTip(functionsDescriptions.value(i.key()).translate( + VAbstractApplication::VApp()->Settings()->GetLocale())) + : item->setToolTip(i.value().getMdisambiguation()); ++i; } @@ -732,13 +757,13 @@ void DialogEditWrongFormula::ShowIncrementsInPreviewCalculation(bool show) { ui->checkBoxHideEmpty->setEnabled(false); - QMap > increments; + QMap> increments; - const QMap > list = m_data->DataIncrements(); - QMap >::const_iterator i = list.constBegin(); + const QMap> list = m_data->DataIncrements(); + QMap>::const_iterator i = list.constBegin(); while (i != list.constEnd()) { - if(i.value()->IsPreviewCalculation() == show) + if (i.value()->IsPreviewCalculation() == show) { increments.insert(i.key(), i.value()); } @@ -772,7 +797,7 @@ void DialogEditWrongFormula::FilterVariablesEdited(const QString &filter) } // show rows with matched filter - const QList items = ui->tableWidget->findItems(filter, Qt::MatchContains); + const QList items = ui->tableWidget->findItems(filter, Qt::MatchContains); for (auto *item : items) { // If filter is empty findItems() for unknown reason returns nullptr items. diff --git a/src/libs/vtools/dialogs/support/dialogeditwrongformula.h b/src/libs/vtools/dialogs/support/dialogeditwrongformula.h index a0d1231f1..a06458902 100644 --- a/src/libs/vtools/dialogs/support/dialogeditwrongformula.h +++ b/src/libs/vtools/dialogs/support/dialogeditwrongformula.h @@ -113,6 +113,7 @@ protected: void closeEvent(QCloseEvent *event) override; void showEvent(QShowEvent *event) override; void resizeEvent(QResizeEvent *event) override; + void changeEvent(QEvent *event) override; virtual void CheckState(); private slots: @@ -156,6 +157,8 @@ private: bool square = false); auto Eval(const FormulaData &formulaData, bool &flag) -> qreal; + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/support/dialogeditwrongformula.ui b/src/libs/vtools/dialogs/support/dialogeditwrongformula.ui index 6cfa88c9c..2d19e614a 100644 --- a/src/libs/vtools/dialogs/support/dialogeditwrongformula.ui +++ b/src/libs/vtools/dialogs/support/dialogeditwrongformula.ui @@ -95,7 +95,7 @@ Insert variable into formula - ... + @@ -115,7 +115,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/support/dialogundo.cpp b/src/libs/vtools/dialogs/support/dialogundo.cpp index 93ccf6848..bdf454276 100644 --- a/src/libs/vtools/dialogs/support/dialogundo.cpp +++ b/src/libs/vtools/dialogs/support/dialogundo.cpp @@ -31,7 +31,6 @@ #include #include #include -#include #include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vcommonsettings.h" @@ -39,7 +38,9 @@ //--------------------------------------------------------------------------------------------------------------------- DialogUndo::DialogUndo(QWidget *parent) - :QDialog(parent), ui(new Ui::DialogUndo), result(UndoButton::Cancel) + : QDialog(parent), + ui(new Ui::DialogUndo), + result(UndoButton::Cancel) { ui->setupUi(this); @@ -52,17 +53,19 @@ DialogUndo::DialogUndo(QWidget *parent) } else { - connect(ui->pushButtonUndo, &QPushButton::clicked, this, [this]() - { - result = UndoButton::Undo; - accept(); - }); + connect(ui->pushButtonUndo, &QPushButton::clicked, this, + [this]() + { + result = UndoButton::Undo; + accept(); + }); } - connect(ui->pushButtonFix, &QPushButton::clicked, this, [this]() - { - result = UndoButton::Fix; - accept(); - }); + connect(ui->pushButtonFix, &QPushButton::clicked, this, + [this]() + { + result = UndoButton::Fix; + accept(); + }); connect(ui->pushButtonCancel, &QPushButton::clicked, this, &DialogUndo::Cancel); setCursor(Qt::ArrowCursor); diff --git a/src/libs/vtools/dialogs/tools/dialogalongline.cpp b/src/libs/vtools/dialogs/tools/dialogalongline.cpp index 5d07d6ec2..8477b9139 100644 --- a/src/libs/vtools/dialogs/tools/dialogalongline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogalongline.cpp @@ -48,13 +48,14 @@ #include "../support/dialogeditwrongformula.h" #include "../vgeometry/../ifc/ifcdef.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "../vpatterndb/vcontainer.h" #include "../vpatterndb/variables/vlinelength.h" +#include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vtranslatevars.h" -#include "ui_dialogalongline.h" #include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogalongline.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -63,19 +64,21 @@ * @param parent parent widget */ DialogAlongLine::DialogAlongLine(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogAlongLine), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogAlongLine), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogAlongLine::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -84,29 +87,28 @@ DialogAlongLine::DialogAlongLine(const VContainer *data, quint32 toolId, QWidget FillComboBoxPoints(ui->comboBoxFirstPoint); FillComboBoxPoints(ui->comboBoxSecondPoint); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogAlongLine::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogAlongLine::DeployFormulaTextEdit); - connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, - this, &DialogAlongLine::PointChanged); - connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, - this, &DialogAlongLine::PointChanged); + connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, this, &DialogAlongLine::PointChanged); + connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, this, &DialogAlongLine::PointChanged); vis = new VisToolAlongLine(data); // Call after initialization vis!!!! - SetTypeLine(TypeLineNone);//By default don't show line + SetTypeLine(TypeLineNone); // By default don't show line ui->tabWidget->setCurrentIndex(0); SetTabStopDistance(ui->plainTextEditToolNotes); @@ -186,7 +188,7 @@ DialogAlongLine::~DialogAlongLine() */ void DialogAlongLine::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -239,6 +241,24 @@ void DialogAlongLine::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogAlongLine::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogAlongLine::SetCurrentLength() { @@ -260,7 +280,7 @@ void DialogAlongLine::SetCurrentLength() SCASSERT(length != nullptr) length->SetName(currentLength); - auto *locData = const_cast (data); + auto *locData = const_cast(data); locData->AddVariable(length); } @@ -282,8 +302,7 @@ void DialogAlongLine::ChosenSecondPoint(quint32 id, const QString &toolTip) } else { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(line, &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); } @@ -314,6 +333,15 @@ void DialogAlongLine::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogAlongLine::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->labelEqual->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief SetSecondPointId set id second point of line @@ -413,8 +441,8 @@ void DialogAlongLine::SetFirstPointId(quint32 value) */ void DialogAlongLine::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_formula.length() > 80) { diff --git a/src/libs/vtools/dialogs/tools/dialogalongline.h b/src/libs/vtools/dialogs/tools/dialogalongline.h index 4ae23e5d4..44f9a165d 100644 --- a/src/libs/vtools/dialogs/tools/dialogalongline.h +++ b/src/libs/vtools/dialogs/tools/dialogalongline.h @@ -95,6 +95,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -129,6 +130,8 @@ private: void ChosenSecondPoint(quint32 id, const QString &toolTip); void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogalongline.ui b/src/libs/vtools/dialogs/tools/dialogalongline.ui index 5fd9797d6..b6a653803 100644 --- a/src/libs/vtools/dialogs/tools/dialogalongline.ui +++ b/src/libs/vtools/dialogs/tools/dialogalongline.ui @@ -102,11 +102,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -122,7 +122,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogarc.cpp b/src/libs/vtools/dialogs/tools/dialogarc.cpp index cb17dad3a..be0326049 100644 --- a/src/libs/vtools/dialogs/tools/dialogarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogarc.cpp @@ -28,7 +28,6 @@ #include "dialogarc.h" -#include #include #include #include @@ -36,20 +35,21 @@ #include #include #include -#include +#include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" #include "../../visualization/path/vistoolarc.h" #include "../../visualization/visualization.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/varc.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogarc.h" -#include "../vgeometry/varc.h" -#include "../qmuparser/qmudef.h" -#include "../vwidgets/vabstractmainwindow.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/global.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogarc.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -58,14 +58,16 @@ * @param parent parent widget */ DialogArc::DialogArc(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogArc), - m_timerRadius(new QTimer(this)), - m_timerF1(new QTimer(this)), - m_timerF2(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogArc), + m_timerRadius(new QTimer(this)), + m_timerF1(new QTimer(this)), + m_timerF2(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + ui->doubleSpinBoxApproximationScale->setMaximum(maxCurveApproximationScale); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); @@ -89,26 +91,22 @@ DialogArc::DialogArc(const VContainer *data, quint32 toolId, QWidget *parent) FillComboBoxPoints(ui->comboBoxBasePoint); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); connect(ui->toolButtonExprRadius, &QPushButton::clicked, this, &DialogArc::FXRadius); connect(ui->toolButtonExprF1, &QPushButton::clicked, this, &DialogArc::FXF1); connect(ui->toolButtonExprF2, &QPushButton::clicked, this, &DialogArc::FXF2); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerRadius->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerRadius->start(formulaTimerTimeout); }); - connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerF1->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, + [this]() { m_timerF1->start(formulaTimerTimeout); }); - connect(ui->plainTextEditF2, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerF2->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditF2, &QPlainTextEdit::textChanged, this, + [this]() { m_timerF2->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogArc::DeployFormulaTextEdit); connect(ui->pushButtonGrowLengthF1, &QPushButton::clicked, this, &DialogArc::DeployF1TextEdit); @@ -167,8 +165,8 @@ void DialogArc::SetCenter(const quint32 &value) */ void DialogArc::SetF2(const QString &value) { - m_f2 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_f2 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_f2.length() > 80) { @@ -287,8 +285,8 @@ void DialogArc::ShowDialog(bool click) if (m_stageRadius) { - //Radius of point circle, but little bigger. Need handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -324,8 +322,8 @@ void DialogArc::ShowDialog(bool click) */ void DialogArc::SetF1(const QString &value) { - m_f1 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_f1 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_f1.length() > 80) { @@ -347,8 +345,8 @@ void DialogArc::SetF1(const QString &value) */ void DialogArc::SetRadius(const QString &value) { - m_radius = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_radius = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_radius.length() > 80) { @@ -371,7 +369,7 @@ void DialogArc::SetRadius(const QString &value) */ void DialogArc::ChosenObject(quint32 id, const SceneObject &type) { - if (not prepare)// After first choose we ignore all objects + if (not prepare) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -379,8 +377,8 @@ void DialogArc::ChosenObject(quint32 id, const SceneObject &type) { if (vis != nullptr) { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); @@ -432,6 +430,24 @@ void DialogArc::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogArc::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogArc::ValidateAlias() { @@ -557,6 +573,22 @@ void DialogArc::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogArc::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprRadius->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprF1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprF2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_2->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_5->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief GetCenter return id of center point diff --git a/src/libs/vtools/dialogs/tools/dialogarc.h b/src/libs/vtools/dialogs/tools/dialogarc.h index bab247059..7a13ddfee 100644 --- a/src/libs/vtools/dialogs/tools/dialogarc.h +++ b/src/libs/vtools/dialogs/tools/dialogarc.h @@ -102,6 +102,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -161,6 +162,8 @@ private: void EvalF(); void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogarc.ui b/src/libs/vtools/dialogs/tools/dialogarc.ui index 0314113ac..7db722a60 100644 --- a/src/libs/vtools/dialogs/tools/dialogarc.ui +++ b/src/libs/vtools/dialogs/tools/dialogarc.ui @@ -102,11 +102,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -122,7 +122,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -282,11 +282,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -302,7 +302,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png
@@ -462,11 +462,11 @@ Formula wizard
- ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -482,7 +482,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png
diff --git a/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp b/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp index b4a025126..8a29cb222 100644 --- a/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp +++ b/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp @@ -28,7 +28,6 @@ #include "dialogarcwithlength.h" -#include #include #include #include @@ -36,31 +35,34 @@ #include #include #include -#include +#include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" #include "../../visualization/path/vistoolarcwithlength.h" +#include "../../visualization/visualization.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/varc.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "../../visualization/visualization.h" -#include "ui_dialogarcwithlength.h" -#include "../vgeometry/varc.h" -#include "../qmuparser/qmudef.h" -#include "../vwidgets/vabstractmainwindow.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/global.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogarcwithlength.h" //--------------------------------------------------------------------------------------------------------------------- DialogArcWithLength::DialogArcWithLength(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogArcWithLength), - m_timerRadius(new QTimer(this)), - m_timerF1(new QTimer(this)), - m_timerLength(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogArcWithLength), + m_timerRadius(new QTimer(this)), + m_timerF1(new QTimer(this)), + m_timerLength(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + this->m_formulaBaseHeightRadius = ui->plainTextEditRadius->height(); this->m_formulaBaseHeightF1 = ui->plainTextEditF1->height(); this->m_formulaBaseHeightLength = ui->plainTextEditLength->height(); @@ -82,7 +84,9 @@ DialogArcWithLength::DialogArcWithLength(const VContainer *data, quint32 toolId, FillComboBoxPoints(ui->comboBoxCenter); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); ui->doubleSpinBoxApproximationScale->setMaximum(maxCurveApproximationScale); @@ -90,20 +94,14 @@ DialogArcWithLength::DialogArcWithLength(const VContainer *data, quint32 toolId, connect(ui->toolButtonExprF1, &QPushButton::clicked, this, &DialogArcWithLength::FXF1); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogArcWithLength::FXLength); - connect(ui->plainTextEditRadius, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerRadius->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditRadius, &QPlainTextEdit::textChanged, this, + [this]() { m_timerRadius->start(formulaTimerTimeout); }); - connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerF1->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, + [this]() { m_timerF1->start(formulaTimerTimeout); }); - connect(ui->plainTextEditLength, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerLength->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditLength, &QPlainTextEdit::textChanged, this, + [this]() { m_timerLength->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLengthRadius, &QPushButton::clicked, this, &DialogArcWithLength::DeployRadiusTextEdit); connect(ui->pushButtonGrowLengthF1, &QPushButton::clicked, this, &DialogArcWithLength::DeployF1TextEdit); @@ -147,8 +145,8 @@ auto DialogArcWithLength::GetRadius() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogArcWithLength::SetRadius(const QString &value) { - m_radius = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_radius = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_radius.length() > 80) { @@ -172,8 +170,8 @@ auto DialogArcWithLength::GetF1() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogArcWithLength::SetF1(const QString &value) { - m_f1 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_f1 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_f1.length() > 80) { @@ -197,8 +195,8 @@ auto DialogArcWithLength::GetLength() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogArcWithLength::SetLength(const QString &value) { - m_length = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_length = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_length.length() > 80) { @@ -314,8 +312,8 @@ void DialogArcWithLength::ShowDialog(bool click) if (m_stageRadius) { - //Radius of point circle, but little bigger. Need handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -355,7 +353,7 @@ void DialogArcWithLength::ShowDialog(bool click) //--------------------------------------------------------------------------------------------------------------------- void DialogArcWithLength::ChosenObject(quint32 id, const SceneObject &type) { - if (not prepare)// After first choose we ignore all objects + if (not prepare) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -363,8 +361,8 @@ void DialogArcWithLength::ChosenObject(quint32 id, const SceneObject &type) { if (vis != nullptr) { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); @@ -476,6 +474,24 @@ void DialogArcWithLength::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogArcWithLength::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogArcWithLength::ValidateAlias() { @@ -550,3 +566,19 @@ void DialogArcWithLength::FinishCreating() setModal(true); show(); } + +//--------------------------------------------------------------------------------------------------------------------- +void DialogArcWithLength::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprRadius->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprF1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_6->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_9->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_10->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} diff --git a/src/libs/vtools/dialogs/tools/dialogarcwithlength.h b/src/libs/vtools/dialogs/tools/dialogarcwithlength.h index 9c6221c5f..7ecf62134 100644 --- a/src/libs/vtools/dialogs/tools/dialogarcwithlength.h +++ b/src/libs/vtools/dialogs/tools/dialogarcwithlength.h @@ -98,6 +98,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -150,6 +151,8 @@ private: void EvalF(); void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogarcwithlength.ui b/src/libs/vtools/dialogs/tools/dialogarcwithlength.ui index b6790d8c6..1a7f3ed89 100644 --- a/src/libs/vtools/dialogs/tools/dialogarcwithlength.ui +++ b/src/libs/vtools/dialogs/tools/dialogarcwithlength.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -279,11 +279,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -299,7 +299,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -459,11 +459,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -479,7 +479,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogbisector.cpp b/src/libs/vtools/dialogs/tools/dialogbisector.cpp index a53866211..19b5dc93a 100644 --- a/src/libs/vtools/dialogs/tools/dialogbisector.cpp +++ b/src/libs/vtools/dialogs/tools/dialogbisector.cpp @@ -44,14 +44,15 @@ #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "../vpatterndb/vtranslatevars.h" #include "../vpatterndb/vcontainer.h" -#include "ui_dialogbisector.h" -#include "../vwidgets/vabstractmainwindow.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.h" -#include "../vgeometry/vpointf.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogbisector.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -60,19 +61,21 @@ * @param parent parent widget */ DialogBisector::DialogBisector(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogBisector), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogBisector), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogBisector::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -80,27 +83,25 @@ DialogBisector::DialogBisector(const VContainer *data, quint32 toolId, QWidget * FillComboBoxPoints(ui->comboBoxFirstPoint); FillComboBoxPoints(ui->comboBoxSecondPoint); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxPoints(ui->comboBoxThirdPoint); FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogBisector::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogBisector::DeployFormulaTextEdit); - connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, - this, &DialogBisector::PointNameChanged); - connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, - this, &DialogBisector::PointNameChanged); - connect(ui->comboBoxThirdPoint, &QComboBox::currentTextChanged, - this, &DialogBisector::PointNameChanged); + connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, this, &DialogBisector::PointNameChanged); + connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, this, &DialogBisector::PointNameChanged); + connect(ui->comboBoxThirdPoint, &QComboBox::currentTextChanged, this, &DialogBisector::PointNameChanged); vis = new VisToolBisector(data); @@ -193,7 +194,7 @@ auto DialogBisector::GetPointName() const -> QString */ void DialogBisector::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -261,8 +262,8 @@ void DialogBisector::SetTypeLine(const QString &value) */ void DialogBisector::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_formula.length() > 80) { @@ -368,8 +369,7 @@ void DialogBisector::ShowDialog(bool click) const QSharedPointer p2 = data->GeometricObject(GetSecondPointId()); const QSharedPointer p3 = data->GeometricObject(GetThirdPointId()); - qreal angle = VToolBisector::BisectorAngle(static_cast(*p1), - static_cast(*p2), + qreal angle = VToolBisector::BisectorAngle(static_cast(*p1), static_cast(*p2), static_cast(*p3)); QLineF baseLine(static_cast(*p2), static_cast(*p3)); @@ -414,6 +414,24 @@ void DialogBisector::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogBisector::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogBisector::ChosenThirdPoint(quint32 id) { @@ -426,8 +444,7 @@ void DialogBisector::ChosenThirdPoint(quint32 id) { if (SetObject(id, ui->comboBoxThirdPoint, QString())) { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) auto *line = qobject_cast(vis); @@ -456,6 +473,15 @@ void DialogBisector::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogBisector::InitIcons() +{ + QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief GetTypeLine return type of line diff --git a/src/libs/vtools/dialogs/tools/dialogbisector.h b/src/libs/vtools/dialogs/tools/dialogbisector.h index 5b9292ef3..1ae225d51 100644 --- a/src/libs/vtools/dialogs/tools/dialogbisector.h +++ b/src/libs/vtools/dialogs/tools/dialogbisector.h @@ -97,6 +97,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -126,6 +127,8 @@ private: void ChosenThirdPoint(quint32 id); void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogbisector.ui b/src/libs/vtools/dialogs/tools/dialogbisector.ui index 485374cf2..0cbcf1567 100644 --- a/src/libs/vtools/dialogs/tools/dialogbisector.ui +++ b/src/libs/vtools/dialogs/tools/dialogbisector.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogcubicbezier.cpp b/src/libs/vtools/dialogs/tools/dialogcubicbezier.cpp index 1a3c1f366..bc1987da0 100644 --- a/src/libs/vtools/dialogs/tools/dialogcubicbezier.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcubicbezier.cpp @@ -37,19 +37,19 @@ #include "../../visualization/path/vistoolcubicbezier.h" #include "../../visualization/visualization.h" +#include "../qmuparser/qmudef.h" #include "../vgeometry/vpointf.h" #include "../vpatterndb/vcontainer.h" #include "dialogtool.h" #include "ui_dialogcubicbezier.h" -#include "../qmuparser/qmudef.h" //--------------------------------------------------------------------------------------------------------------------- DialogCubicBezier::DialogCubicBezier(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogCubicBezier), - spl(), - newDuplicate(-1), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogCubicBezier), + spl(), + newDuplicate(-1), + flagError(false) { ui->setupUi(this); InitOkCancelApply(ui); @@ -59,18 +59,16 @@ DialogCubicBezier::DialogCubicBezier(const VContainer *data, quint32 toolId, QWi FillComboBoxPoints(ui->comboBoxP3); FillComboBoxPoints(ui->comboBoxP4); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); ui->doubleSpinBoxApproximationScale->setMaximum(maxCurveApproximationScale); - connect(ui->comboBoxP1, &QComboBox::currentTextChanged, - this, &DialogCubicBezier::PointNameChanged); - connect(ui->comboBoxP2, &QComboBox::currentTextChanged, - this, &DialogCubicBezier::PointNameChanged); - connect(ui->comboBoxP3, &QComboBox::currentTextChanged, - this, &DialogCubicBezier::PointNameChanged); - connect(ui->comboBoxP4, &QComboBox::currentTextChanged, - this, &DialogCubicBezier::PointNameChanged); + connect(ui->comboBoxP1, &QComboBox::currentTextChanged, this, &DialogCubicBezier::PointNameChanged); + connect(ui->comboBoxP2, &QComboBox::currentTextChanged, this, &DialogCubicBezier::PointNameChanged); + connect(ui->comboBoxP3, &QComboBox::currentTextChanged, this, &DialogCubicBezier::PointNameChanged); + connect(ui->comboBoxP4, &QComboBox::currentTextChanged, this, &DialogCubicBezier::PointNameChanged); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogCubicBezier::ValidateAlias); @@ -124,7 +122,7 @@ void DialogCubicBezier::SetSpline(const VCubicBezier &spline) //--------------------------------------------------------------------------------------------------------------------- void DialogCubicBezier::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare == false)// After first choose we ignore all objects + if (prepare == false) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -249,7 +247,7 @@ void DialogCubicBezier::SaveData() spl.SetColor(GetComboBoxCurrentData(ui->comboBoxColor, ColorBlack)); spl.SetAliasSuffix(ui->lineEditAlias->text()); - const quint32 d = spl.GetDuplicate();//Save previous value + const quint32 d = spl.GetDuplicate(); // Save previous value newDuplicate <= -1 ? spl.SetDuplicate(d) : spl.SetDuplicate(static_cast(newDuplicate)); auto *path = qobject_cast(vis); diff --git a/src/libs/vtools/dialogs/tools/dialogcubicbezierpath.cpp b/src/libs/vtools/dialogs/tools/dialogcubicbezierpath.cpp index 48e55485f..8d3f147f8 100644 --- a/src/libs/vtools/dialogs/tools/dialogcubicbezierpath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcubicbezierpath.cpp @@ -41,7 +41,6 @@ #include #include #include -#include #include #include "../../visualization/path/vistoolcubicbezierpath.h" @@ -51,21 +50,21 @@ #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../qmuparser/qmudef.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vabstractmainwindow.h" #include "dialogtool.h" #include "ui_dialogcubicbezierpath.h" -#include "../qmuparser/qmudef.h" class QWidget; //--------------------------------------------------------------------------------------------------------------------- DialogCubicBezierPath::DialogCubicBezierPath(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogCubicBezierPath), - path(), - newDuplicate(-1), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogCubicBezierPath), + path(), + newDuplicate(-1), + flagError(false) { ui->setupUi(this); @@ -74,13 +73,15 @@ DialogCubicBezierPath::DialogCubicBezierPath(const VContainer *data, quint32 too FillComboBoxPoints(ui->comboBoxPoint); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); ui->doubleSpinBoxApproximationScale->setMaximum(maxCurveApproximationScale); connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogCubicBezierPath::PointChanged); - connect(ui->comboBoxPoint, QOverload::of(&QComboBox::currentIndexChanged), - this, &DialogCubicBezierPath::currentPointChanged); + connect(ui->comboBoxPoint, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogCubicBezierPath::currentPointChanged); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogCubicBezierPath::ValidateAlias); @@ -159,7 +160,7 @@ void DialogCubicBezierPath::ChosenObject(quint32 id, const SceneObject &type) { visPath->VisualMode(NULL_ID); VAbstractMainWindow *window = - qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(visPath, &VisToolCubicBezierPath::ToolTip, window, &VAbstractMainWindow::ShowToolTip); } @@ -179,7 +180,7 @@ void DialogCubicBezierPath::ShowDialog(bool click) if (size >= 7) { if (size - VCubicBezierPath::SubSplPointsCount(path.CountSubSpl()) == 0) - {// Accept only if all subpaths are completed + { // Accept only if all subpaths are completed emit ToolTip(QString()); if (not data->IsUnique(path.name())) @@ -202,7 +203,7 @@ void DialogCubicBezierPath::ShowVisualization() //--------------------------------------------------------------------------------------------------------------------- void DialogCubicBezierPath::SaveData() { - const quint32 d = path.GetDuplicate();//Save previous value + const quint32 d = path.GetDuplicate(); // Save previous value SavePath(); newDuplicate <= -1 ? path.SetDuplicate(d) : path.SetDuplicate(static_cast(newDuplicate)); @@ -237,7 +238,7 @@ void DialogCubicBezierPath::currentPointChanged(int index) try { - QListWidgetItem *item = ui->listWidget->item( ui->listWidget->currentRow() ); + QListWidgetItem *item = ui->listWidget->item(ui->listWidget->currentRow()); const auto point = data->GeometricObject(id); DataPoint(*point); item->setData(Qt::UserRole, QVariant::fromValue(*point)); @@ -280,7 +281,7 @@ void DialogCubicBezierPath::ValidateAlias() //--------------------------------------------------------------------------------------------------------------------- void DialogCubicBezierPath::NewItem(const VPointF &point) { - auto* item = new QListWidgetItem(point.name()); + auto *item = new QListWidgetItem(point.name()); item->setFont(NodeFont(item->font())); item->setData(Qt::UserRole, QVariant::fromValue(point)); @@ -320,12 +321,12 @@ auto DialogCubicBezierPath::AllPathBackboneIds() const -> QSet } QSet ids; - const auto count = VCubicBezierPath::CountSubSpl(points.size());// Count subpaths + const auto count = VCubicBezierPath::CountSubSpl(points.size()); // Count subpaths for (qint32 i = 1; i <= count; ++i) { const auto base = VCubicBezierPath::SubSplOffset(i); - ids.insert(points.at(base));// The first subpath's point - ids.insert(points.at(base + 3));// The last subpath's point + ids.insert(points.at(base)); // The first subpath's point + ids.insert(points.at(base + 3)); // The last subpath's point } return ids; @@ -371,9 +372,9 @@ void DialogCubicBezierPath::ValidatePath() color = OkColor(this); auto first = qvariant_cast(ui->listWidget->item(0)->data(Qt::UserRole)); - auto last = qvariant_cast(ui->listWidget->item(ui->listWidget->count()-1)->data(Qt::UserRole)); + auto last = qvariant_cast(ui->listWidget->item(ui->listWidget->count() - 1)->data(Qt::UserRole)); - if (first.id() == path.at(0).id() && last.id() == path.at(path.CountPoints()-1).id()) + if (first.id() == path.at(0).id() && last.id() == path.at(path.CountPoints() - 1).id()) { newDuplicate = -1; ui->lineEditSplPathName->setText(VAbstractApplication::VApp()->TrVars()->VarToUser(path.name())); diff --git a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp index 22acd06dc..a35c2d6f1 100644 --- a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp @@ -40,42 +40,45 @@ #include #include -#include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" -#include "../vpatterndb/vtranslatevars.h" -#include "../vwidgets/vmaingraphicsscene.h" -#include "../vwidgets/vabstractmainwindow.h" #include "../../visualization/line/vistoolcurveintersectaxis.h" #include "../../visualization/visualization.h" +#include "../dialogtoolbox.h" #include "../ifc/xml/vabstractpattern.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "../qmuparser/qmudef.h" -#include "../dialogtoolbox.h" -#include "ui_dialogcurveintersectaxis.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/global.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "../vwidgets/vmaingraphicsscene.h" +#include "ui_dialogcurveintersectaxis.h" //--------------------------------------------------------------------------------------------------------------------- DialogCurveIntersectAxis::DialogCurveIntersectAxis(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogCurveIntersectAxis), - formulaAngle(), - formulaBaseHeightAngle(0), - pointName(), - m_firstRelease(false), - timerFormula(new QTimer(this)), - flagFormula(false), - flagName(true) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogCurveIntersectAxis), + formulaAngle(), + formulaBaseHeightAngle(0), + pointName(), + m_firstRelease(false), + timerFormula(new QTimer(this)), + flagFormula(false), + flagName(true) { ui->setupUi(this); + InitIcons(); + timerFormula->setSingleShot(true); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); formulaBaseHeightAngle = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -83,19 +86,19 @@ DialogCurveIntersectAxis::DialogCurveIntersectAxis(const VContainer *data, quint FillComboBoxPoints(ui->comboBoxAxisPoint); FillComboBoxCurves(ui->comboBoxCurve); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonExprAngle, &QPushButton::clicked, this, &DialogCurveIntersectAxis::FXAngle); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, pointName, this->data, flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, pointName, this->data, flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLengthAngle, &QPushButton::clicked, this, &DialogCurveIntersectAxis::DeployAngleTextEdit); connect(timerFormula, &QTimer::timeout, this, &DialogCurveIntersectAxis::EvalAngle); connect(ui->lineEditAlias1, &QLineEdit::textEdited, this, &DialogCurveIntersectAxis::ValidateAlias); @@ -148,8 +151,8 @@ auto DialogCurveIntersectAxis::GetAngle() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogCurveIntersectAxis::SetAngle(const QString &value) { - formulaAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formulaAngle.length() > 80) @@ -230,8 +233,8 @@ void DialogCurveIntersectAxis::ShowDialog(bool click) const QSharedPointer point = data->GeometricObject(GetBasePointId()); QLineF line = QLineF(static_cast(*point), scene->getScenePos()); - //Radius of point circle, but little bigger. Need handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -239,17 +242,17 @@ void DialogCurveIntersectAxis::ShowDialog(bool click) auto *line = qobject_cast(vis); SCASSERT(line != nullptr) - SetAngle(line->Angle());//Show in dialog angle what user choose + SetAngle(line->Angle()); // Show in dialog angle what user choose emit ToolTip(QString()); - DialogAccepted();// Just set default values and don't show dialog + DialogAccepted(); // Just set default values and don't show dialog } } //--------------------------------------------------------------------------------------------------------------------- void DialogCurveIntersectAxis::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare == false)// After first choose we ignore all objects + if (prepare == false) // After first choose we ignore all objects { auto *line = qobject_cast(vis); SCASSERT(line != nullptr) @@ -257,20 +260,17 @@ void DialogCurveIntersectAxis::ChosenObject(quint32 id, const SceneObject &type) switch (number) { case (0): - if (type == SceneObject::Spline - || type == SceneObject::Arc - || type == SceneObject::ElArc - || type == SceneObject::SplinePath) + if (type == SceneObject::Spline || type == SceneObject::Arc || type == SceneObject::ElArc || + type == SceneObject::SplinePath) { if (SetObject(id, ui->comboBoxCurve, tr("Select axis point"))) { number++; line->VisualMode(id); VAbstractMainWindow *window = - qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(line, &VisToolCurveIntersectAxis::ToolTip, window, &VAbstractMainWindow::ShowToolTip); - } } break; @@ -362,6 +362,24 @@ void DialogCurveIntersectAxis::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCurveIntersectAxis::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCurveIntersectAxis::ValidateAlias() { @@ -370,11 +388,9 @@ void DialogCurveIntersectAxis::ValidateAlias() const QSharedPointer curve = data->GeometricObject(getCurveId()); QPair alias = SegmentAliases(curve->getType(), GetAliasSuffix1(), GetAliasSuffix2()); - if (not GetAliasSuffix1().isEmpty() && (not rx.match(alias.first).hasMatch() || - (originAliasSuffix1 != GetAliasSuffix1() && not data->IsUnique(alias.first)) || - alias.first == alias.second)) + (originAliasSuffix1 != GetAliasSuffix1() && not data->IsUnique(alias.first)) || alias.first == alias.second)) { flagAlias1 = false; ChangeColor(ui->labelAlias1, errorColor); @@ -387,8 +403,7 @@ void DialogCurveIntersectAxis::ValidateAlias() if (not GetAliasSuffix2().isEmpty() && (not rx.match(alias.second).hasMatch() || - (originAliasSuffix2 != GetAliasSuffix2() && not data->IsUnique(alias.second)) || - alias.first == alias.second)) + (originAliasSuffix2 != GetAliasSuffix2() && not data->IsUnique(alias.second)) || alias.first == alias.second)) { flagAlias2 = false; ChangeColor(ui->labelAlias2, errorColor); @@ -402,6 +417,15 @@ void DialogCurveIntersectAxis::ValidateAlias() CheckState(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCurveIntersectAxis::InitIcons() +{ + QString resource = QStringLiteral("icon"); + + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCurveIntersectAxis::SetNotes(const QString ¬es) { diff --git a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.h b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.h index 83d02b16f..d579d15bd 100644 --- a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.h +++ b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.h @@ -92,6 +92,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -120,6 +121,8 @@ private: /** @brief number number of handled objects */ qint32 number{0}; + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.ui b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.ui index bd4cc72c3..ff0afd3ae 100644 --- a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.ui +++ b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp index 71df49e32..e59c5719d 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp @@ -36,18 +36,19 @@ #include #include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" #include "../../visualization/path/vistoolcutarc.h" #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/varc.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogcutarc.h" -#include "../vgeometry/varc.h" -#include "../qmuparser/qmudef.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogcutarc.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -56,19 +57,21 @@ * @param parent parent widget */ DialogCutArc::DialogCutArc(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogCutArc), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogCutArc), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogCutArc::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -77,15 +80,15 @@ DialogCutArc::DialogCutArc(const VContainer *data, quint32 toolId, QWidget *pare FillComboBoxArcs(ui->comboBoxArc); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogCutArc::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutArc::DeployFormulaTextEdit); connect(ui->comboBoxArc, &QComboBox::currentTextChanged, this, &DialogCutArc::ArcChanged); @@ -159,7 +162,7 @@ auto DialogCutArc::GetPointName() const -> QString */ void DialogCutArc::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -207,10 +210,28 @@ void DialogCutArc::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCutArc::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCutArc::ArcChanged() { - CurrentCurveLength(getArcId(), const_cast (data)); + CurrentCurveLength(getArcId(), const_cast(data)); } //--------------------------------------------------------------------------------------------------------------------- @@ -265,6 +286,15 @@ void DialogCutArc::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCutArc::InitIcons() +{ + QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_4->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief setArcId set id of arc @@ -286,8 +316,8 @@ void DialogCutArc::setArcId(quint32 value) */ void DialogCutArc::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_formula.length() > 80) { diff --git a/src/libs/vtools/dialogs/tools/dialogcutarc.h b/src/libs/vtools/dialogs/tools/dialogcutarc.h index 831d09e39..0c180f6f2 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutarc.h +++ b/src/libs/vtools/dialogs/tools/dialogcutarc.h @@ -90,6 +90,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -121,6 +122,8 @@ private: bool m_firstRelease{false}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutarc.ui b/src/libs/vtools/dialogs/tools/dialogcutarc.ui index b8c52e344..60c6bb9f8 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutarc.ui +++ b/src/libs/vtools/dialogs/tools/dialogcutarc.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp index 8544020a0..a94f3e531 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp @@ -36,18 +36,19 @@ #include #include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" #include "../../visualization/path/vistoolcutspline.h" #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vspline.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogcutspline.h" -#include "../vgeometry/vspline.h" -#include "../qmuparser/qmudef.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogcutspline.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -56,19 +57,21 @@ * @param parent parent widget */ DialogCutSpline::DialogCutSpline(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogCutSpline), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogCutSpline), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogCutSpline::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -77,15 +80,15 @@ DialogCutSpline::DialogCutSpline(const VContainer *data, quint32 toolId, QWidget FillComboBoxSplines(ui->comboBoxSpline); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogCutSpline::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutSpline::DeployFormulaTextEdit); connect(ui->comboBoxSpline, &QComboBox::currentTextChanged, this, &DialogCutSpline::SplineChanged); @@ -128,8 +131,8 @@ void DialogCutSpline::SetPointName(const QString &value) */ void DialogCutSpline::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (m_formula.length() > 80) @@ -167,7 +170,7 @@ void DialogCutSpline::setSplineId(quint32 value) */ void DialogCutSpline::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -215,10 +218,28 @@ void DialogCutSpline::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCutSpline::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCutSpline::SplineChanged() { - CurrentCurveLength(getSplineId(), const_cast (data)); + CurrentCurveLength(getSplineId(), const_cast(data)); } //--------------------------------------------------------------------------------------------------------------------- @@ -273,6 +294,15 @@ void DialogCutSpline::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCutSpline::InitIcons() +{ + QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_4->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCutSpline::DeployFormulaTextEdit() { diff --git a/src/libs/vtools/dialogs/tools/dialogcutspline.h b/src/libs/vtools/dialogs/tools/dialogcutspline.h index 6a0db64fe..df582c5d0 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutspline.h +++ b/src/libs/vtools/dialogs/tools/dialogcutspline.h @@ -89,6 +89,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -122,6 +123,8 @@ private: bool m_firstRelease{false}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutspline.ui b/src/libs/vtools/dialogs/tools/dialogcutspline.ui index be57637e1..55b83480c 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutspline.ui +++ b/src/libs/vtools/dialogs/tools/dialogcutspline.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp index 98b12fc38..ac604bceb 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp @@ -36,18 +36,19 @@ #include #include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" #include "../../visualization/path/vistoolcutsplinepath.h" #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vsplinepath.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogcutsplinepath.h" -#include "../vgeometry/vsplinepath.h" -#include "../qmuparser/qmudef.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogcutsplinepath.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -56,19 +57,21 @@ * @param parent parent widget */ DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogCutSplinePath), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogCutSplinePath), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogCutSplinePath::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -77,15 +80,15 @@ DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, quint32 toolId, FillComboBoxSplinesPath(ui->comboBoxSplinePath); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogCutSplinePath::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogCutSplinePath::DeployFormulaTextEdit); connect(ui->comboBoxSplinePath, &QComboBox::currentTextChanged, this, &DialogCutSplinePath::SplinePathChanged); @@ -128,8 +131,8 @@ void DialogCutSplinePath::SetPointName(const QString &value) */ void DialogCutSplinePath::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (m_formula.length() > 80) @@ -167,7 +170,7 @@ void DialogCutSplinePath::setSplinePathId(quint32 value) */ void DialogCutSplinePath::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -215,10 +218,28 @@ void DialogCutSplinePath::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCutSplinePath::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCutSplinePath::SplinePathChanged() { - CurrentCurveLength(getSplinePathId(), const_cast (data)); + CurrentCurveLength(getSplinePathId(), const_cast(data)); } //--------------------------------------------------------------------------------------------------------------------- @@ -273,6 +294,15 @@ void DialogCutSplinePath::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogCutSplinePath::InitIcons() +{ + QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_4->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogCutSplinePath::DeployFormulaTextEdit() { diff --git a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.h b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.h index 1e96d581e..d5fea4538 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.h +++ b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.h @@ -89,6 +89,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -121,6 +122,8 @@ private: bool m_firstRelease{false}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.ui b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.ui index 01e0e0278..49048c140 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.ui +++ b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogellipticalarc.cpp b/src/libs/vtools/dialogs/tools/dialogellipticalarc.cpp index 698b1f98d..43d12ac6a 100644 --- a/src/libs/vtools/dialogs/tools/dialogellipticalarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogellipticalarc.cpp @@ -28,7 +28,6 @@ #include "dialogellipticalarc.h" -#include #include #include #include @@ -36,20 +35,21 @@ #include #include #include -#include +#include -#include "../vpatterndb/vtranslatevars.h" #include "../../visualization/path/vistoolellipticalarc.h" #include "../../visualization/visualization.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vellipticalarc.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogellipticalarc.h" -#include "../vgeometry/vellipticalarc.h" -#include "../qmuparser/qmudef.h" #include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/global.h" #include "../vwidgets/vabstractmainwindow.h" +#include "ui_dialogellipticalarc.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -58,16 +58,18 @@ * @param parent parent widget */ DialogEllipticalArc::DialogEllipticalArc(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogEllipticalArc), - m_timerRadius1(new QTimer(this)), - m_timerRadius2(new QTimer(this)), - m_timerF1(new QTimer(this)), - m_timerF2(new QTimer(this)), - m_timerRotationAngle(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogEllipticalArc), + m_timerRadius1(new QTimer(this)), + m_timerRadius2(new QTimer(this)), + m_timerF1(new QTimer(this)), + m_timerF2(new QTimer(this)), + m_timerRotationAngle(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + this->m_formulaBaseHeightRadius1 = ui->plainTextEditRadius1->height(); this->m_formulaBaseHeightRadius2 = ui->plainTextEditRadius2->height(); this->m_formulaBaseHeightF1 = ui->plainTextEditF1->height(); @@ -99,7 +101,9 @@ DialogEllipticalArc::DialogEllipticalArc(const VContainer *data, quint32 toolId, FillComboBoxPoints(ui->comboBoxBasePoint); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); connect(ui->toolButtonExprRadius1, &QPushButton::clicked, this, &DialogEllipticalArc::FXRadius1); connect(ui->toolButtonExprRadius2, &QPushButton::clicked, this, &DialogEllipticalArc::FXRadius2); @@ -107,37 +111,27 @@ DialogEllipticalArc::DialogEllipticalArc(const VContainer *data, quint32 toolId, connect(ui->toolButtonExprF2, &QPushButton::clicked, this, &DialogEllipticalArc::FXF2); connect(ui->toolButtonExprRotationAngle, &QPushButton::clicked, this, &DialogEllipticalArc::FXRotationAngle); - connect(ui->plainTextEditRadius1, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerRadius1->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditRadius1, &QPlainTextEdit::textChanged, this, + [this]() { m_timerRadius1->start(formulaTimerTimeout); }); - connect(ui->plainTextEditRadius2, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerRadius2->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditRadius2, &QPlainTextEdit::textChanged, this, + [this]() { m_timerRadius2->start(formulaTimerTimeout); }); - connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerF1->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, + [this]() { m_timerF1->start(formulaTimerTimeout); }); - connect(ui->plainTextEditF2, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerF2->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditF2, &QPlainTextEdit::textChanged, this, + [this]() { m_timerF2->start(formulaTimerTimeout); }); - connect(ui->plainTextEditRotationAngle, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerRotationAngle->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditRotationAngle, &QPlainTextEdit::textChanged, this, + [this]() { m_timerRotationAngle->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLengthRadius1, &QPushButton::clicked, this, &DialogEllipticalArc::DeployRadius1TextEdit); connect(ui->pushButtonGrowLengthRadius2, &QPushButton::clicked, this, &DialogEllipticalArc::DeployRadius2TextEdit); connect(ui->pushButtonGrowLengthF1, &QPushButton::clicked, this, &DialogEllipticalArc::DeployF1TextEdit); connect(ui->pushButtonGrowLengthF2, &QPushButton::clicked, this, &DialogEllipticalArc::DeployF2TextEdit); - connect(ui->pushButtonGrowLengthRotationAngle, &QPushButton::clicked, - this, &DialogEllipticalArc::DeployRotationAngleTextEdit); + connect(ui->pushButtonGrowLengthRotationAngle, &QPushButton::clicked, this, + &DialogEllipticalArc::DeployRotationAngleTextEdit); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogEllipticalArc::ValidateAlias); @@ -194,8 +188,8 @@ auto DialogEllipticalArc::GetRadius1() const -> QString */ void DialogEllipticalArc::SetRadius1(const QString &value) { - m_radius1 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_radius1 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_radius1.length() > 80) { @@ -227,8 +221,8 @@ auto DialogEllipticalArc::GetRadius2() const -> QString */ void DialogEllipticalArc::SetRadius2(const QString &value) { - m_radius2 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_radius2 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_radius2.length() > 80) { @@ -260,8 +254,8 @@ auto DialogEllipticalArc::GetF1() const -> QString */ void DialogEllipticalArc::SetF1(const QString &value) { - m_f1 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_f1 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_f1.length() > 80) { @@ -293,8 +287,8 @@ auto DialogEllipticalArc::GetF2() const -> QString */ void DialogEllipticalArc::SetF2(const QString &value) { - m_f2 = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_f2 = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_f2.length() > 80) { @@ -316,7 +310,8 @@ void DialogEllipticalArc::SetF2(const QString &value) */ auto DialogEllipticalArc::GetRotationAngle() const -> QString { - return VTranslateVars::TryFormulaFromUser(m_rotationAngle, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + return VTranslateVars::TryFormulaFromUser(m_rotationAngle, + VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- @@ -326,8 +321,8 @@ auto DialogEllipticalArc::GetRotationAngle() const -> QString */ void DialogEllipticalArc::SetRotationAngle(const QString &value) { - m_rotationAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_rotationAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_rotationAngle.length() > 80) { @@ -454,6 +449,26 @@ void DialogEllipticalArc::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogEllipticalArc::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprRadius1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprRadius2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprF1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprF2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprRotationAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_1->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_7->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_8->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_9->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_12->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogEllipticalArc::FXRadius1() { @@ -593,8 +608,8 @@ void DialogEllipticalArc::ShowDialog(bool click) if (m_stage == 0) // radius 1 { - //Radius of point circle, but little bigger. Need to handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need to handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -611,8 +626,8 @@ void DialogEllipticalArc::ShowDialog(bool click) QPointF p = VGObject::ClosestPoint(radius2Line, scene->getScenePos()); line = QLineF(static_cast(*center), p); - //Radius of point circle, but little bigger. Need to handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need to handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -656,7 +671,7 @@ void DialogEllipticalArc::ShowDialog(bool click) */ void DialogEllipticalArc::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -724,6 +739,24 @@ void DialogEllipticalArc::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogEllipticalArc::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogEllipticalArc::ValidateAlias() { diff --git a/src/libs/vtools/dialogs/tools/dialogellipticalarc.h b/src/libs/vtools/dialogs/tools/dialogellipticalarc.h index 2c6c9e345..f4a6be789 100644 --- a/src/libs/vtools/dialogs/tools/dialogellipticalarc.h +++ b/src/libs/vtools/dialogs/tools/dialogellipticalarc.h @@ -109,6 +109,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -188,6 +189,8 @@ private: void EvalAngles(); void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogellipticalarc.ui b/src/libs/vtools/dialogs/tools/dialogellipticalarc.ui index ccbace2bd..d145f15bf 100644 --- a/src/libs/vtools/dialogs/tools/dialogellipticalarc.ui +++ b/src/libs/vtools/dialogs/tools/dialogellipticalarc.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -285,11 +285,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -305,7 +305,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -471,11 +471,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -491,7 +491,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -657,11 +657,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -677,7 +677,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -843,11 +843,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -863,7 +863,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogendline.cpp b/src/libs/vtools/dialogs/tools/dialogendline.cpp index 010c7f485..adc699fa8 100644 --- a/src/libs/vtools/dialogs/tools/dialogendline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogendline.cpp @@ -40,19 +40,20 @@ #include #include -#include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" -#include "../vpatterndb/vtranslatevars.h" -#include "../vwidgets/vmaingraphicsscene.h" -#include "../vwidgets/vabstractmainwindow.h" #include "../../visualization/line/vistoolendline.h" #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogendline.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/global.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "../vwidgets/vmaingraphicsscene.h" +#include "ui_dialogendline.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -61,29 +62,31 @@ * @param parent parent widget */ DialogEndLine::DialogEndLine(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogEndLine), - formulaLength(), - formulaAngle(), - formulaBaseHeight(0), - formulaBaseHeightAngle(0), - pointName(), - m_firstRelease(false), - timerFormulaLength(new QTimer(this)), - timerFormulaAngle(new QTimer(this)), - flagFormula(false), - flagError(false), - flagName(true) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogEndLine), + formulaLength(), + formulaAngle(), + formulaBaseHeight(0), + formulaBaseHeightAngle(0), + pointName(), + m_firstRelease(false), + timerFormulaLength(new QTimer(this)), + timerFormulaAngle(new QTimer(this)), + flagFormula(false), + flagError(false), + flagName(true) { ui->setupUi(this); + InitIcons(); + timerFormulaLength->setSingleShot(true); timerFormulaAngle->setSingleShot(true); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->formulaBaseHeight = ui->plainTextEditFormula->height(); this->formulaBaseHeightAngle = ui->plainTextEditAngle->height(); @@ -94,27 +97,25 @@ DialogEndLine::DialogEndLine(const VContainer *data, quint32 toolId, QWidget *pa flagFormula = false; FillComboBoxPoints(ui->comboBoxBasePoint); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogEndLine::FXLength); connect(ui->toolButtonExprAngle, &QPushButton::clicked, this, &DialogEndLine::FXAngle); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, pointName, this->data, flagName); - CheckState(); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, pointName, this->data, flagName); + CheckState(); + }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - timerFormulaLength->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { timerFormulaLength->start(formulaTimerTimeout); }); - connect(ui->plainTextEditAngle, &QPlainTextEdit::textChanged, this, [this]() - { - timerFormulaAngle->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditAngle, &QPlainTextEdit::textChanged, this, + [this]() { timerFormulaAngle->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogEndLine::DeployFormulaTextEdit); connect(ui->pushButtonGrowLengthAngle, &QPushButton::clicked, this, &DialogEndLine::DeployAngleTextEdit); @@ -207,7 +208,7 @@ void DialogEndLine::FXLength() */ void DialogEndLine::ChosenObject(quint32 id, const SceneObject &type) { - if (not prepare)// After first choose we ignore all objects + if (not prepare) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -260,8 +261,8 @@ void DialogEndLine::SetTypeLine(const QString &value) */ void DialogEndLine::SetFormula(const QString &value) { - formulaLength = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaLength = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formulaLength.length() > 80) @@ -284,8 +285,8 @@ void DialogEndLine::SetFormula(const QString &value) */ void DialogEndLine::SetAngle(const QString &value) { - formulaAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formulaAngle.length() > 80) @@ -352,15 +353,15 @@ void DialogEndLine::ShowDialog(bool click) const QSharedPointer point = data->GeometricObject(GetBasePointId()); QLineF line = QLineF(static_cast(*point), scene->getScenePos()); - //Radius of point circle, but little bigger. Need handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } } auto *line = qobject_cast(vis); SCASSERT(line != nullptr) - SetAngle(line->Angle());//Show in dialog angle what user choose + SetAngle(line->Angle()); // Show in dialog angle what user choose SetFormula(line->Length()); FinishCreating(); @@ -398,6 +399,24 @@ void DialogEndLine::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogEndLine::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogEndLine::FinishCreating() { @@ -407,6 +426,20 @@ void DialogEndLine::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogEndLine::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_4->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_5->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- DialogEndLine::~DialogEndLine() { @@ -436,7 +469,8 @@ auto DialogEndLine::GetTypeLine() const -> QString */ auto DialogEndLine::GetFormula() const -> QString { - return VTranslateVars::TryFormulaFromUser(formulaLength, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + return VTranslateVars::TryFormulaFromUser(formulaLength, + VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogendline.h b/src/libs/vtools/dialogs/tools/dialogendline.h index f59f575bc..b6125e5ff 100644 --- a/src/libs/vtools/dialogs/tools/dialogendline.h +++ b/src/libs/vtools/dialogs/tools/dialogendline.h @@ -96,6 +96,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -126,6 +127,8 @@ private: bool flagName; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogendline.ui b/src/libs/vtools/dialogs/tools/dialogendline.ui index e27cb3fe2..0102dce13 100644 --- a/src/libs/vtools/dialogs/tools/dialogendline.ui +++ b/src/libs/vtools/dialogs/tools/dialogendline.ui @@ -117,11 +117,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -143,7 +143,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -312,11 +312,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -338,7 +338,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp index 8f6402450..dff10cee4 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp @@ -42,32 +42,31 @@ #include #include #include -#include #include -#include "../../visualization/visualization.h" #include "../../visualization/line/operation/vistoolflippingbyaxis.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../ifc/xml/vdomdocument.h" #include "../qmuparser/qmudef.h" #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../../tools/drawTools/operation/vabstractoperation.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogflippingbyaxis.h" -#include "../../tools/drawTools/operation/vabstractoperation.h" //--------------------------------------------------------------------------------------------------------------------- DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogFlippingByAxis), - stage1(true), - m_suffix(), - flagName(true), - flagGroupName(true), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogFlippingByAxis), + stage1(true), + m_suffix(), + flagName(true), + flagGroupName(true), + flagError(false) { ui->setupUi(this); @@ -77,15 +76,17 @@ DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolI FillComboBoxPoints(ui->comboBoxOriginPoint); FillComboBoxAxisType(ui->comboBoxAxisType); - FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + OperationLineStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text)), + TypeLineDefault); FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); ui->comboBoxOriginPoint->setCurrentIndex(-1); connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogFlippingByAxis::SuffixChanged); connect(ui->lineEditVisibilityGroup, &QLineEdit::textChanged, this, &DialogFlippingByAxis::GroupNameChanged); - connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged, - this, &DialogFlippingByAxis::PointChanged); + connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged, this, &DialogFlippingByAxis::PointChanged); connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogFlippingByAxis::ShowSourceDetails); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogFlippingByAxis::AliasChanged); @@ -94,7 +95,6 @@ DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolI connect(ui->comboBoxColor, QOverload::of(&QComboBox::currentIndexChanged), this, &DialogFlippingByAxis::ColorChanged); - vis = new VisToolFlippingByAxis(data); ui->tabWidget->setCurrentIndex(0); @@ -211,7 +211,7 @@ void DialogFlippingByAxis::ShowDialog(bool click) stage1 = false; VMainGraphicsScene *scene = - qobject_cast(VAbstractValApplication::VApp()->getCurrentScene()); + qobject_cast(VAbstractValApplication::VApp()->getCurrentScene()); SCASSERT(scene != nullptr) scene->clearSelection(); @@ -265,7 +265,7 @@ void DialogFlippingByAxis::SetSourceObjects(const QVector &value) //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByAxis::ChosenObject(quint32 id, const SceneObject &type) { - if (not stage1 && not prepare)// After first choose we ignore all objects + if (not stage1 && not prepare) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -321,7 +321,7 @@ void DialogFlippingByAxis::SelectedObject(bool selected, quint32 object, quint32 //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByAxis::SuffixChanged() { - QLineEdit* edit = qobject_cast(sender()); + QLineEdit *edit = qobject_cast(sender()); if (edit) { const QString suffix = edit->text(); @@ -361,7 +361,7 @@ void DialogFlippingByAxis::SuffixChanged() //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByAxis::GroupNameChanged() { - QLineEdit* edit = qobject_cast(sender()); + QLineEdit *edit = qobject_cast(sender()); if (edit) { const QString name = edit->text(); @@ -445,7 +445,8 @@ void DialogFlippingByAxis::ShowSourceDetails(int row) { const QSharedPointer curve = data->GeometricObject(sourceItem.id); int index = ui->comboBoxColor->currentIndex(); - ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->palette().color(QPalette::Text), + ui->comboBoxColor->iconSize().height(), curve->GetColor())); } ui->comboBoxPenStyle->setEnabled(true); @@ -526,7 +527,7 @@ void DialogFlippingByAxis::SaveData() sourceObjects.clear(); sourceObjects.reserve(ui->listWidget->count()); - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { @@ -620,7 +621,7 @@ void DialogFlippingByAxis::FillSourceList() //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByAxis::ValidateSourceAliases() { - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp b/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp index 242f62c69..fcdf6a3b9 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp @@ -42,37 +42,36 @@ #include #include #include -#include #include -#include "../../visualization/visualization.h" #include "../../visualization/line/operation/vistoolflippingbyline.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../ifc/xml/vdomdocument.h" #include "../qmuparser/qmudef.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/compatibility.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "../vmisc/compatibility.h" #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../../tools/drawTools/operation/vabstractoperation.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vabstractmainwindow.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogflippingbyline.h" -#include "../../tools/drawTools/operation/vabstractoperation.h" //--------------------------------------------------------------------------------------------------------------------- DialogFlippingByLine::DialogFlippingByLine(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogFlippingByLine), - stage1(true), - m_suffix(), - flagName(true), - flagGroupName(true), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogFlippingByLine), + stage1(true), + m_suffix(), + flagName(true), + flagGroupName(true), + flagError(false) { ui->setupUi(this); @@ -82,15 +81,16 @@ DialogFlippingByLine::DialogFlippingByLine(const VContainer *data, quint32 toolI FillComboBoxPoints(ui->comboBoxFirstLinePoint); FillComboBoxPoints(ui->comboBoxSecondLinePoint); - FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + OperationLineStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text)), + TypeLineDefault); FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogFlippingByLine::SuffixChanged); connect(ui->lineEditVisibilityGroup, &QLineEdit::textChanged, this, &DialogFlippingByLine::GroupNameChanged); - connect(ui->comboBoxFirstLinePoint, &QComboBox::currentTextChanged, - this, &DialogFlippingByLine::PointChanged); - connect(ui->comboBoxSecondLinePoint, &QComboBox::currentTextChanged, - this, &DialogFlippingByLine::PointChanged); + connect(ui->comboBoxFirstLinePoint, &QComboBox::currentTextChanged, this, &DialogFlippingByLine::PointChanged); + connect(ui->comboBoxSecondLinePoint, &QComboBox::currentTextChanged, this, &DialogFlippingByLine::PointChanged); connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogFlippingByLine::ShowSourceDetails); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogFlippingByLine::AliasChanged); @@ -210,7 +210,7 @@ void DialogFlippingByLine::ShowDialog(bool click) stage1 = false; VMainGraphicsScene *scene = - qobject_cast(VAbstractValApplication::VApp()->getCurrentScene()); + qobject_cast(VAbstractValApplication::VApp()->getCurrentScene()); SCASSERT(scene != nullptr) scene->clearSelection(); @@ -263,7 +263,7 @@ void DialogFlippingByLine::SetSourceObjects(const QVector &value) //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByLine::ChosenObject(quint32 id, const SceneObject &type) { - if (not stage1 && not prepare)// After first choose we ignore all objects + if (not stage1 && not prepare) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -348,7 +348,7 @@ void DialogFlippingByLine::SelectedObject(bool selected, quint32 object, quint32 //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByLine::SuffixChanged() { - QLineEdit* edit = qobject_cast(sender()); + QLineEdit *edit = qobject_cast(sender()); if (edit) { const QString suffix = edit->text(); @@ -388,7 +388,7 @@ void DialogFlippingByLine::SuffixChanged() //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByLine::GroupNameChanged() { - QLineEdit* edit = qobject_cast(sender()); + QLineEdit *edit = qobject_cast(sender()); if (edit) { const QString name = edit->text(); @@ -461,7 +461,8 @@ void DialogFlippingByLine::ShowSourceDetails(int row) SetValue(ui->comboBoxPenStyle, sourceItem.penStyle, TypeLineDefault); if (sourceItem.penStyle.isEmpty() || sourceItem.penStyle == TypeLineDefault) - {; + { + ; int index = ui->comboBoxPenStyle->currentIndex(); ui->comboBoxPenStyle->setItemText(index, '<' + tr("Default") + '>'); } @@ -472,7 +473,8 @@ void DialogFlippingByLine::ShowSourceDetails(int row) { const QSharedPointer curve = data->GeometricObject(sourceItem.id); int index = ui->comboBoxColor->currentIndex(); - ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->palette().color(QPalette::Text), + ui->comboBoxColor->iconSize().height(), curve->GetColor())); } ui->comboBoxPenStyle->setEnabled(true); @@ -553,7 +555,7 @@ void DialogFlippingByLine::SaveData() sourceObjects.clear(); sourceObjects.reserve(ui->listWidget->count()); - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { @@ -593,7 +595,7 @@ void DialogFlippingByLine::PointChanged() quint32 id1 = getCurrentObjectId(ui->comboBoxFirstLinePoint); auto obj1 = std::find_if(sourceObjects.begin(), sourceObjects.end(), - [id1](const SourceItem &sItem) { return sItem.id == id1; }); + [id1](const SourceItem &sItem) { return sItem.id == id1; }); quint32 id2 = getCurrentObjectId(ui->comboBoxSecondLinePoint); auto obj2 = std::find_if(sourceObjects.begin(), sourceObjects.end(), @@ -658,7 +660,7 @@ void DialogFlippingByLine::FillSourceList() //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByLine::ValidateSourceAliases() { - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { diff --git a/src/libs/vtools/dialogs/tools/dialogheight.cpp b/src/libs/vtools/dialogs/tools/dialogheight.cpp index cfd221539..4e77c6d0b 100644 --- a/src/libs/vtools/dialogs/tools/dialogheight.cpp +++ b/src/libs/vtools/dialogs/tools/dialogheight.cpp @@ -40,9 +40,9 @@ #include #include +#include "../../visualization/line/visline.h" #include "../../visualization/line/vistoolheight.h" #include "../../visualization/visualization.h" -#include "../../visualization/line/visline.h" #include "../ifc/xml/vabstractpattern.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" @@ -57,34 +57,34 @@ * @param parent parent widget */ DialogHeight::DialogHeight(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogHeight) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogHeight) { ui->setupUi(this); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); InitOkCancelApply(ui); FillComboBoxPoints(ui->comboBoxBasePoint); FillComboBoxPoints(ui->comboBoxP1Line); FillComboBoxPoints(ui->comboBoxP2Line); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxLineColors(ui->comboBoxLineColor); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->comboBoxBasePoint, &QComboBox::currentTextChanged, - this, &DialogHeight::PointNameChanged); - connect(ui->comboBoxP1Line, &QComboBox::currentTextChanged, - this, &DialogHeight::PointNameChanged); - connect(ui->comboBoxP2Line, &QComboBox::currentTextChanged, - this, &DialogHeight::PointNameChanged); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->comboBoxBasePoint, &QComboBox::currentTextChanged, this, &DialogHeight::PointNameChanged); + connect(ui->comboBoxP1Line, &QComboBox::currentTextChanged, this, &DialogHeight::PointNameChanged); + connect(ui->comboBoxP2Line, &QComboBox::currentTextChanged, this, &DialogHeight::PointNameChanged); vis = new VisToolHeight(data); @@ -188,7 +188,7 @@ void DialogHeight::SetLineColor(const QString &value) */ void DialogHeight::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -236,7 +236,7 @@ void DialogHeight::ChosenObject(quint32 id, const SceneObject &type) } } } - break; + break; default: break; } diff --git a/src/libs/vtools/dialogs/tools/dialogline.cpp b/src/libs/vtools/dialogs/tools/dialogline.cpp index a1a5ac95f..fc6af1992 100644 --- a/src/libs/vtools/dialogs/tools/dialogline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogline.cpp @@ -36,8 +36,8 @@ #include #include -#include "../../visualization/visualization.h" #include "../../visualization/line/vistoolline.h" +#include "../../visualization/visualization.h" #include "../ifc/ifcdef.h" #include "dialogtool.h" #include "ui_dialogline.h" @@ -49,9 +49,9 @@ * @param parent parent widget */ DialogLine::DialogLine(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogLine), - flagError(true) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogLine), + flagError(true) { ui->setupUi(this); InitOkCancelApply(ui); @@ -60,16 +60,15 @@ DialogLine::DialogLine(const VContainer *data, quint32 toolId, QWidget *parent) FillComboBoxPoints(ui->comboBoxSecondPoint); FillComboBoxLineColors(ui->comboBoxLineColor); - QMap stylesPics = LineStylesPics(); - stylesPics.remove(TypeLineNone);// Prevent hiding line + QMap stylesPics = LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text)); + stylesPics.remove(TypeLineNone); // Prevent hiding line FillComboBoxTypeLine(ui->comboBoxLineType, stylesPics); number = 0; - connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, - this, &DialogLine::PointNameChanged); - connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, - this, &DialogLine::PointNameChanged); + connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, this, &DialogLine::PointNameChanged); + connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, this, &DialogLine::PointNameChanged); vis = new VisToolLine(data); @@ -179,7 +178,7 @@ void DialogLine::SaveData() */ void DialogLine::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare == false)// After first choose we ignore all objects + if (prepare == false) // After first choose we ignore all objects { if (type == SceneObject::Point) { diff --git a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp index 3e41f9a98..f2a4466b5 100644 --- a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp @@ -44,41 +44,44 @@ #include #include -#include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" -#include "../vpatterndb/vtranslatevars.h" -#include "../vwidgets/vmaingraphicsscene.h" -#include "../vwidgets/vabstractmainwindow.h" -#include "../vwidgets/global.h" #include "../../visualization/line/vistoollineintersectaxis.h" #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" +#include "../vwidgets/global.h" +#include "../vwidgets/vabstractmainwindow.h" +#include "../vwidgets/vmaingraphicsscene.h" #include "ui_dialoglineintersectaxis.h" //--------------------------------------------------------------------------------------------------------------------- DialogLineIntersectAxis::DialogLineIntersectAxis(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogLineIntersectAxis), - formulaAngle(), - formulaBaseHeightAngle(0), - pointName(), - m_firstRelease(false), - timerFormula(new QTimer(this)), - flagFormula(false), - flagError(true), - flagName(true) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogLineIntersectAxis), + formulaAngle(), + formulaBaseHeightAngle(0), + pointName(), + m_firstRelease(false), + timerFormula(new QTimer(this)), + flagFormula(false), + flagError(true), + flagName(true) { ui->setupUi(this); + InitIcons(); + timerFormula->setSingleShot(true); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->formulaBaseHeightAngle = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -87,27 +90,26 @@ DialogLineIntersectAxis::DialogLineIntersectAxis(const VContainer *data, quint32 FillComboBoxPoints(ui->comboBoxAxisPoint); FillComboBoxPoints(ui->comboBoxFirstLinePoint); FillComboBoxPoints(ui->comboBoxSecondLinePoint); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonExprAngle, &QPushButton::clicked, this, &DialogLineIntersectAxis::FXAngle); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, pointName, this->data, flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, pointName, this->data, flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLengthAngle, &QPushButton::clicked, this, &DialogLineIntersectAxis::DeployAngleTextEdit); connect(timerFormula, &QTimer::timeout, this, &DialogLineIntersectAxis::EvalAngle); - connect(ui->comboBoxFirstLinePoint, &QComboBox::currentTextChanged, - this, &DialogLineIntersectAxis::PointNameChanged); - connect(ui->comboBoxSecondLinePoint, &QComboBox::currentTextChanged, - this, &DialogLineIntersectAxis::PointNameChanged); - connect(ui->comboBoxAxisPoint, &QComboBox::currentTextChanged, - this, &DialogLineIntersectAxis::PointNameChanged); + connect(ui->comboBoxFirstLinePoint, &QComboBox::currentTextChanged, this, + &DialogLineIntersectAxis::PointNameChanged); + connect(ui->comboBoxSecondLinePoint, &QComboBox::currentTextChanged, this, + &DialogLineIntersectAxis::PointNameChanged); + connect(ui->comboBoxAxisPoint, &QComboBox::currentTextChanged, this, &DialogLineIntersectAxis::PointNameChanged); vis = new VisToolLineIntersectAxis(data); @@ -156,8 +158,8 @@ auto DialogLineIntersectAxis::GetAngle() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogLineIntersectAxis::SetAngle(const QString &value) { - formulaAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formulaAngle.length() > 80) @@ -254,8 +256,8 @@ void DialogLineIntersectAxis::ShowDialog(bool click) const QSharedPointer point = data->GeometricObject(GetBasePointId()); QLineF line = QLineF(static_cast(*point), scene->getScenePos()); - //Radius of point circle, but little bigger. Need handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -263,18 +265,18 @@ void DialogLineIntersectAxis::ShowDialog(bool click) auto *line = qobject_cast(vis); SCASSERT(line != nullptr) - SetAngle(line->Angle());//Show in dialog angle what user choose + SetAngle(line->Angle()); // Show in dialog angle what user choose line->SetMode(Mode::Show); emit ToolTip(QString()); - DialogAccepted();// Just set default values and don't show dialog + DialogAccepted(); // Just set default values and don't show dialog } } //--------------------------------------------------------------------------------------------------------------------- void DialogLineIntersectAxis::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare == false)// After first choose we ignore all objects + if (prepare == false) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -329,7 +331,7 @@ void DialogLineIntersectAxis::ChosenObject(quint32 id, const SceneObject &type) } } } - break; + break; default: break; } @@ -426,6 +428,33 @@ void DialogLineIntersectAxis::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogLineIntersectAxis::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogLineIntersectAxis::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogLineIntersectAxis::SetNotes(const QString ¬es) { diff --git a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.h b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.h index bdf086139..a73bb5417 100644 --- a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.h +++ b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.h @@ -90,6 +90,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -111,6 +112,8 @@ private: /** @brief number number of handled objects */ qint32 number{0}; + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.ui b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.ui index 1ca3ed8cb..d16958a32 100644 --- a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.ui +++ b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogmove.cpp b/src/libs/vtools/dialogs/tools/dialogmove.cpp index 85b523930..3fd40ba62 100644 --- a/src/libs/vtools/dialogs/tools/dialogmove.cpp +++ b/src/libs/vtools/dialogs/tools/dialogmove.cpp @@ -45,55 +45,55 @@ #include #include #include -#include #include -#include "../../visualization/visualization.h" +#include "../../tools/drawTools/operation/vabstractoperation.h" #include "../../visualization/line/operation/vistoolmove.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" -#include "../ifc/xml/vdomdocument.h" #include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" -#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "../vmisc/compatibility.h" -#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vmisc/backport/qoverload.h" -#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogmove.h" -#include "../../tools/drawTools/operation/vabstractoperation.h" + +#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../vmisc/backport/qoverload.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) //--------------------------------------------------------------------------------------------------------------------- DialogMove::DialogMove(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogMove), - timerAngle(new QTimer(this)), - timerRotationAngle(new QTimer(this)), - timerLength(new QTimer(this)), - formulaAngle(), - formulaRotationAngle(), - formulaLength(), - formulaBaseHeightAngle(0), - formulaBaseHeightRotationAngle(0), - formulaBaseHeightLength(0), - stage1(true), - stage2(false), - m_suffix(), - optionalRotationOrigin(false), - flagAngle(false), - flagRotationAngle(false), - flagLength(false), - flagName(true), - flagGroupName(true) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogMove), + timerAngle(new QTimer(this)), + timerRotationAngle(new QTimer(this)), + timerLength(new QTimer(this)), + formulaAngle(), + formulaRotationAngle(), + formulaLength(), + formulaBaseHeightAngle(0), + formulaBaseHeightRotationAngle(0), + formulaBaseHeightLength(0), + stage1(true), + stage2(false), + m_suffix(), + optionalRotationOrigin(false), + flagAngle(false), + flagRotationAngle(false), + flagLength(false), + flagName(true), + flagGroupName(true) { ui->setupUi(this); + InitIcons(); + this->formulaBaseHeightAngle = ui->plainTextEditAngle->height(); ui->plainTextEditAngle->installEventFilter(this); @@ -116,7 +116,10 @@ DialogMove::DialogMove(const VContainer *data, quint32 toolId, QWidget *parent) InitOkCancelApply(ui); - FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + OperationLineStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text)), + TypeLineDefault); FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); FillComboBoxPoints(ui->comboBoxRotationOriginPoint); @@ -129,20 +132,14 @@ DialogMove::DialogMove(const VContainer *data, quint32 toolId, QWidget *parent) connect(ui->toolButtonExprAngle, &QPushButton::clicked, this, &DialogMove::FXAngle); connect(ui->toolButtonExprRotationAngle, &QPushButton::clicked, this, &DialogMove::FXRotationAngle); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogMove::FXLength); - connect(ui->plainTextEditAngle, &QPlainTextEdit::textChanged, this, [this]() - { - timerAngle->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditAngle, &QPlainTextEdit::textChanged, this, + [this]() { timerAngle->start(formulaTimerTimeout); }); - connect(ui->plainTextEditRotationAngle, &QPlainTextEdit::textChanged, this, [this]() - { - timerRotationAngle->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditRotationAngle, &QPlainTextEdit::textChanged, this, + [this]() { timerRotationAngle->start(formulaTimerTimeout); }); - connect(ui->plainTextEditLength, &QPlainTextEdit::textChanged, this, [this]() - { - timerLength->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditLength, &QPlainTextEdit::textChanged, this, + [this]() { timerLength->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowAngle, &QPushButton::clicked, this, &DialogMove::DeployAngleTextEdit); connect(ui->pushButtonGrowRotationAngle, &QPushButton::clicked, this, &DialogMove::DeployRotationAngleTextEdit); @@ -177,8 +174,8 @@ auto DialogMove::GetAngle() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogMove::SetAngle(const QString &value) { - formulaAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formulaAngle.length() > 80) { @@ -186,7 +183,7 @@ void DialogMove::SetAngle(const QString &value) } ui->plainTextEditAngle->setPlainText(formulaAngle); - VisToolMove *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetAngle(formulaAngle); @@ -196,14 +193,15 @@ void DialogMove::SetAngle(const QString &value) //--------------------------------------------------------------------------------------------------------------------- auto DialogMove::GetLength() const -> QString { - return VTranslateVars::TryFormulaFromUser(formulaLength, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + return VTranslateVars::TryFormulaFromUser(formulaLength, + VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- void DialogMove::SetLength(const QString &value) { - formulaLength = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaLength = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formulaLength.length() > 80) { @@ -211,7 +209,7 @@ void DialogMove::SetLength(const QString &value) } ui->plainTextEditLength->setPlainText(formulaLength); - VisToolMove *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetLength(formulaLength); @@ -221,14 +219,15 @@ void DialogMove::SetLength(const QString &value) //--------------------------------------------------------------------------------------------------------------------- auto DialogMove::GetRotationAngle() const -> QString { - return VTranslateVars::TryFormulaFromUser(formulaRotationAngle, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + return VTranslateVars::TryFormulaFromUser(formulaRotationAngle, + VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- void DialogMove::SetRotationAngle(const QString &value) { - formulaRotationAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaRotationAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formulaRotationAngle.length() > 80) { @@ -236,7 +235,7 @@ void DialogMove::SetRotationAngle(const QString &value) } ui->plainTextEditRotationAngle->setPlainText(formulaRotationAngle); - VisToolMove *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetRotationAngle(formulaRotationAngle); @@ -266,7 +265,7 @@ auto DialogMove::GetRotationOrigPointId() const -> quint32 void DialogMove::SetRotationOrigPointId(const quint32 &value) { ChangeCurrentData(ui->comboBoxRotationOriginPoint, value); - VisToolMove *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetRotationOriginPointId(value); } @@ -361,10 +360,10 @@ void DialogMove::ShowDialog(bool click) if (operation->LengthValue() > 0) { - formulaAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(operation->Angle(), VAbstractApplication::VApp()->Settings()->GetOsSeparator()); - formulaLength = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(operation->Length(), VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + operation->Angle(), VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaLength = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + operation->Length(), VAbstractApplication::VApp()->Settings()->GetOsSeparator()); operation->SetAngle(formulaAngle); operation->SetLength(formulaLength); operation->RefreshGeometry(); @@ -389,10 +388,10 @@ void DialogMove::ShowDialog(bool click) } else { - SetAngle(VAbstractApplication::VApp()->TrVars() - ->FormulaFromUser(formulaAngle, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); - SetLength(VAbstractApplication::VApp()->TrVars() - ->FormulaFromUser(formulaLength, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + SetAngle(VAbstractApplication::VApp()->TrVars()->FormulaFromUser( + formulaAngle, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + SetLength(VAbstractApplication::VApp()->TrVars()->FormulaFromUser( + formulaLength, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); SetRotationAngle(operation->RotationAngle()); setModal(true); emit ToolTip(QString()); @@ -407,7 +406,7 @@ void DialogMove::ShowDialog(bool click) //--------------------------------------------------------------------------------------------------------------------- void DialogMove::ChosenObject(quint32 id, const SceneObject &type) { - if (not stage1 && stage2 && prepare)// After first choose we ignore all objects + if (not stage1 && stage2 && prepare) // After first choose we ignore all objects { if (type == SceneObject::Point && QGuiApplication::keyboardModifiers() == Qt::ControlModifier) { @@ -434,7 +433,7 @@ void DialogMove::SelectedObject(bool selected, quint32 object, quint32 tool) [object](const SourceItem &sItem) { return sItem.id == object; }); if (selected) { - if (obj == sourceObjects.cend()) + if (obj == sourceObjects.end()) { SourceItem item; item.id = object; @@ -443,7 +442,7 @@ void DialogMove::SelectedObject(bool selected, quint32 object, quint32 tool) } else { - if (obj != sourceObjects.cend()) + if (obj != sourceObjects.end()) { sourceObjects.erase(obj); } @@ -460,7 +459,8 @@ void DialogMove::DeployAngleTextEdit() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::DeployRotationAngleTextEdit() { - DeployFormula(this, ui->plainTextEditRotationAngle, ui->pushButtonGrowRotationAngle, formulaBaseHeightRotationAngle); + DeployFormula(this, ui->plainTextEditRotationAngle, ui->pushButtonGrowRotationAngle, + formulaBaseHeightRotationAngle); } //--------------------------------------------------------------------------------------------------------------------- @@ -472,7 +472,7 @@ void DialogMove::DeployLengthTextEdit() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::FXAngle() { - DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit angle")); dialog->SetFormula(GetAngle()); dialog->setPostfix(degreeSymbol); @@ -486,7 +486,7 @@ void DialogMove::FXAngle() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::FXRotationAngle() { - DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit rotation angle")); dialog->SetFormula(GetRotationAngle()); dialog->setPostfix(degreeSymbol); @@ -500,7 +500,7 @@ void DialogMove::FXRotationAngle() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::FXLength() { - DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit length")); dialog->SetFormula(GetLength()); dialog->setPostfix(UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true)); @@ -514,7 +514,7 @@ void DialogMove::FXLength() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::SuffixChanged() { - QLineEdit* edit = qobject_cast(sender()); + auto *edit = qobject_cast(sender()); if (edit) { const QString suffix = edit->text(); @@ -531,7 +531,7 @@ void DialogMove::SuffixChanged() { QRegularExpression rx(NameRegExp()); const QStringList uniqueNames = data->AllUniqueNames(); - for (auto &uniqueName : uniqueNames) + for (const auto &uniqueName : uniqueNames) { const QString name = uniqueName + suffix; if (not rx.match(name).hasMatch() || not data->IsUnique(name)) @@ -554,7 +554,7 @@ void DialogMove::SuffixChanged() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::GroupNameChanged() { - QLineEdit* edit = qobject_cast(sender()); + auto *edit = qobject_cast(sender()); if (edit) { const QString name = edit->text(); @@ -639,7 +639,8 @@ void DialogMove::ShowSourceDetails(int row) { const QSharedPointer curve = data->GeometricObject(sourceItem.id); int index = ui->comboBoxColor->currentIndex(); - ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->palette().color(QPalette::Text), + ui->comboBoxColor->iconSize().height(), curve->GetColor())); } ui->comboBoxPenStyle->setEnabled(true); @@ -723,7 +724,7 @@ void DialogMove::SaveData() sourceObjects.clear(); sourceObjects.reserve(ui->listWidget->count()); - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { @@ -732,7 +733,7 @@ void DialogMove::SaveData() } } - VisToolMove *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetObjects(SourceToObjects(sourceObjects)); @@ -776,7 +777,7 @@ void DialogMove::SetSourceObjects(const QVector &value) sourceObjects = value; FillSourceList(); - VisToolMove *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetObjects(SourceToObjects(sourceObjects)); } @@ -870,7 +871,7 @@ void DialogMove::FillSourceList() //--------------------------------------------------------------------------------------------------------------------- void DialogMove::ValidateSourceAliases() { - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { @@ -913,6 +914,22 @@ void DialogMove::SetAliasValid(quint32 id, bool valid) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogMove::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprRotationAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_2->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_4->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogMove::SetNotes(const QString ¬es) { diff --git a/src/libs/vtools/dialogs/tools/dialogmove.h b/src/libs/vtools/dialogs/tools/dialogmove.h index cd8a92f35..c04b8f51c 100644 --- a/src/libs/vtools/dialogs/tools/dialogmove.h +++ b/src/libs/vtools/dialogs/tools/dialogmove.h @@ -163,6 +163,8 @@ private: void ValidateSourceAliases(); void SetAliasValid(quint32 id, bool valid); + + void InitIcons(); }; #endif // DIALOGMOVING_H diff --git a/src/libs/vtools/dialogs/tools/dialogmove.ui b/src/libs/vtools/dialogs/tools/dialogmove.ui index 0b49b2d83..55244831f 100644 --- a/src/libs/vtools/dialogs/tools/dialogmove.ui +++ b/src/libs/vtools/dialogs/tools/dialogmove.ui @@ -187,11 +187,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -207,7 +207,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -367,11 +367,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -387,7 +387,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -547,11 +547,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -567,7 +567,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialognormal.cpp b/src/libs/vtools/dialogs/tools/dialognormal.cpp index 797758115..3abdfd120 100644 --- a/src/libs/vtools/dialogs/tools/dialognormal.cpp +++ b/src/libs/vtools/dialogs/tools/dialognormal.cpp @@ -41,17 +41,18 @@ #include #include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" #include "../../visualization/line/vistoolnormal.h" #include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialognormal.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" -#include "../vgeometry/vpointf.h" +#include "ui_dialognormal.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -60,19 +61,21 @@ * @param parent parent widget */ DialogNormal::DialogNormal(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogNormal), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogNormal), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogNormal::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -80,34 +83,36 @@ DialogNormal::DialogNormal(const VContainer *data, quint32 toolId, QWidget *pare FillComboBoxPoints(ui->comboBoxFirstPoint); FillComboBoxPoints(ui->comboBoxSecondPoint); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxLineColors(ui->comboBoxLineColor); - connect(ui->toolButtonArrowDown, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(270);}); - connect(ui->toolButtonArrowUp, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(90);}); - connect(ui->toolButtonArrowLeft, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(180);}); - connect(ui->toolButtonArrowRight, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(0);}); - connect(ui->toolButtonArrowLeftUp, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(135);}); - connect(ui->toolButtonArrowLeftDown, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(225);}); - connect(ui->toolButtonArrowRightUp, &QPushButton::clicked, this, [this](){ui->doubleSpinBoxAngle->setValue(45);}); + connect(ui->toolButtonArrowDown, &QPushButton::clicked, this, [this]() { ui->doubleSpinBoxAngle->setValue(270); }); + connect(ui->toolButtonArrowUp, &QPushButton::clicked, this, [this]() { ui->doubleSpinBoxAngle->setValue(90); }); + connect(ui->toolButtonArrowLeft, &QPushButton::clicked, this, [this]() { ui->doubleSpinBoxAngle->setValue(180); }); + connect(ui->toolButtonArrowRight, &QPushButton::clicked, this, [this]() { ui->doubleSpinBoxAngle->setValue(0); }); + connect(ui->toolButtonArrowLeftUp, &QPushButton::clicked, this, + [this]() { ui->doubleSpinBoxAngle->setValue(135); }); + connect(ui->toolButtonArrowLeftDown, &QPushButton::clicked, this, + [this]() { ui->doubleSpinBoxAngle->setValue(225); }); + connect(ui->toolButtonArrowRightUp, &QPushButton::clicked, this, + [this]() { ui->doubleSpinBoxAngle->setValue(45); }); connect(ui->toolButtonArrowRightDown, &QPushButton::clicked, this, - [this](){ui->doubleSpinBoxAngle->setValue(315);}); + [this]() { ui->doubleSpinBoxAngle->setValue(315); }); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogNormal::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogNormal::DeployFormulaTextEdit); - connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, - this, &DialogNormal::PointNameChanged); - connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, - this, &DialogNormal::PointNameChanged); + connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, this, &DialogNormal::PointNameChanged); + connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, this, &DialogNormal::PointNameChanged); vis = new VisToolNormal(data); @@ -193,7 +198,7 @@ auto DialogNormal::GetPointName() const -> QString */ void DialogNormal::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -221,8 +226,8 @@ void DialogNormal::ChosenObject(quint32 id, const SceneObject &type) line->RefreshGeometry(); prepare = true; - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(line, &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); @@ -264,6 +269,24 @@ void DialogNormal::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogNormal::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogNormal::FinishCreating() { @@ -274,6 +297,15 @@ void DialogNormal::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogNormal::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief SetSecondPointId set id of second point @@ -336,8 +368,8 @@ void DialogNormal::SetAngle(qreal value) */ void DialogNormal::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_formula.length() > 80) { diff --git a/src/libs/vtools/dialogs/tools/dialognormal.h b/src/libs/vtools/dialogs/tools/dialognormal.h index 606be300d..2ac96a45c 100644 --- a/src/libs/vtools/dialogs/tools/dialognormal.h +++ b/src/libs/vtools/dialogs/tools/dialognormal.h @@ -96,6 +96,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -127,6 +128,8 @@ private: qint32 m_number{0}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialognormal.ui b/src/libs/vtools/dialogs/tools/dialognormal.ui index eb7dfaaa4..2068cdda7 100644 --- a/src/libs/vtools/dialogs/tools/dialognormal.ui +++ b/src/libs/vtools/dialogs/tools/dialognormal.ui @@ -102,11 +102,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -122,7 +122,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -311,7 +311,7 @@ - ... + @@ -350,7 +350,7 @@ - ... + @@ -367,7 +367,7 @@ - ... + @@ -390,7 +390,7 @@ - ... + @@ -407,7 +407,7 @@ - ... + @@ -424,7 +424,7 @@ - ... + @@ -441,7 +441,7 @@ - ... + @@ -458,7 +458,7 @@ - ... + diff --git a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp index 197d6f7b0..f95801edf 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp @@ -28,7 +28,6 @@ #include "dialogpointfromcircleandtangent.h" -#include #include #include #include @@ -39,31 +38,34 @@ #include #include #include -#include +#include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" -#include "../../visualization/visualization.h" #include "../../visualization/line/vistoolpointfromcircleandtangent.h" +#include "../../visualization/visualization.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogpointfromcircleandtangent.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" -#include "../vgeometry/vpointf.h" +#include "ui_dialogpointfromcircleandtangent.h" //--------------------------------------------------------------------------------------------------------------------- DialogPointFromCircleAndTangent::DialogPointFromCircleAndTangent(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogPointFromCircleAndTangent) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogPointFromCircleAndTangent) { ui->setupUi(this); + InitIcons(); + ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeightCircleRadius = ui->plainTextEditRadius->height(); @@ -78,21 +80,20 @@ DialogPointFromCircleAndTangent::DialogPointFromCircleAndTangent(const VContaine FillComboBoxPoints(ui->comboBoxTangentPoint); FillComboBoxCrossCirclesPoints(ui->comboBoxResult); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->comboBoxCircleCenter, &QComboBox::currentTextChanged, - this, &DialogPointFromCircleAndTangent::PointChanged); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->comboBoxCircleCenter, &QComboBox::currentTextChanged, this, + &DialogPointFromCircleAndTangent::PointChanged); - connect(ui->toolButtonExprRadius, &QPushButton::clicked, this, - &DialogPointFromCircleAndTangent::FXCircleRadius); + connect(ui->toolButtonExprRadius, &QPushButton::clicked, this, &DialogPointFromCircleAndTangent::FXCircleRadius); - connect(ui->plainTextEditRadius, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerCircleRadius->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditRadius, &QPlainTextEdit::textChanged, this, + [this]() { m_timerCircleRadius->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowRadius, &QPushButton::clicked, this, &DialogPointFromCircleAndTangent::DeployCircleRadiusTextEdit); @@ -148,8 +149,8 @@ auto DialogPointFromCircleAndTangent::GetCircleRadius() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPointFromCircleAndTangent::SetCircleRadius(const QString &value) { - const QString formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formula.length() > 80) { @@ -233,7 +234,7 @@ void DialogPointFromCircleAndTangent::ShowDialog(bool click) //--------------------------------------------------------------------------------------------------------------------- void DialogPointFromCircleAndTangent::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -257,8 +258,8 @@ void DialogPointFromCircleAndTangent::ChosenObject(quint32 id, const SceneObject { if (SetObject(id, ui->comboBoxCircleCenter, QString())) { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); @@ -370,6 +371,24 @@ void DialogPointFromCircleAndTangent::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPointFromCircleAndTangent::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPointFromCircleAndTangent::FinishCreating() { @@ -382,6 +401,15 @@ void DialogPointFromCircleAndTangent::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPointFromCircleAndTangent::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprRadius->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPointFromCircleAndTangent::SetNotes(const QString ¬es) { diff --git a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.h b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.h index 332e8f1d1..84c454995 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.h +++ b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.h @@ -86,6 +86,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -105,6 +106,8 @@ private: bool m_firstRelease{false}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.ui b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.ui index 7359668d6..9987da0d3 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.ui +++ b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp b/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp index 4f15d202f..768843d9b 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp @@ -40,17 +40,18 @@ #include #include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" -#include "../../visualization/visualization.h" #include "../../visualization/line/vistoolpointofcontact.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogpointofcontact.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" -#include "../vgeometry/vpointf.h" +#include "ui_dialogpointofcontact.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -59,19 +60,21 @@ * @param parent parent widget */ DialogPointOfContact::DialogPointOfContact(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogPointOfContact), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogPointOfContact), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogPointOfContact::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -82,22 +85,19 @@ DialogPointOfContact::DialogPointOfContact(const VContainer *data, quint32 toolI FillComboBoxPoints(ui->comboBoxCenter); connect(ui->toolButtonExprRadius, &QPushButton::clicked, this, &DialogPointOfContact::FXRadius); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogPointOfContact::DeployFormulaTextEdit); - connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, - this, &DialogPointOfContact::PointNameChanged); - connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, - this, &DialogPointOfContact::PointNameChanged); - connect(ui->comboBoxCenter, &QComboBox::currentTextChanged, - this, &DialogPointOfContact::PointNameChanged); + connect(ui->comboBoxFirstPoint, &QComboBox::currentTextChanged, this, &DialogPointOfContact::PointNameChanged); + connect(ui->comboBoxSecondPoint, &QComboBox::currentTextChanged, this, &DialogPointOfContact::PointNameChanged); + connect(ui->comboBoxCenter, &QComboBox::currentTextChanged, this, &DialogPointOfContact::PointNameChanged); vis = new VisToolPointOfContact(data); @@ -220,7 +220,7 @@ void DialogPointOfContact::ShowDialog(bool click) */ void DialogPointOfContact::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -264,8 +264,8 @@ void DialogPointOfContact::ChosenObject(quint32 id, const SceneObject &type) { if (SetObject(id, ui->comboBoxCenter, QString())) { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(line, &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); @@ -280,7 +280,7 @@ void DialogPointOfContact::ChosenObject(quint32 id, const SceneObject &type) } } } - break; + break; default: break; } @@ -309,6 +309,24 @@ void DialogPointOfContact::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPointOfContact::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfContact::FinishCreating() { @@ -321,6 +339,15 @@ void DialogPointOfContact::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPointOfContact::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprRadius->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief SetSecondPoint set id second point @@ -370,8 +397,8 @@ void DialogPointOfContact::SetCenter(quint32 value) */ void DialogPointOfContact::SetRadius(const QString &value) { - m_radius = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_radius = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_radius.length() > 80) { diff --git a/src/libs/vtools/dialogs/tools/dialogpointofcontact.h b/src/libs/vtools/dialogs/tools/dialogpointofcontact.h index a0bf18659..57666e3a6 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofcontact.h +++ b/src/libs/vtools/dialogs/tools/dialogpointofcontact.h @@ -90,6 +90,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -118,6 +119,8 @@ private: bool m_firstRelease{false}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogpointofcontact.ui b/src/libs/vtools/dialogs/tools/dialogpointofcontact.ui index 4b90f4560..0f7065bcd 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofcontact.ui +++ b/src/libs/vtools/dialogs/tools/dialogpointofcontact.ui @@ -102,11 +102,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -122,7 +122,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp index 7221c331e..5b99abcd6 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp @@ -28,7 +28,6 @@ #include "dialogpointofintersectioncircles.h" -#include #include #include #include @@ -39,33 +38,36 @@ #include #include #include -#include +#include -#include "../vpatterndb/vtranslatevars.h" -#include "../vpatterndb/vcontainer.h" -#include "../../visualization/visualization.h" #include "../../visualization/line/vistoolpointofintersectioncircles.h" +#include "../../visualization/visualization.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogpointofintersectioncircles.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" -#include "../vgeometry/vpointf.h" +#include "ui_dialogpointofintersectioncircles.h" //--------------------------------------------------------------------------------------------------------------------- DialogPointOfIntersectionCircles::DialogPointOfIntersectionCircles(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogPointOfIntersectionCircles), - m_timerCircle1Radius(new QTimer(this)), - m_timerCircle2Radius(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogPointOfIntersectionCircles), + m_timerCircle1Radius(new QTimer(this)), + m_timerCircle2Radius(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); this->m_formulaBaseHeightCircle1Radius = ui->plainTextEditCircle1Radius->height(); this->m_formulaBaseHeightCircle2Radius = ui->plainTextEditCircle2Radius->height(); @@ -85,30 +87,28 @@ DialogPointOfIntersectionCircles::DialogPointOfIntersectionCircles(const VContai FillComboBoxPoints(ui->comboBoxCircle2Center); FillComboBoxCrossCirclesPoints(ui->comboBoxResult); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->comboBoxCircle1Center, &QComboBox::currentTextChanged, - this, &DialogPointOfIntersectionCircles::PointChanged); - connect(ui->comboBoxCircle2Center, &QComboBox::currentTextChanged, - this, &DialogPointOfIntersectionCircles::PointChanged); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->comboBoxCircle1Center, &QComboBox::currentTextChanged, this, + &DialogPointOfIntersectionCircles::PointChanged); + connect(ui->comboBoxCircle2Center, &QComboBox::currentTextChanged, this, + &DialogPointOfIntersectionCircles::PointChanged); connect(ui->toolButtonExprCircle1Radius, &QPushButton::clicked, this, &DialogPointOfIntersectionCircles::FXCircle1Radius); connect(ui->toolButtonExprCircle2Radius, &QPushButton::clicked, this, &DialogPointOfIntersectionCircles::FXCircle2Radius); - connect(ui->plainTextEditCircle1Radius, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerCircle1Radius->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditCircle1Radius, &QPlainTextEdit::textChanged, this, + [this]() { m_timerCircle1Radius->start(formulaTimerTimeout); }); - connect(ui->plainTextEditCircle2Radius, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerCircle2Radius->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditCircle2Radius, &QPlainTextEdit::textChanged, this, + [this]() { m_timerCircle2Radius->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowCircle1Radius, &QPushButton::clicked, this, &DialogPointOfIntersectionCircles::DeployCircle1RadiusTextEdit); @@ -182,8 +182,8 @@ auto DialogPointOfIntersectionCircles::GetFirstCircleRadius() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::SetFirstCircleRadius(const QString &value) { - const QString formula = VAbstractValApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString formula = VAbstractValApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formula.length() > 80) { @@ -208,8 +208,8 @@ auto DialogPointOfIntersectionCircles::GetSecondCircleRadius() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::SetSecondCircleRadius(const QString &value) { - const QString formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formula.length() > 80) { @@ -265,8 +265,8 @@ void DialogPointOfIntersectionCircles::ShowDialog(bool click) auto *scene = qobject_cast(VAbstractValApplication::VApp()->getCurrentScene()); SCASSERT(scene != nullptr) - QSharedPointer center = data->GeometricObject(m_stage == 1 ? GetFirstCircleCenterId() - : GetSecondCircleCenterId()); + QSharedPointer center = + data->GeometricObject(m_stage == 1 ? GetFirstCircleCenterId() : GetSecondCircleCenterId()); QLineF line(static_cast(*center), scene->getScenePos()); @@ -297,7 +297,7 @@ void DialogPointOfIntersectionCircles::ShowDialog(bool click) //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare)// After first choose we ignore all objects + if (prepare) // After first choose we ignore all objects { return; } @@ -322,8 +322,8 @@ void DialogPointOfIntersectionCircles::ChosenObject(quint32 id, const SceneObjec else { ++m_stage; - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip); } @@ -375,13 +375,15 @@ void DialogPointOfIntersectionCircles::PointChanged() //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::DeployCircle1RadiusTextEdit() { - DeployFormula(this, ui->plainTextEditCircle1Radius, ui->pushButtonGrowCircle1Radius, m_formulaBaseHeightCircle1Radius); + DeployFormula(this, ui->plainTextEditCircle1Radius, ui->pushButtonGrowCircle1Radius, + m_formulaBaseHeightCircle1Radius); } //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::DeployCircle2RadiusTextEdit() { - DeployFormula(this, ui->plainTextEditCircle2Radius, ui->pushButtonGrowCircle2Radius, m_formulaBaseHeightCircle2Radius); + DeployFormula(this, ui->plainTextEditCircle2Radius, ui->pushButtonGrowCircle2Radius, + m_formulaBaseHeightCircle2Radius); } //--------------------------------------------------------------------------------------------------------------------- @@ -488,6 +490,24 @@ void DialogPointOfIntersectionCircles::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPointOfIntersectionCircles::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::FinishCreating() { @@ -500,6 +520,20 @@ void DialogPointOfIntersectionCircles::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPointOfIntersectionCircles::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprCircle1Radius->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprCircle2Radius->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_2->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPointOfIntersectionCircles::SetNotes(const QString ¬es) { diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.h b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.h index 7c4277f44..937980542 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.h +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.h @@ -94,6 +94,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -123,6 +124,8 @@ private: qint32 m_stage{0}; void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.ui b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.ui index 820b3a0f3..fa464ed2a 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.ui +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -279,11 +279,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -299,7 +299,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.cpp b/src/libs/vtools/dialogs/tools/dialogrotation.cpp index 2eb83e47b..66f41eb62 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.cpp +++ b/src/libs/vtools/dialogs/tools/dialogrotation.cpp @@ -45,47 +45,49 @@ #include #include #include -#include #include -#include "../../visualization/visualization.h" +#include "../../tools/drawTools/operation/vabstractoperation.h" #include "../../visualization/line/operation/vistoolrotation.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" -#include "../ifc/xml/vdomdocument.h" #include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vmisc/backport/qoverload.h" -#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vtranslatevars.h" +#include "../vwidgets/global.h" #include "../vwidgets/vabstractmainwindow.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" -#include "../vwidgets/global.h" #include "ui_dialogrotation.h" -#include "../../tools/drawTools/operation/vabstractoperation.h" + +#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../vmisc/backport/qoverload.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) //--------------------------------------------------------------------------------------------------------------------- DialogRotation::DialogRotation(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogRotation), - timerAngle(new QTimer(this)), - formulaAngle(), - formulaBaseHeightAngle(0), - stage1(true), - m_suffix(), - m_firstRelease(false), - flagAngle(false), - flagName(true), - flagGroupName(true), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogRotation), + timerAngle(new QTimer(this)), + formulaAngle(), + formulaBaseHeightAngle(0), + stage1(true), + m_suffix(), + m_firstRelease(false), + flagAngle(false), + flagName(true), + flagGroupName(true), + flagError(false) { ui->setupUi(this); + InitIcons(); + this->formulaBaseHeightAngle = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); @@ -97,19 +99,19 @@ DialogRotation::DialogRotation(const VContainer *data, quint32 toolId, QWidget * InitOkCancelApply(ui); FillComboBoxPoints(ui->comboBoxOriginPoint); - FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + OperationLineStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text)), + TypeLineDefault); FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogRotation::SuffixChanged); connect(ui->lineEditVisibilityGroup, &QLineEdit::textChanged, this, &DialogRotation::GroupNameChanged); connect(ui->toolButtonExprAngle, &QPushButton::clicked, this, &DialogRotation::FXAngle); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - timerAngle->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { timerAngle->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogRotation::DeployAngleTextEdit); - connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged, - this, &DialogRotation::PointChanged); + connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged, this, &DialogRotation::PointChanged); connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogRotation::ShowSourceDetails); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogRotation::AliasChanged); @@ -140,7 +142,7 @@ auto DialogRotation::GetOrigPointId() const -> quint32 void DialogRotation::SetOrigPointId(quint32 value) { ChangeCurrentData(ui->comboBoxOriginPoint, value); - VisToolRotation *operation = qobject_cast(vis); + auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) operation->SetOriginPointId(value); } @@ -154,8 +156,8 @@ auto DialogRotation::GetAngle() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::SetAngle(const QString &value) { - formulaAngle = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formulaAngle = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (formulaAngle.length() > 80) { @@ -281,8 +283,8 @@ void DialogRotation::ShowDialog(bool click) const QSharedPointer point = data->GeometricObject(GetOrigPointId()); const QLineF line = QLineF(static_cast(*point), scene->getScenePos()); - //Radius of point circle, but little bigger. Need handle with hover sizes. - if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5) + // Radius of point circle, but little bigger. Need handle with hover sizes. + if (line.length() <= ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5) { return; } @@ -295,7 +297,7 @@ void DialogRotation::ShowDialog(bool click) auto *operation = qobject_cast(vis); SCASSERT(operation != nullptr) - SetAngle(operation->Angle());//Show in dialog angle that a user choose + SetAngle(operation->Angle()); // Show in dialog angle that a user choose setModal(true); emit ToolTip(QString()); timerAngle->start(); @@ -323,7 +325,7 @@ void DialogRotation::SetSourceObjects(const QVector &value) //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::ChosenObject(quint32 id, const SceneObject &type) { - if (not stage1 && not prepare)// After first choose we ignore all objects + if (not stage1 && not prepare) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -333,7 +335,7 @@ void DialogRotation::ChosenObject(quint32 id, const SceneObject &type) auto obj = std::find_if(sourceObjects.begin(), sourceObjects.end(), [id](const SourceItem &sItem) { return sItem.id == id; }); - if (obj != sourceObjects.cend()) + if (obj != sourceObjects.end()) { if (sourceObjects.size() > 1) { @@ -374,7 +376,7 @@ void DialogRotation::SelectedObject(bool selected, quint32 object, quint32 tool) [object](const SourceItem &sItem) { return sItem.id == object; }); if (selected) { - if (obj == sourceObjects.cend()) + if (obj == sourceObjects.end()) { SourceItem item; item.id = object; @@ -383,7 +385,7 @@ void DialogRotation::SelectedObject(bool selected, quint32 object, quint32 tool) } else { - if (obj != sourceObjects.cend()) + if (obj != sourceObjects.end()) { sourceObjects.erase(obj); } @@ -414,7 +416,7 @@ void DialogRotation::FXAngle() //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::SuffixChanged() { - auto* edit = qobject_cast(sender()); + auto *edit = qobject_cast(sender()); if (edit) { const QString suffix = edit->text(); @@ -454,7 +456,7 @@ void DialogRotation::SuffixChanged() //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::GroupNameChanged() { - auto* edit = qobject_cast(sender()); + auto *edit = qobject_cast(sender()); if (edit) { const QString name = edit->text(); @@ -488,7 +490,7 @@ void DialogRotation::SaveData() sourceObjects.clear(); sourceObjects.reserve(ui->listWidget->count()); - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { @@ -525,6 +527,24 @@ void DialogRotation::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogRotation::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::PointChanged() { @@ -534,7 +554,7 @@ void DialogRotation::PointChanged() [id](const SourceItem &sItem) { return sItem.id == id; }); QColor color; - if (obj != sourceObjects.cend()) + if (obj != sourceObjects.end()) { flagError = false; color = errorColor; @@ -582,7 +602,7 @@ void DialogRotation::FillSourceList() //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::ValidateSourceAliases() { - for (int i=0; ilistWidget->count(); ++i) + for (int i = 0; i < ui->listWidget->count(); ++i) { if (const QListWidgetItem *item = ui->listWidget->item(i)) { @@ -625,6 +645,15 @@ void DialogRotation::SetAliasValid(quint32 id, bool valid) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogRotation::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_2->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::EvalAngle() { @@ -709,7 +738,8 @@ void DialogRotation::ShowSourceDetails(int row) { const QSharedPointer curve = data->GeometricObject(sourceItem.id); int index = ui->comboBoxColor->currentIndex(); - ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->palette().color(QPalette::Text), + ui->comboBoxColor->iconSize().height(), curve->GetColor())); } ui->comboBoxPenStyle->setEnabled(true); diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.h b/src/libs/vtools/dialogs/tools/dialogrotation.h index ff93a6d02..f6d8888b8 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.h +++ b/src/libs/vtools/dialogs/tools/dialogrotation.h @@ -103,6 +103,7 @@ protected: /** @brief SaveData Put dialog data in local variables */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -142,6 +143,8 @@ private: void ValidateSourceAliases(); void SetAliasValid(quint32 id, bool valid); + + void InitIcons(); }; #endif // DIALOGROTATION_H diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.ui b/src/libs/vtools/dialogs/tools/dialogrotation.ui index 16f6e0c6c..c316d76cf 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.ui +++ b/src/libs/vtools/dialogs/tools/dialogrotation.ui @@ -180,11 +180,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -200,7 +200,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp index a0e09d774..3d3f5b8af 100644 --- a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp +++ b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp @@ -40,17 +40,18 @@ #include #include -#include "../vpatterndb/vtranslatevars.h" -#include "../../visualization/visualization.h" #include "../../visualization/line/vistoolshoulderpoint.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../support/dialogeditwrongformula.h" +#include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#include "ui_dialogshoulderpoint.h" #include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" -#include "../vgeometry/vpointf.h" +#include "ui_dialogshoulderpoint.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -59,47 +60,47 @@ * @param parent parent widget */ DialogShoulderPoint::DialogShoulderPoint(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogShoulderPoint), - m_timerFormula(new QTimer(this)) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogShoulderPoint), + m_timerFormula(new QTimer(this)) { ui->setupUi(this); + InitIcons(); + m_timerFormula->setSingleShot(true); connect(m_timerFormula, &QTimer::timeout, this, &DialogShoulderPoint::EvalFormula); ui->lineEditNamePoint->setClearButtonEnabled(true); ui->lineEditNamePoint->setText( - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel)); m_formulaBaseHeight = ui->plainTextEditFormula->height(); ui->plainTextEditFormula->installEventFilter(this); InitOkCancelApply(ui); - FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics()); + FillComboBoxTypeLine(ui->comboBoxLineType, LineStylesPics(ui->comboBoxLineType->palette().color(QPalette::Base), + ui->comboBoxLineType->palette().color(QPalette::Text))); FillComboBoxPoints(ui->comboBoxP1Line); FillComboBoxPoints(ui->comboBoxP2Line); FillComboBoxPoints(ui->comboBoxP3); FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonExprLength, &QPushButton::clicked, this, &DialogShoulderPoint::FXLength); - connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, [this]() - { - CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, m_flagName); - CheckState(); - }); - connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerFormula->start(formulaTimerTimeout); - }); + connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, + [this]() + { + CheckPointLabel(this, ui->lineEditNamePoint, ui->labelEditNamePoint, m_pointName, this->data, + m_flagName); + CheckState(); + }); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, + [this]() { m_timerFormula->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogShoulderPoint::DeployFormulaTextEdit); - connect(ui->comboBoxP1Line, &QComboBox::currentTextChanged, - this, &DialogShoulderPoint::PointNameChanged); - connect(ui->comboBoxP2Line, &QComboBox::currentTextChanged, - this, &DialogShoulderPoint::PointNameChanged); - connect(ui->comboBoxP3, &QComboBox::currentTextChanged, - this, &DialogShoulderPoint::PointNameChanged); + connect(ui->comboBoxP1Line, &QComboBox::currentTextChanged, this, &DialogShoulderPoint::PointNameChanged); + connect(ui->comboBoxP2Line, &QComboBox::currentTextChanged, this, &DialogShoulderPoint::PointNameChanged); + connect(ui->comboBoxP3, &QComboBox::currentTextChanged, this, &DialogShoulderPoint::PointNameChanged); vis = new VisToolShoulderPoint(data); @@ -254,6 +255,24 @@ void DialogShoulderPoint::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogShoulderPoint::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogShoulderPoint::ChosenThirdPoint(quint32 id) { @@ -266,8 +285,7 @@ void DialogShoulderPoint::ChosenThirdPoint(quint32 id) { if (SetObject(id, ui->comboBoxP2Line, QString())) { - auto *window = qobject_cast( - VAbstractValApplication::VApp()->getMainWindow()); + auto *window = qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) auto *line = qobject_cast(vis); @@ -296,6 +314,15 @@ void DialogShoulderPoint::FinishCreating() show(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogShoulderPoint::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, QStringLiteral("24x24/fx.png"))); + ui->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("24x24/equal.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief setPShoulder set id shoulder point @@ -357,8 +384,8 @@ void DialogShoulderPoint::SetP1Line(const quint32 &value) */ void DialogShoulderPoint::SetFormula(const QString &value) { - m_formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + m_formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (m_formula.length() > 80) { diff --git a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.h b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.h index 975d8ebd4..ce7316ce3 100644 --- a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.h +++ b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.h @@ -96,6 +96,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private: @@ -126,6 +127,8 @@ private: void ChosenThirdPoint(quint32 id); void FinishCreating(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.ui b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.ui index 6c26a65d9..64658d7ca 100644 --- a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.ui +++ b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.ui @@ -102,11 +102,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -122,7 +122,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogspline.cpp b/src/libs/vtools/dialogs/tools/dialogspline.cpp index 79b745acf..9dd242fe4 100644 --- a/src/libs/vtools/dialogs/tools/dialogspline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogspline.cpp @@ -48,6 +48,7 @@ #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" #include "../vmisc/def.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vcommonsettings.h" #include "../vpatterndb/vcontainer.h" @@ -71,6 +72,8 @@ DialogSpline::DialogSpline(const VContainer *data, quint32 toolId, QWidget *pare { ui->setupUi(this); + InitIcons(); + formulaBaseHeightAngle1 = ui->plainTextEditAngle1F->height(); formulaBaseHeightAngle2 = ui->plainTextEditAngle2F->height(); formulaBaseHeightLength1 = ui->plainTextEditLength1F->height(); @@ -96,7 +99,9 @@ DialogSpline::DialogSpline(const VContainer *data, quint32 toolId, QWidget *pare FillComboBoxPoints(ui->comboBoxP1); FillComboBoxPoints(ui->comboBoxP4); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); ui->doubleSpinBoxApproximationScale->setMaximum(maxCurveApproximationScale); @@ -225,6 +230,24 @@ void DialogSpline::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSpline::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogSpline::DeployAngle1TextEdit() { @@ -470,6 +493,24 @@ auto DialogSpline::CurrentSpline() const -> VSpline return spline; } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSpline::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprLength1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprLength2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_5->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_8->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_9->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_10->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogSpline::PointNameChanged() { diff --git a/src/libs/vtools/dialogs/tools/dialogspline.h b/src/libs/vtools/dialogs/tools/dialogspline.h index 30e508942..6723be266 100644 --- a/src/libs/vtools/dialogs/tools/dialogspline.h +++ b/src/libs/vtools/dialogs/tools/dialogspline.h @@ -73,6 +73,7 @@ protected: */ void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -133,6 +134,8 @@ private: auto GetP4() const -> const QSharedPointer; auto CurrentSpline() const -> VSpline; + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogspline.ui b/src/libs/vtools/dialogs/tools/dialogspline.ui index c0a0123ef..b0bb6a1a2 100644 --- a/src/libs/vtools/dialogs/tools/dialogspline.ui +++ b/src/libs/vtools/dialogs/tools/dialogspline.ui @@ -141,11 +141,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -161,7 +161,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -321,11 +321,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -341,7 +341,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -539,11 +539,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -559,7 +559,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -719,11 +719,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -739,7 +739,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp b/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp index 6485a9252..488ee97f8 100644 --- a/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp @@ -44,27 +44,27 @@ #include #include #include -#include #include -#include "../../visualization/visualization.h" #include "../../visualization/path/vistoolsplinepath.h" -#include "../ifc/xml/vdomdocument.h" +#include "../../visualization/visualization.h" +#include "../qmuparser/qmudef.h" #include "../support/dialogeditwrongformula.h" #include "../vgeometry/../ifc/ifcdef.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vsplinepoint.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" -#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vmisc/backport/qoverload.h" -#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/vabstractmainwindow.h" #include "../vwidgets/vmaingraphicsscene.h" #include "ui_dialogsplinepath.h" -#include "../vpatterndb/vtranslatevars.h" -#include "../qmuparser/qmudef.h" + +#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) +#include "../vmisc/backport/qoverload.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) //--------------------------------------------------------------------------------------------------------------------- /** @@ -73,22 +73,24 @@ * @param parent parent widget */ DialogSplinePath::DialogSplinePath(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogSplinePath), - path(), - newDuplicate(-1), - formulaBaseHeightAngle1(0), - formulaBaseHeightAngle2(0), - formulaBaseHeightLength1(0), - formulaBaseHeightLength2(0), - flagAngle1(), - flagAngle2(), - flagLength1(), - flagLength2(), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogSplinePath), + path(), + newDuplicate(-1), + formulaBaseHeightAngle1(0), + formulaBaseHeightAngle2(0), + formulaBaseHeightLength1(0), + formulaBaseHeightLength2(0), + flagAngle1(), + flagAngle2(), + flagLength1(), + flagLength2(), + flagError(false) { ui->setupUi(this); + InitIcons(); + formulaBaseHeightAngle1 = ui->plainTextEditAngle1F->height(); formulaBaseHeightAngle2 = ui->plainTextEditAngle2F->height(); formulaBaseHeightLength1 = ui->plainTextEditLength1F->height(); @@ -104,13 +106,15 @@ DialogSplinePath::DialogSplinePath(const VContainer *data, quint32 toolId, QWidg FillComboBoxPoints(ui->comboBoxPoint); FillComboBoxLineColors(ui->comboBoxColor); - FillComboBoxTypeLine(ui->comboBoxPenStyle, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenStyle, + CurvePenStylesPics(ui->comboBoxPenStyle->palette().color(QPalette::Base), + ui->comboBoxPenStyle->palette().color(QPalette::Text))); ui->doubleSpinBoxApproximationScale->setMaximum(maxCurveApproximationScale); connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogSplinePath::PointChanged); - connect(ui->comboBoxPoint, QOverload::of(&QComboBox::currentIndexChanged), - this, &DialogSplinePath::currentPointChanged); + connect(ui->comboBoxPoint, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogSplinePath::currentPointChanged); connect(ui->toolButtonExprAngle1, &QPushButton::clicked, this, &DialogSplinePath::FXAngle1); connect(ui->toolButtonExprAngle2, &QPushButton::clicked, this, &DialogSplinePath::FXAngle2); @@ -217,7 +221,7 @@ void DialogSplinePath::ChosenObject(quint32 id, const SceneObject &type) { visPath->VisualMode(NULL_ID); VAbstractMainWindow *window = - qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); + qobject_cast(VAbstractValApplication::VApp()->getMainWindow()); SCASSERT(window != nullptr) connect(visPath, &VisToolSplinePath::ToolTip, window, &VAbstractMainWindow::ShowToolTip); @@ -236,7 +240,7 @@ void DialogSplinePath::ChosenObject(quint32 id, const SceneObject &type) */ void DialogSplinePath::SaveData() { - const quint32 d = path.GetDuplicate();//Save previous value + const quint32 d = path.GetDuplicate(); // Save previous value SavePath(); newDuplicate <= -1 ? path.SetDuplicate(d) : path.SetDuplicate(static_cast(newDuplicate)); @@ -257,6 +261,24 @@ void DialogSplinePath::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSplinePath::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogSplinePath::DeployAngle1TextEdit() { @@ -298,20 +320,18 @@ void DialogSplinePath::Angle1Changed() const QString angle1F = ui->plainTextEditAngle1F->toPlainText(); const qreal angle1 = Visualization::FindValFromUser(angle1F, data->DataVariables()); - p.SetAngle1(angle1, - VTranslateVars::TryFormulaFromUser(angle1F, - VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + p.SetAngle1(angle1, VTranslateVars::TryFormulaFromUser( + angle1F, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); EvalAngle1(); - if (row != ui->listWidget->count()-1) + if (row != ui->listWidget->count() - 1) { ui->plainTextEditAngle2F->blockSignals(true); - ui->plainTextEditAngle2F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Angle2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditAngle2F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Angle2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalAngle2(); ui->plainTextEditAngle2F->blockSignals(false); } @@ -327,7 +347,7 @@ void DialogSplinePath::Angle2Changed() return; } - if (row != ui->listWidget->count()-1) + if (row != ui->listWidget->count() - 1) { QListWidgetItem *item = ui->listWidget->item(row); SCASSERT(item != nullptr) @@ -335,9 +355,8 @@ void DialogSplinePath::Angle2Changed() const QString angle2F = ui->plainTextEditAngle2F->toPlainText(); const qreal angle2 = Visualization::FindValFromUser(angle2F, data->DataVariables()); - p.SetAngle2(angle2, - VTranslateVars::TryFormulaFromUser(angle2F, - VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + p.SetAngle2(angle2, VTranslateVars::TryFormulaFromUser( + angle2F, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -346,9 +365,8 @@ void DialogSplinePath::Angle2Changed() if (row != 0) { ui->plainTextEditAngle1F->blockSignals(true); - ui->plainTextEditAngle1F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Angle1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditAngle1F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Angle1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalAngle1(); ui->plainTextEditAngle1F->blockSignals(false); } @@ -372,9 +390,8 @@ void DialogSplinePath::Length1Changed() const QString length1F = ui->plainTextEditLength1F->toPlainText(); const qreal length1 = Visualization::FindLengthFromUser(length1F, data->DataVariables()); - p.SetLength1(length1, - VTranslateVars::TryFormulaFromUser(length1F, - VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + p.SetLength1(length1, VTranslateVars::TryFormulaFromUser( + length1F, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -391,7 +408,7 @@ void DialogSplinePath::Length2Changed() return; } - if (row != ui->listWidget->count()-1) + if (row != ui->listWidget->count() - 1) { QListWidgetItem *item = ui->listWidget->item(row); SCASSERT(item != nullptr) @@ -399,9 +416,8 @@ void DialogSplinePath::Length2Changed() const QString length2F = ui->plainTextEditLength2F->toPlainText(); const qreal length2 = Visualization::FindLengthFromUser(length2F, data->DataVariables()); - p.SetLength2(length2, - VTranslateVars::TryFormulaFromUser(length2F, - VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + p.SetLength2(length2, VTranslateVars::TryFormulaFromUser( + length2F, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -412,7 +428,7 @@ void DialogSplinePath::Length2Changed() //--------------------------------------------------------------------------------------------------------------------- void DialogSplinePath::FXAngle1() { - auto* dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point angle")); QString angle1F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditAngle1F->toPlainText(), @@ -438,7 +454,7 @@ void DialogSplinePath::FXAngle1() //--------------------------------------------------------------------------------------------------------------------- void DialogSplinePath::FXAngle2() { - auto* dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point angle")); QString angle2F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditAngle2F->toPlainText(), @@ -464,7 +480,7 @@ void DialogSplinePath::FXAngle2() //--------------------------------------------------------------------------------------------------------------------- void DialogSplinePath::FXLength1() { - auto* dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point length")); QString length1F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditLength1F->toPlainText(), @@ -490,7 +506,7 @@ void DialogSplinePath::FXLength1() //--------------------------------------------------------------------------------------------------------------------- void DialogSplinePath::FXLength2() { - auto* dialog = new DialogEditWrongFormula(data, toolId, this); + auto *dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point length")); QString length2F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditLength2F->toPlainText(), @@ -671,7 +687,7 @@ void DialogSplinePath::currentPointChanged(int index) try { - QListWidgetItem *item = ui->listWidget->item( ui->listWidget->currentRow() ); + QListWidgetItem *item = ui->listWidget->item(ui->listWidget->currentRow()); VSplinePoint p = qvariant_cast(item->data(Qt::UserRole)); const auto point = data->GeometricObject(id); @@ -694,9 +710,10 @@ void DialogSplinePath::currentPointChanged(int index) color = OkColor(this); auto first = qvariant_cast(ui->listWidget->item(0)->data(Qt::UserRole)); - auto last = qvariant_cast(ui->listWidget->item(ui->listWidget->count()-1)->data(Qt::UserRole)); + auto last = + qvariant_cast(ui->listWidget->item(ui->listWidget->count() - 1)->data(Qt::UserRole)); - if (first.P().id() == path.at(0).P().id() && last.P().id() == path.at(path.CountPoints()-1).P().id()) + if (first.P().id() == path.at(0).P().id() && last.P().id() == path.at(path.CountPoints() - 1).P().id()) { newDuplicate = -1; ui->lineEditSplPathName->setText(VAbstractApplication::VApp()->TrVars()->VarToUser(path.name())); @@ -771,7 +788,7 @@ void DialogSplinePath::NewItem(const VSplinePoint &point) flagAngle2.append(true); flagLength2.append(true); - auto* item = new QListWidgetItem(point.P().name()); + auto *item = new QListWidgetItem(point.P().name()); item->setFont(NodeFont(item->font())); item->setData(Qt::UserRole, QVariant::fromValue(point)); @@ -829,18 +846,16 @@ void DialogSplinePath::DataPoint(const VSplinePoint &p) ui->plainTextEditAngle2F->blockSignals(true); ui->plainTextEditLength2F->blockSignals(true); - ui->plainTextEditAngle2F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Angle2Formula(),VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditAngle2F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Angle2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalAngle2(); - ui->plainTextEditLength2F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Length2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditLength2F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Length2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalLength2(); ui->plainTextEditAngle2F->blockSignals(false); ui->plainTextEditLength2F->blockSignals(false); } - else if (row == ui->listWidget->count()-1) + else if (row == ui->listWidget->count() - 1) { ui->toolButtonExprAngle2->setEnabled(false); ui->labelResultAngle2->setText(emptyRes); @@ -868,13 +883,11 @@ void DialogSplinePath::DataPoint(const VSplinePoint &p) ui->plainTextEditAngle1F->blockSignals(true); ui->plainTextEditLength1F->blockSignals(true); - ui->plainTextEditAngle1F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Angle1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditAngle1F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Angle1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalAngle1(); - ui->plainTextEditLength1F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Length1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditLength1F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Length1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalLength1(); ui->plainTextEditAngle1F->blockSignals(false); ui->plainTextEditLength1F->blockSignals(false); @@ -896,18 +909,14 @@ void DialogSplinePath::DataPoint(const VSplinePoint &p) ui->plainTextEditAngle2F->blockSignals(true); ui->plainTextEditLength2F->blockSignals(true); - ui->plainTextEditAngle1F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Angle1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); - ui->plainTextEditAngle2F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Angle2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); - ui->plainTextEditLength1F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Length1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); - ui->plainTextEditLength2F->setPlainText( - VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(p.Length2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditAngle1F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Angle1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditAngle2F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Angle2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditLength1F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Length1Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + ui->plainTextEditLength2F->setPlainText(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + p.Length2Formula(), VAbstractApplication::VApp()->Settings()->GetOsSeparator())); EvalAngle1(); EvalLength1(); @@ -980,14 +989,32 @@ void DialogSplinePath::ShowPointIssue(const QString &pName) if (flagAngle1.at(row) && flagAngle2.at(row) && flagLength1.at(row) && flagLength2.at(row)) { - item->setText(pName); + item->setText(pName); } else { - item->setText(pName + QLatin1String("(!)")); + item->setText(pName + QLatin1String("(!)")); } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSplinePath::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprLength1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle1->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprLength2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_8->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_9->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_10->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_11->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- auto DialogSplinePath::IsValid() const -> bool { @@ -1007,8 +1034,8 @@ auto DialogSplinePath::IsValid() const -> bool //--------------------------------------------------------------------------------------------------------------------- void DialogSplinePath::showEvent(QShowEvent *event) { - QDialog::showEvent( event ); // NOLINT(bugprone-parent-virtual-call) - if ( event->spontaneous() ) + QDialog::showEvent(event); // NOLINT(bugprone-parent-virtual-call) + if (event->spontaneous()) { return; } @@ -1024,7 +1051,7 @@ void DialogSplinePath::showEvent(QShowEvent *event) resize(sz); } - isInitialized = true;//first show windows are held + isInitialized = true; // first show windows are held ShowVisualization(); CheckState(); diff --git a/src/libs/vtools/dialogs/tools/dialogsplinepath.h b/src/libs/vtools/dialogs/tools/dialogsplinepath.h index acca8c78a..1e3aab4bf 100644 --- a/src/libs/vtools/dialogs/tools/dialogsplinepath.h +++ b/src/libs/vtools/dialogs/tools/dialogsplinepath.h @@ -71,6 +71,7 @@ protected: void ShowVisualization() override; void SaveData() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; void showEvent(QShowEvent *event) override; void resizeEvent(QResizeEvent *event) override; @@ -135,6 +136,8 @@ private: auto IsPathValid() const -> bool; auto ExtractPath() const -> VSplinePath; void ShowPointIssue(const QString &pName); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogsplinepath.ui b/src/libs/vtools/dialogs/tools/dialogsplinepath.ui index e5efb482e..3f8199f39 100644 --- a/src/libs/vtools/dialogs/tools/dialogsplinepath.ui +++ b/src/libs/vtools/dialogs/tools/dialogsplinepath.ui @@ -143,11 +143,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -163,7 +163,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -323,11 +323,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -343,7 +343,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -516,11 +516,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -536,7 +536,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -696,11 +696,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -716,7 +716,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/dialogtool.cpp b/src/libs/vtools/dialogs/tools/dialogtool.cpp index b9313472e..0caf2b5b6 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtool.cpp @@ -28,9 +28,7 @@ #include "dialogtool.h" -#include -#include -#include +#include #include #include #include @@ -55,19 +53,20 @@ #include #include #include -#include #include +#include #include -#include +#include +#include +#include "../../tools/vabstracttool.h" +#include "../ifc/xml/vabstractpattern.h" #include "../ifc/xml/vdomdocument.h" +#include "../vgeometry/vabstractcurve.h" +#include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" #include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vpiecenode.h" -#include "../../tools/vabstracttool.h" -#include "../ifc/xml/vabstractpattern.h" -#include "../vgeometry/vabstractcurve.h" -#include "../vgeometry/vgobject.h" template class QSharedPointer; @@ -86,21 +85,18 @@ QT_WARNING_POP * @param parent parent widget */ DialogTool::DialogTool(const VContainer *data, quint32 toolId, QWidget *parent) - : QDialog(parent), - data(data), - isInitialized(false), - bOk(nullptr), - bApply(nullptr), - associatedTool(nullptr), - toolId(toolId), - prepare(false), - vis(nullptr) -{ - SCASSERT(data != nullptr) -} + : QDialog(parent), + data(data), + isInitialized(false), + bOk(nullptr), + bApply(nullptr), + associatedTool(nullptr), + toolId(toolId), + prepare(false), + vis(nullptr){SCASSERT(data != nullptr)} -//--------------------------------------------------------------------------------------------------------------------- -DialogTool::~DialogTool() + //--------------------------------------------------------------------------------------------------------------------- + DialogTool::~DialogTool() { emit ToolTip(QString()); @@ -128,8 +124,8 @@ void DialogTool::closeEvent(QCloseEvent *event) */ void DialogTool::showEvent(QShowEvent *event) { - QDialog::showEvent( event ); - if ( event->spontaneous() ) + QDialog::showEvent(event); + if (event->spontaneous()) { return; } @@ -142,7 +138,7 @@ void DialogTool::showEvent(QShowEvent *event) setMaximumSize(size()); setMinimumSize(size()); - isInitialized = true;//first show windows are held + isInitialized = true; // first show windows are held ShowVisualization(); CheckState(); @@ -159,7 +155,7 @@ void DialogTool::keyPressEvent(QKeyEvent *event) default: break; } - QDialog::keyPressEvent ( event ); + QDialog::keyPressEvent(event); } //--------------------------------------------------------------------------------------------------------------------- @@ -199,7 +195,7 @@ void DialogTool::FillComboBoxSplines(QComboBox *box) const box->blockSignals(true); const auto *const objs = data->CalculationGObjects(); - QHash >::const_iterator i; + QHash>::const_iterator i; QMap list; for (i = objs->constBegin(); i != objs->constEnd(); ++i) { @@ -223,7 +219,7 @@ void DialogTool::FillComboBoxSplinesPath(QComboBox *box) const box->blockSignals(true); const auto *const objs = data->CalculationGObjects(); - QHash >::const_iterator i; + QHash>::const_iterator i; QMap list; for (i = objs->constBegin(); i != objs->constEnd(); ++i) { @@ -246,18 +242,15 @@ void DialogTool::FillComboBoxCurves(QComboBox *box) const SCASSERT(box != nullptr) const auto *const objs = data->CalculationGObjects(); QMap list; - QHash >::const_iterator i; + QHash>::const_iterator i; for (i = objs->constBegin(); i != objs->constEnd(); ++i) { if (i.key() != toolId) { QSharedPointer obj = i.value(); - if (obj->getType() == GOType::Arc - || obj->getType() == GOType::EllipticalArc - || obj->getType() == GOType::Spline - || obj->getType() == GOType::SplinePath - || obj->getType() == GOType::CubicBezier - || obj->getType() == GOType::CubicBezierPath) + if (obj->getType() == GOType::Arc || obj->getType() == GOType::EllipticalArc || + obj->getType() == GOType::Spline || obj->getType() == GOType::SplinePath || + obj->getType() == GOType::CubicBezier || obj->getType() == GOType::CubicBezierPath) { PrepareList(list, i.key()); } @@ -304,7 +297,8 @@ void DialogTool::FillComboBoxLineColors(QComboBox *box, const QMap::const_iterator i = lineColors.constBegin(); while (i != lineColors.constEnd()) { - box->addItem(LineColor(box->iconSize().height(), i.key()), i.value(), QVariant(i.key())); + box->addItem(LineColor(box->palette().color(QPalette::Text), box->iconSize().height(), i.key()), i.value(), + QVariant(i.key())); ++i; } } @@ -408,31 +402,31 @@ void DialogTool::NewNodeItem(QListWidget *listWidget, const VPieceNode &node, bo name = GetNodeName(data, node, showPassmark); break; default: - qDebug()<<"Got wrong tools. Ignore."; + qDebug() << "Got wrong tools. Ignore."; return; } bool canAddNewPoint = false; - if(listWidget->count() == 0) + if (listWidget->count() == 0) { canAddNewPoint = true; } else { - if(RowNode(listWidget, listWidget->count()-1).GetId() != node.GetId()) + if (RowNode(listWidget, listWidget->count() - 1).GetId() != node.GetId()) { canAddNewPoint = true; } } - if(canAddNewPoint) + if (canAddNewPoint) { QListWidgetItem *item = new QListWidgetItem(name); item->setFont(NodeFont(item->font(), showExclusion ? node.IsExcluded() : false)); item->setData(Qt::UserRole, QVariant::fromValue(node)); listWidget->addItem(item); - listWidget->setCurrentRow(listWidget->count()-1); + listWidget->setCurrentRow(listWidget->count() - 1); } } @@ -502,7 +496,7 @@ void DialogTool::MoveListRowBottom(QListWidget *list) if (QListWidgetItem *currentItem = list->takeItem(currentIndex)) { list->insertItem(list->count(), currentItem); - list->setCurrentRow(list->count()-1); + list->setCurrentRow(list->count() - 1); } } @@ -525,8 +519,8 @@ auto DialogTool::Eval(const FormulaData &formulaData, bool &flag) -> qreal } //--------------------------------------------------------------------------------------------------------------------- -void DialogTool::setCurrentPointId(QComboBox *box, const quint32 &value, FillComboBox rule, - const quint32 &ch1, const quint32 &ch2) const +void DialogTool::setCurrentPointId(QComboBox *box, const quint32 &value, FillComboBox rule, const quint32 &ch1, + const quint32 &ch2) const { SCASSERT(box != nullptr) @@ -553,8 +547,8 @@ void DialogTool::setCurrentSplineId(QComboBox *box, const quint32 &value) const /** * @brief setCurrentArcId */ -void DialogTool::setCurrentArcId(QComboBox *box, const quint32 &value, FillComboBox rule, - const quint32 &ch1, const quint32 &ch2) const +void DialogTool::setCurrentArcId(QComboBox *box, const quint32 &value, FillComboBox rule, const quint32 &ch1, + const quint32 &ch2) const { SCASSERT(box != nullptr) FillComboBoxArcs(box, rule, ch1, ch2); @@ -605,7 +599,7 @@ auto DialogTool::SetObject(const quint32 &id, QComboBox *box, const QString &too { SCASSERT(box != nullptr) const qint32 index = box->findData(id); - if ( index != -1 ) + if (index != -1) { // -1 for not found box->setCurrentIndex(index); emit ToolTip(toolTip); @@ -637,8 +631,7 @@ void DialogTool::FillList(QComboBox *box, const QMap &list) co } //--------------------------------------------------------------------------------------------------------------------- -template -void DialogTool::PrepareList(QMap &list, quint32 id) const +template void DialogTool::PrepareList(QMap &list, quint32 id) const { const auto obj = data->GeometricObject(id); SCASSERT(obj != nullptr) @@ -660,7 +653,7 @@ void DialogTool::CheckState() SCASSERT(bOk != nullptr) bOk->setEnabled(IsValid()); // In case dialog hasn't apply button - if ( bApply != nullptr) + if (bApply != nullptr) { bApply->setEnabled(bOk->isEnabled()); } @@ -784,8 +777,8 @@ void DialogTool::FillCombo(QComboBox *box, GOType gType, FillComboBox rule, cons SCASSERT(box != nullptr) box->blockSignals(true); - const QHash > *objs = data->CalculationGObjects(); - QHash >::const_iterator i; + const QHash> *objs = data->CalculationGObjects(); + QHash>::const_iterator i; QMap list; for (i = objs->constBegin(); i != objs->constEnd(); ++i) { @@ -793,7 +786,7 @@ void DialogTool::FillCombo(QComboBox *box, GOType gType, FillComboBox rule, cons { if (i.key() != toolId && i.value()->getIdTool() != toolId && i.key() != ch1 && i.key() != ch2) { - QSharedPointer obj = i.value(); + const QSharedPointer &obj = i.value(); if (obj->getType() == gType) { PrepareList(list, i.key()); @@ -804,7 +797,7 @@ void DialogTool::FillCombo(QComboBox *box, GOType gType, FillComboBox rule, cons { if (i.key() != toolId && i.value()->getIdTool() != toolId) { - QSharedPointer obj = i.value(); + const QSharedPointer &obj = i.value(); if (obj->getType() == gType && obj->getMode() == Draw::Calculation) { PrepareList(list, i.key()); diff --git a/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp b/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp index 8e6233bcb..af3f3a339 100644 --- a/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp @@ -37,10 +37,9 @@ #include #include #include -#include -#include "../../visualization/visualization.h" #include "../../visualization/line/vistooltruedarts.h" +#include "../../visualization/visualization.h" #include "../ifc/xml/vabstractpattern.h" #include "../qmuparser/qmudef.h" #include "../vpatterndb/vcontainer.h" @@ -49,15 +48,15 @@ //--------------------------------------------------------------------------------------------------------------------- DialogTrueDarts::DialogTrueDarts(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogTrueDarts), - d1PointName(), - d2PointName(), - ch1(NULL_ID), - ch2(NULL_ID), - flagName1(true), - flagName2(true), - flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogTrueDarts), + d1PointName(), + d2PointName(), + ch1(NULL_ID), + ch2(NULL_ID), + flagName1(true), + flagName2(true), + flagError(false) { ui->setupUi(this); @@ -66,7 +65,7 @@ DialogTrueDarts::DialogTrueDarts(const VContainer *data, quint32 toolId, QWidget const QString name1 = VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel); const QString name2 = - VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel, name1); + VAbstractValApplication::VApp()->getCurrentDocument()->GenerateLabel(LabelType::NewLabel, name1); ui->lineEditFirstNewDartPoint->setText(name1); ui->lineEditSecondNewDartPoint->setText(name2); @@ -76,16 +75,11 @@ DialogTrueDarts::DialogTrueDarts(const VContainer *data, quint32 toolId, QWidget connect(ui->lineEditFirstNewDartPoint, &QLineEdit::textChanged, this, &DialogTrueDarts::NameDartPoint1Changed); connect(ui->lineEditSecondNewDartPoint, &QLineEdit::textChanged, this, &DialogTrueDarts::NameDartPoint2Changed); - connect(ui->comboBoxFirstBasePoint, &QComboBox::currentTextChanged, - this, &DialogTrueDarts::PointNameChanged); - connect(ui->comboBoxSecondBasePoint, &QComboBox::currentTextChanged, - this, &DialogTrueDarts::PointNameChanged); - connect(ui->comboBoxFirstDartPoint, &QComboBox::currentTextChanged, - this, &DialogTrueDarts::PointNameChanged); - connect(ui->comboBoxSecondDartPoint, &QComboBox::currentTextChanged, - this, &DialogTrueDarts::PointNameChanged); - connect(ui->comboBoxThirdDartPoint, &QComboBox::currentTextChanged, - this, &DialogTrueDarts::PointNameChanged); + connect(ui->comboBoxFirstBasePoint, &QComboBox::currentTextChanged, this, &DialogTrueDarts::PointNameChanged); + connect(ui->comboBoxSecondBasePoint, &QComboBox::currentTextChanged, this, &DialogTrueDarts::PointNameChanged); + connect(ui->comboBoxFirstDartPoint, &QComboBox::currentTextChanged, this, &DialogTrueDarts::PointNameChanged); + connect(ui->comboBoxSecondDartPoint, &QComboBox::currentTextChanged, this, &DialogTrueDarts::PointNameChanged); + connect(ui->comboBoxThirdDartPoint, &QComboBox::currentTextChanged, this, &DialogTrueDarts::PointNameChanged); vis = new VisToolTrueDarts(data); @@ -127,9 +121,9 @@ void DialogTrueDarts::SetNewDartPointNames(const QString &firstPoint, const QStr ui->lineEditFirstNewDartPoint->blockSignals(false); CheckName(ui->lineEditFirstNewDartPoint, ui->labelFirstNewDartPoint, d1PointName, d2PointName, - ui->lineEditSecondNewDartPoint, flagName1); + ui->lineEditSecondNewDartPoint, flagName1); CheckName(ui->lineEditSecondNewDartPoint, ui->labelSecondNewDartPoint, d1PointName, d2PointName, - ui->lineEditFirstNewDartPoint, flagName2); + ui->lineEditFirstNewDartPoint, flagName2); } //--------------------------------------------------------------------------------------------------------------------- @@ -223,7 +217,7 @@ void DialogTrueDarts::SetChildrenId(const quint32 &ch1, const quint32 &ch2) //--------------------------------------------------------------------------------------------------------------------- void DialogTrueDarts::ChosenObject(quint32 id, const SceneObject &type) { - if (prepare == false)// After first choose we ignore all objects + if (prepare == false) // After first choose we ignore all objects { if (type == SceneObject::Point) { @@ -381,11 +375,11 @@ void DialogTrueDarts::SaveData() //--------------------------------------------------------------------------------------------------------------------- void DialogTrueDarts::NameChanged(QLabel *labelEditNamePoint, const QString &pointD1Name, const QString &pointD2Name, - QLineEdit* secondPointName, bool &flagName) + QLineEdit *secondPointName, bool &flagName) { SCASSERT(labelEditNamePoint != nullptr) SCASSERT(secondPointName != nullptr) - QLineEdit* edit = qobject_cast(sender()); + QLineEdit *edit = qobject_cast(sender()); if (edit) { CheckName(edit, labelEditNamePoint, pointD1Name, pointD2Name, secondPointName, flagName); @@ -414,10 +408,9 @@ void DialogTrueDarts::CheckName(QLineEdit *edit, QLabel *labelEditNamePoint, con const QString name = edit->text(); const QString secondName = secondPointName->text(); QRegularExpression rx(NameRegExp()); - if (name.isEmpty() - || secondName == name - || (pointD1Name != name && pointD2Name != name && data->IsUnique(name) == false) - || rx.match(name).hasMatch() == false) + if (name.isEmpty() || secondName == name || + (pointD1Name != name && pointD2Name != name && data->IsUnique(name) == false) || + rx.match(name).hasMatch() == false) { flagName = false; ChangeColor(labelEditNamePoint, errorColor); diff --git a/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp b/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp index 9c7ea8101..e8eb8708d 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp +++ b/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp @@ -30,6 +30,7 @@ #include "../../../tools/vtoolseamallowance.h" #include "../../../visualization/path/vistoolpiecepath.h" #include "../../support/dialogeditwrongformula.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vmodifierkey.h" #include "../vpatterndb/variables/vincrement.h" #include "../vpatterndb/vpiecenode.h" @@ -78,6 +79,8 @@ DialogPiecePath::DialogPiecePath(const VContainer *data, quint32 toolId, QWidget ui->setupUi(this); InitOkCancel(ui); + InitIcons(); + InitPathTab(); InitSeamAllowanceTab(); InitPassmarksTab(); @@ -310,6 +313,24 @@ void DialogPiecePath::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPiecePath::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPiecePath::ShowContextMenu(const QPoint &pos) { @@ -1137,7 +1158,8 @@ void DialogPiecePath::InitPathTab() { ui->lineEditName->setClearButtonEnabled(true); - FillComboBoxTypeLine(ui->comboBoxPenType, CurvePenStylesPics()); + FillComboBoxTypeLine(ui->comboBoxPenType, CurvePenStylesPics(ui->comboBoxPenType->palette().color(QPalette::Base), + ui->comboBoxPenType->palette().color(QPalette::Text))); connect(ui->lineEditName, &QLineEdit::textChanged, this, &DialogPiecePath::NameChanged); @@ -2202,3 +2224,24 @@ void DialogPiecePath::InitPassmarkAngleType(const VPieceNode &node) break; } } + +//--------------------------------------------------------------------------------------------------------------------- +void DialogPiecePath::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprWidth->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprBefore->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAfter->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprWidth_2->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprVisible->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_2->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_6->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_10->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_5->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} diff --git a/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.h b/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.h index f5325e5dd..5e1f91921 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.h +++ b/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.h @@ -33,12 +33,13 @@ namespace Ui { - class DialogPiecePath; +class DialogPiecePath; } class DialogPiecePath : public DialogTool { Q_OBJECT // NOLINT + public: explicit DialogPiecePath(const VContainer *data, quint32 toolId, QWidget *parent = nullptr); ~DialogPiecePath() override; @@ -65,6 +66,7 @@ protected: void CheckState() final; void ShowVisualization() override; void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; private slots: @@ -203,6 +205,8 @@ private: void InitPassmarkAngleFormula(const VPieceNode &node); void InitPassmarkShapeType(const VPieceNode &node); void InitPassmarkAngleType(const VPieceNode &node); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui b/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui index 8c87181f9..c47863d4d 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui +++ b/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui @@ -127,7 +127,7 @@ Move on top - ... + @@ -144,7 +144,7 @@ Move up - ... + @@ -161,7 +161,7 @@ Move down - ... + @@ -178,7 +178,7 @@ Move on bottom - ... + @@ -308,11 +308,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -328,7 +328,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -544,11 +544,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -564,7 +564,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -743,11 +743,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -763,7 +763,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -1313,7 +1313,7 @@ - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1538,7 +1538,7 @@ - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1763,7 +1763,7 @@ - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -2003,11 +2003,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -2023,7 +2023,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.cpp b/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.cpp index 93d8d715d..b9c44bbd9 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.cpp +++ b/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.cpp @@ -30,45 +30,46 @@ #include "../../../visualization/line/vistoolspecialpoint.h" #include "../../support/dialogeditwrongformula.h" +#include "../vmisc/theme/vtheme.h" +#include "../vpatterndb/vcontainer.h" + #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 7, 0) -#include "../vpatterndb/vcontainer.h" #include //--------------------------------------------------------------------------------------------------------------------- DialogPlaceLabel::DialogPlaceLabel(const VContainer *data, quint32 toolId, QWidget *parent) - : DialogTool(data, toolId, parent), - ui(new Ui::DialogPlaceLabel), - m_showMode(false), - m_formulaBaseHeightWidth(0), - m_formulaBaseHeightHeight(0), - m_formulaBaseHeightAngle(0), - m_formulaBaseVisible(0), - timerAngle(new QTimer(this)), - timerWidth(new QTimer(this)), - timerHeight(new QTimer(this)), - m_timerVisible(new QTimer(this)), - m_flagPoint(false), - m_flagWidth(false), - m_flagHeight(false), - m_flagAngle(false), - m_flagFormulaVisible(false), - m_flagError(false) + : DialogTool(data, toolId, parent), + ui(new Ui::DialogPlaceLabel), + m_showMode(false), + m_formulaBaseHeightWidth(0), + m_formulaBaseHeightHeight(0), + m_formulaBaseHeightAngle(0), + m_formulaBaseVisible(0), + timerAngle(new QTimer(this)), + timerWidth(new QTimer(this)), + timerHeight(new QTimer(this)), + m_timerVisible(new QTimer(this)), + m_flagPoint(false), + m_flagWidth(false), + m_flagHeight(false), + m_flagAngle(false), + m_flagFormulaVisible(false), + m_flagError(false) { ui->setupUi(this); InitOkCancel(ui); + InitIcons(); + InitPlaceLabelTab(); InitControlTab(); EvalVisible(); - connect(ui->comboBoxPiece, QOverload::of(&QComboBox::currentIndexChanged), this, [this]() - { - CheckPieces(); - }); + connect(ui->comboBoxPiece, QOverload::of(&QComboBox::currentIndexChanged), this, [this]() { CheckPieces(); }); vis = new VisToolSpecialPoint(data); } @@ -134,8 +135,8 @@ auto DialogPlaceLabel::GetWidth() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPlaceLabel::SetWidth(const QString &value) { - const QString formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formula.length() > 80) @@ -144,9 +145,9 @@ void DialogPlaceLabel::SetWidth(const QString &value) } ui->plainTextEditFormulaWidth->setPlainText(formula); -// VisToolPlaceLabel *point = qobject_cast(vis); -// SCASSERT(point != nullptr) -// point->SetPointId(id); + // VisToolPlaceLabel *point = qobject_cast(vis); + // SCASSERT(point != nullptr) + // point->SetPointId(id); MoveCursorToEnd(ui->plainTextEditFormulaWidth); } @@ -161,8 +162,8 @@ auto DialogPlaceLabel::GetHeight() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPlaceLabel::SetHeight(const QString &value) { - const QString formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formula.length() > 80) @@ -171,9 +172,9 @@ void DialogPlaceLabel::SetHeight(const QString &value) } ui->plainTextEditFormulaHeight->setPlainText(formula); -// VisToolPlaceLabel *point = qobject_cast(vis); -// SCASSERT(point != nullptr) -// point->SetPointId(id); + // VisToolPlaceLabel *point = qobject_cast(vis); + // SCASSERT(point != nullptr) + // point->SetPointId(id); MoveCursorToEnd(ui->plainTextEditFormulaHeight); } @@ -188,8 +189,8 @@ auto DialogPlaceLabel::GetAngle() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPlaceLabel::SetAngle(const QString &value) { - const QString formula = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString formula = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + value, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formula.length() > 80) @@ -198,9 +199,9 @@ void DialogPlaceLabel::SetAngle(const QString &value) } ui->plainTextEditFormulaAngle->setPlainText(formula); -// VisToolPlaceLabel *point = qobject_cast(vis); -// SCASSERT(point != nullptr) -// point->SetPointId(id); + // VisToolPlaceLabel *point = qobject_cast(vis); + // SCASSERT(point != nullptr) + // point->SetPointId(id); MoveCursorToEnd(ui->plainTextEditFormulaAngle); } @@ -290,6 +291,24 @@ void DialogPlaceLabel::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPlaceLabel::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPlaceLabel::DeployFormulaWidthEdit() { @@ -437,28 +456,22 @@ void DialogPlaceLabel::InitPlaceLabelTab() ui->plainTextEditFormulaAngle->installEventFilter(this); ui->plainTextEditFormulaWidth->setPlainText( - QString::number(UnitConvertor(1, Unit::Cm, VAbstractValApplication::VApp()->patternUnits()))); + QString::number(UnitConvertor(1, Unit::Cm, VAbstractValApplication::VApp()->patternUnits()))); ui->plainTextEditFormulaHeight->setPlainText( - QString::number(UnitConvertor(1, Unit::Cm, VAbstractValApplication::VApp()->patternUnits()))); + QString::number(UnitConvertor(1, Unit::Cm, VAbstractValApplication::VApp()->patternUnits()))); connect(ui->toolButtonExprWidth, &QPushButton::clicked, this, &DialogPlaceLabel::FXWidth); connect(ui->toolButtonExprHeight, &QPushButton::clicked, this, &DialogPlaceLabel::FXHeight); connect(ui->toolButtonExprAngle, &QPushButton::clicked, this, &DialogPlaceLabel::FXAngle); - connect(ui->plainTextEditFormulaWidth, &QPlainTextEdit::textChanged, this, [this]() - { - timerWidth->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormulaWidth, &QPlainTextEdit::textChanged, this, + [this]() { timerWidth->start(formulaTimerTimeout); }); - connect(ui->plainTextEditFormulaHeight, &QPlainTextEdit::textChanged, this, [this]() - { - timerHeight->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormulaHeight, &QPlainTextEdit::textChanged, this, + [this]() { timerHeight->start(formulaTimerTimeout); }); - connect(ui->plainTextEditFormulaAngle, &QPlainTextEdit::textChanged, this, [this]() - { - timerAngle->start(formulaTimerTimeout); - }); + connect(ui->plainTextEditFormulaAngle, &QPlainTextEdit::textChanged, this, + [this]() { timerAngle->start(formulaTimerTimeout); }); connect(ui->pushButtonGrowWidth, &QPushButton::clicked, this, &DialogPlaceLabel::DeployFormulaWidthEdit); connect(ui->pushButtonGrowHeight, &QPushButton::clicked, this, &DialogPlaceLabel::DeployFormulaHeightEdit); @@ -488,12 +501,9 @@ void DialogPlaceLabel::InitControlTab() connect(m_timerVisible, &QTimer::timeout, this, &DialogPlaceLabel::EvalVisible); connect(ui->toolButtonExprVisible, &QPushButton::clicked, this, &DialogPlaceLabel::FXVisible); - connect(ui->plainTextEditFormulaVisible, &QPlainTextEdit::textChanged, this, [this]() - { - m_timerVisible->start(formulaTimerTimeout); - }); - connect(ui->pushButtonGrowVisible, &QPushButton::clicked, this, - &DialogPlaceLabel::DeployVisibleFormulaTextEdit); + connect(ui->plainTextEditFormulaVisible, &QPlainTextEdit::textChanged, this, + [this]() { m_timerVisible->start(formulaTimerTimeout); }); + connect(ui->pushButtonGrowVisible, &QPushButton::clicked, this, &DialogPlaceLabel::DeployVisibleFormulaTextEdit); } //--------------------------------------------------------------------------------------------------------------------- @@ -547,6 +557,24 @@ void DialogPlaceLabel::CheckPoint() CheckState(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPlaceLabel::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + ui->toolButtonExprWidth->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprHeight->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + ui->toolButtonExprVisible->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + ui->label_4->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_5->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_6->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + ui->label_8->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); +} + //--------------------------------------------------------------------------------------------------------------------- auto DialogPlaceLabel::GetFormulaVisible() const -> QString { @@ -557,8 +585,8 @@ auto DialogPlaceLabel::GetFormulaVisible() const -> QString //--------------------------------------------------------------------------------------------------------------------- void DialogPlaceLabel::SetFormulaVisible(const QString &formula) { - const QString f = VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(formula, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + const QString f = VAbstractApplication::VApp()->TrVars()->FormulaToUser( + formula, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); // increase height if needed. if (f.length() > 80) { diff --git a/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.h b/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.h index e92e4fa8b..12ccdd2c3 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.h +++ b/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.h @@ -32,7 +32,7 @@ namespace Ui { - class DialogPlaceLabel; +class DialogPlaceLabel; } class VPlaceLabelItem; @@ -43,40 +43,41 @@ class DialogPlaceLabel : public DialogTool public: explicit DialogPlaceLabel(const VContainer *data, quint32 toolId, QWidget *parent = nullptr); - virtual ~DialogPlaceLabel(); + ~DialogPlaceLabel() override; void EnbleShowMode(bool disable); auto GetCenterPoint() const -> quint32; - void SetCenterPoint(quint32 id); + void SetCenterPoint(quint32 id); auto GetLabelType() const -> PlaceLabelType; - void SetLabelType(PlaceLabelType type); + void SetLabelType(PlaceLabelType type); auto GetWidth() const -> QString; - void SetWidth(const QString &value); + void SetWidth(const QString &value); auto GetHeight() const -> QString; - void SetHeight(const QString &value); + void SetHeight(const QString &value); auto GetAngle() const -> QString; - void SetAngle(const QString &value); + void SetAngle(const QString &value); auto GetPieceId() const -> quint32; - void SetPieceId(quint32 id); + void SetPieceId(quint32 id); auto GetFormulaVisible() const -> QString; - void SetFormulaVisible(const QString &formula); + void SetFormulaVisible(const QString &formula); - virtual void SetPiecesList(const QVector &list) override; + void SetPiecesList(const QVector &list) override; public slots: - virtual void ChosenObject(quint32 id, const SceneObject &type) override; + void ChosenObject(quint32 id, const SceneObject &type) override; protected: - virtual void ShowVisualization() override; - virtual void closeEvent(QCloseEvent *event) override; - virtual auto IsValid() const -> bool final; + void ShowVisualization() override; + void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; + auto IsValid() const -> bool final; private slots: void DeployFormulaWidthEdit(); @@ -124,6 +125,8 @@ private: void CheckPieces(); void CheckPoint(); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.ui b/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.ui index 259a54727..20e796d71 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.ui +++ b/src/libs/vtools/dialogs/tools/piece/dialogplacelabel.ui @@ -99,11 +99,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -119,7 +119,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -282,11 +282,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -302,7 +302,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -465,11 +465,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -485,7 +485,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -698,11 +698,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -718,7 +718,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp index c252f4e48..7d6a767ba 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp +++ b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp @@ -36,6 +36,7 @@ #include "../../support/dialogeditlabel.h" #include "../../support/dialogeditwrongformula.h" #include "../vgeometry/vplacelabelitem.h" +#include "../vmisc/theme/vtheme.h" #include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vmodifierkey.h" #include "../vmisc/vvalentinasettings.h" @@ -50,6 +51,7 @@ #include "dialogpatternmaterials.h" #include "dialogpiecepath.h" #include "dialogplacelabel.h" +#include "qstringliteral.h" #include "ui_dialogseamallowance.h" #include "ui_tabgrainline.h" #include "ui_tablabels.h" @@ -182,6 +184,8 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, quint32 toolId, InitPassmarksTab(); InitPlaceLabelsTab(); + InitIcons(); + ChangeColor(uiTabPaths->labelEditName, OkColor(this)); flagMainPathIsValid = MainPathIsValid(); @@ -693,6 +697,24 @@ void DialogSeamAllowance::resizeEvent(QResizeEvent *event) DialogTool::resizeEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSeamAllowance::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } + + if (event->type() == QEvent::PaletteChange) + { + InitIcons(); + InitDialogButtonBoxIcons(ui->buttonBox); + } + + // remember to call base class implementation + DialogTool::changeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogSeamAllowance::SetPatternDoc(VAbstractPattern *doc) { @@ -4434,6 +4456,43 @@ void DialogSeamAllowance::InitPassmarkAngleType(const VPieceNode &node) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSeamAllowance::InitIcons() +{ + const QString resource = QStringLiteral("icon"); + + const QString fxIcon = QStringLiteral("24x24/fx.png"); + uiTabGrainline->pushButtonRot->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabGrainline->pushButtonLen->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabLabels->pushButtonDLWidth->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabLabels->pushButtonDLHeight->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabLabels->pushButtonDLAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabLabels->pushButtonPLWidth->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabLabels->pushButtonPLHeight->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabLabels->pushButtonPLAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabPassmarks->toolButtonExprLength->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabPassmarks->toolButtonExprWidth->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabPassmarks->toolButtonExprAngle->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabPaths->toolButtonExprWidth->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabPaths->toolButtonExprBefore->setIcon(VTheme::GetIconResource(resource, fxIcon)); + uiTabPaths->toolButtonExprAfter->setIcon(VTheme::GetIconResource(resource, fxIcon)); + + const QString equalIcon = QStringLiteral("24x24/equal.png"); + uiTabGrainline->labelEqual->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabGrainline->labelEqual_2->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabLabels->labelEqual_3->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabLabels->labelEqual_4->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabLabels->labelEqual_5->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabLabels->labelEqual_7->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabLabels->labelEqual_6->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabLabels->labelEqual_8->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabPaths->label_2->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabPaths->label_6->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + uiTabPaths->label_10->setPixmap(VTheme::GetPixmapResource(resource, equalIcon)); + + uiTabPaths->label_3->setPixmap(VTheme::GetPixmapResource(resource, QStringLiteral("32x32/clockwise.png"))); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogSeamAllowance::SetMoveControls() { diff --git a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h index 0c7f223f6..57509c0f1 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h +++ b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h @@ -78,6 +78,7 @@ protected: void closeEvent(QCloseEvent *event) override; void showEvent(QShowEvent *event) override; void resizeEvent(QResizeEvent *event) override; + void changeEvent(QEvent *event) override; auto IsValid() const -> bool final; void SetPatternDoc(VAbstractPattern *doc) final; @@ -343,6 +344,8 @@ private: void InitPassmarkAngleFormula(const VPieceNode &node); void InitPassmarkShapeType(const VPieceNode &node); void InitPassmarkAngleType(const VPieceNode &node); + + void InitIcons(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/piece/tabs/tabgrainline.ui b/src/libs/vtools/dialogs/tools/piece/tabs/tabgrainline.ui index 98bf02fe3..25bef8c5f 100644 --- a/src/libs/vtools/dialogs/tools/piece/tabs/tabgrainline.ui +++ b/src/libs/vtools/dialogs/tools/piece/tabs/tabgrainline.ui @@ -116,11 +116,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -136,7 +136,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -305,11 +305,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -325,7 +325,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui b/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui index a9a2fe3da..0c5b905d5 100644 --- a/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui +++ b/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui @@ -36,7 +36,7 @@ - 0 + 1 @@ -548,11 +548,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -568,7 +568,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -737,11 +737,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -757,7 +757,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -984,11 +984,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1004,7 +1004,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -1226,11 +1226,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1246,7 +1246,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -1415,11 +1415,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1435,7 +1435,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -1662,11 +1662,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -1682,7 +1682,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui b/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui index 4f4aac3d2..86bbf5b0e 100644 --- a/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui +++ b/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui @@ -437,7 +437,7 @@ - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -662,7 +662,7 @@ - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -890,7 +890,7 @@ - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png diff --git a/src/libs/vtools/dialogs/tools/piece/tabs/tabpaths.ui b/src/libs/vtools/dialogs/tools/piece/tabs/tabpaths.ui index b5657ab83..82ad9654f 100644 --- a/src/libs/vtools/dialogs/tools/piece/tabs/tabpaths.ui +++ b/src/libs/vtools/dialogs/tools/piece/tabs/tabpaths.ui @@ -57,7 +57,7 @@ - :/icon/32x32/clockwise.png + :/icon/light/32x32/clockwise.png @@ -111,7 +111,7 @@ Move on top - ... + @@ -128,7 +128,7 @@ Move up - ... + @@ -145,7 +145,7 @@ Move down - ... + @@ -162,7 +162,7 @@ Move on bottom - ... + @@ -457,11 +457,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -477,7 +477,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -696,11 +696,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -716,7 +716,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png @@ -886,11 +886,11 @@ Formula wizard - ... + - :/icon/24x24/fx.png:/icon/24x24/fx.png + :/icon/light/24x24/fx.png:/icon/light/24x24/fx.png @@ -906,7 +906,7 @@ - :/icon/24x24/equal.png + :/icon/light/24x24/equal.png diff --git a/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp b/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp index 758a98ccd..1e82684aa 100644 --- a/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp +++ b/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp @@ -36,14 +36,16 @@ #include #include -#include "../ifc/xml/vabstractpattern.h" -#include "vbackgroundimageitem.h" -#include "../vwidgets/global.h" -#include "../vmisc/vabstractvalapplication.h" -#include "../../undocommands/image/scalebackgroundimage.h" #include "../../undocommands/image/rotatebackgroundimage.h" +#include "../../undocommands/image/scalebackgroundimage.h" +#include "../ifc/xml/vabstractpattern.h" +#include "../vmisc/vabstractvalapplication.h" #include "../vmisc/vmath.h" +#include "../vwidgets/global.h" #include "../vwidgets/vmaingraphicsview.h" +#include "qstringliteral.h" +#include "theme/vtheme.h" +#include "vbackgroundimageitem.h" namespace { @@ -51,7 +53,7 @@ namespace auto RectTopPoint(const QRectF &rect) -> QPointF { QLineF edge(rect.topLeft(), rect.topRight()); - edge.setLength(edge.length()/2.); + edge.setLength(edge.length() / 2.); return edge.p2(); } @@ -59,7 +61,7 @@ auto RectTopPoint(const QRectF &rect) -> QPointF auto RectRightPoint(const QRectF &rect) -> QPointF { QLineF edge(rect.topRight(), rect.bottomRight()); - edge.setLength(edge.length()/2.); + edge.setLength(edge.length() / 2.); return edge.p2(); } @@ -67,7 +69,7 @@ auto RectRightPoint(const QRectF &rect) -> QPointF auto RectBottomPoint(const QRectF &rect) -> QPointF { QLineF edge(rect.bottomLeft(), rect.bottomRight()); - edge.setLength(edge.length()/2.); + edge.setLength(edge.length() / 2.); return edge.p2(); } @@ -75,15 +77,15 @@ auto RectBottomPoint(const QRectF &rect) -> QPointF auto RectLeftPoint(const QRectF &rect) -> QPointF { QLineF edge(rect.bottomLeft(), rect.topLeft()); - edge.setLength(edge.length()/2.); + edge.setLength(edge.length() / 2.); return edge.p2(); } -} // namespace +} // namespace //--------------------------------------------------------------------------------------------------------------------- -VBackgroundImageControls::VBackgroundImageControls(VAbstractPattern *doc, QGraphicsItem * parent) - : QGraphicsObject(parent), - m_doc(doc) +VBackgroundImageControls::VBackgroundImageControls(VAbstractPattern *doc, QGraphicsItem *parent) + : QGraphicsObject(parent), + m_doc(doc) { SCASSERT(doc != nullptr) setVisible(false); @@ -103,7 +105,6 @@ VBackgroundImageControls::VBackgroundImageControls(VAbstractPattern *doc, QGraph #endif } - //--------------------------------------------------------------------------------------------------------------------- void VBackgroundImageControls::ActivateControls(const QUuid &id) { @@ -156,9 +157,8 @@ void VBackgroundImageControls::DeactivateControls(QGraphicsItem *item) return; } - if (item->type() == type() || - item->type() == UserType + static_cast(Tool::BackgroundPixmapImage) || - item->type() == UserType + static_cast(Tool::BackgroundSVGImage)) + if (item->type() == type() || item->type() == UserType + static_cast(Tool::BackgroundPixmapImage) || + item->type() == UserType + static_cast(Tool::BackgroundSVGImage)) { return; } @@ -178,7 +178,7 @@ void VBackgroundImageControls::UpdateControls() prepareGeometryChange(); m_image = m_doc->GetBackgroundImage(m_id); - if(not m_customOrigin) + if (not m_customOrigin) { m_originPos = m_image.BoundingRect().center(); } @@ -199,21 +199,16 @@ auto VBackgroundImageControls::boundingRect() const -> QRectF { HandlerBoundingRect(BIHandleCorner::TopLeft, BIHandleCornerType::ScaleTopLeftBottomRight, TopLeftHandlerPosition()); - HandlerBoundingRect(BIHandleCorner::Top, BIHandleCornerType::ScaleTopBottom, - TopHandlerPosition()); + HandlerBoundingRect(BIHandleCorner::Top, BIHandleCornerType::ScaleTopBottom, TopHandlerPosition()); HandlerBoundingRect(BIHandleCorner::TopRight, BIHandleCornerType::ScaleTopRightBottomLeft, TopRightHandlerPosition()); - HandlerBoundingRect(BIHandleCorner::Right, BIHandleCornerType::ScaleRightLeft, - RightHandlerPosition()); + HandlerBoundingRect(BIHandleCorner::Right, BIHandleCornerType::ScaleRightLeft, RightHandlerPosition()); HandlerBoundingRect(BIHandleCorner::BottomRight, BIHandleCornerType::ScaleTopLeftBottomRight, BottomRightHandlerPosition()); - HandlerBoundingRect(BIHandleCorner::Bottom, BIHandleCornerType::ScaleTopBottom, - BottomHandlerPosition()); + HandlerBoundingRect(BIHandleCorner::Bottom, BIHandleCornerType::ScaleTopBottom, BottomHandlerPosition()); HandlerBoundingRect(BIHandleCorner::BottomLeft, BIHandleCornerType::ScaleTopRightBottomLeft, BottomLeftHandlerPosition()); - HandlerBoundingRect(BIHandleCorner::Left, BIHandleCornerType::ScaleRightLeft, - LeftHandlerPosition()); - + HandlerBoundingRect(BIHandleCorner::Left, BIHandleCornerType::ScaleRightLeft, LeftHandlerPosition()); } else if (m_tranformationType == BITransformationType::Rotate) { @@ -249,48 +244,42 @@ void VBackgroundImageControls::paint(QPainter *painter, const QStyleOptionGraphi { if (m_tranformationType == BITransformationType::Scale) { - painter->drawPixmap(TopLeftHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopLeft, - BIHandleCornerType::ScaleTopLeftBottomRight)); - painter->drawPixmap(TopHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::Top, - BIHandleCornerType::ScaleTopBottom)); + painter->drawPixmap(TopLeftHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopLeft, + BIHandleCornerType::ScaleTopLeftBottomRight)); + painter->drawPixmap(TopHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::Top, + BIHandleCornerType::ScaleTopBottom)); painter->drawPixmap(TopRightHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopRight, BIHandleCornerType::ScaleTopRightBottomLeft)); - painter->drawPixmap(RightHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::Right, - BIHandleCornerType::ScaleRightLeft)); + painter->drawPixmap(RightHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::Right, + BIHandleCornerType::ScaleRightLeft)); painter->drawPixmap(BottomRightHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::BottomRight, BIHandleCornerType::ScaleTopLeftBottomRight)); - painter->drawPixmap(BottomHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::Bottom, - BIHandleCornerType::ScaleTopBottom)); + painter->drawPixmap(BottomHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::Bottom, + BIHandleCornerType::ScaleTopBottom)); painter->drawPixmap(BottomLeftHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::BottomLeft, BIHandleCornerType::ScaleTopRightBottomLeft)); - painter->drawPixmap(LeftHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::Left, - BIHandleCornerType::ScaleRightLeft)); + painter->drawPixmap(LeftHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::Left, + BIHandleCornerType::ScaleRightLeft)); } else if (m_tranformationType == BITransformationType::Rotate) { - painter->drawPixmap(TopLeftHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopLeft, - BIHandleCornerType::RotateTopLeft)); + painter->drawPixmap(TopLeftHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopLeft, + BIHandleCornerType::RotateTopLeft)); - painter->drawPixmap(TopRightHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopRight, - BIHandleCornerType::RotateTopRight)); + painter->drawPixmap( + TopRightHandlerPosition(), + HandlerPixmap(m_handleCornerHover == BIHandleCorner::TopRight, BIHandleCornerType::RotateTopRight)); painter->drawPixmap(BottomRightHandlerPosition(), HandlerPixmap(m_handleCornerHover == BIHandleCorner::BottomRight, BIHandleCornerType::RotateBottomRight)); - painter->drawPixmap(BottomLeftHandlerPosition(), - HandlerPixmap(m_handleCornerHover == BIHandleCorner::BottomLeft, - BIHandleCornerType::RotateBottomLeft)); + painter->drawPixmap( + BottomLeftHandlerPosition(), + HandlerPixmap(m_handleCornerHover == BIHandleCorner::BottomLeft, BIHandleCornerType::RotateBottomLeft)); } } @@ -301,7 +290,7 @@ void VBackgroundImageControls::paint(QPainter *painter, const QStyleOptionGraphi painter->setPen(pen); QRectF rect = m_image.BoundingRect(); - rect = QRectF(rect.topLeft()*sceneScale, rect.bottomRight()*sceneScale); + rect = QRectF(rect.topLeft() * sceneScale, rect.bottomRight() * sceneScale); painter->drawRect(rect.adjusted(-pen.width(), -pen.width(), pen.width(), pen.width())); painter->restore(); @@ -323,7 +312,7 @@ void VBackgroundImageControls::paint(QPainter *painter, const QStyleOptionGraphi //--------------------------------------------------------------------------------------------------------------------- void VBackgroundImageControls::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if(event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick) + if (event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick) { m_transformationApplied = true; m_controlsVisible = false; @@ -348,13 +337,13 @@ void VBackgroundImageControls::mousePressEvent(QGraphicsSceneMouseEvent *event) const qreal sceneScale = SceneScale(scene()); m_imageBoundingRect = m_image.BoundingRect(); - m_imageScreenBoundingRect = QRectF(m_imageBoundingRect.topLeft()*sceneScale, - QSizeF(m_imageBoundingRect.width()*sceneScale, - m_imageBoundingRect.height()*sceneScale)); + m_imageScreenBoundingRect = + QRectF(m_imageBoundingRect.topLeft() * sceneScale, + QSizeF(m_imageBoundingRect.width() * sceneScale, m_imageBoundingRect.height() * sceneScale)); m_originalMatrix = m_image.Matrix(); - switch(m_handleCornerHover) + switch (m_handleCornerHover) { case BIHandleCorner::TopLeft: m_scaleDiff = event->pos() - m_imageScreenBoundingRect.topLeft(); @@ -413,7 +402,7 @@ void VBackgroundImageControls::mouseMoveEvent(QGraphicsSceneMouseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void VBackgroundImageControls::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - if(event->button() == Qt::LeftButton) + if (event->button() == Qt::LeftButton) { if (SelectedHandleCorner(event->pos()) != BIHandleCorner::Invalid) { @@ -495,43 +484,35 @@ void VBackgroundImageControls::InitPixmaps() m_handleDisabledPixmaps.clear(); m_handlePaths.clear(); - auto InitPixmap = [this](BIHandleCornerType type, const QString &fileName) + auto InitPixmap = [this](BIHandleCornerType type, const QString &imageName) { - const QFileInfo fileInfo(fileName); - const QString imageName = fileInfo.baseName(); + const QString fileName = QStringLiteral("32x32/%1.png").arg(imageName); + const QString fileNameHover = QStringLiteral("32x32/%1-hover.png").arg(imageName); + const QString fileNameDisabled = QStringLiteral("32x32/%1-disabled.png").arg(imageName); - const QString fileNameHover = QStringLiteral("%1/%2-hover.%3") - .arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); - - const QString fileNameDisabled = QStringLiteral("%1/%2-disabled.%3") - .arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); + const QString resource = QStringLiteral("icon"); #if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) - if (QGuiApplication::primaryScreen()->devicePixelRatio() >= 2 ) + if (QGuiApplication::primaryScreen()->devicePixelRatio() >= 2) { - const QString fileName2x = QStringLiteral("%1/%2@2x.%3") - .arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); + const QString fileName2x = QStringLiteral("32x32/%1@2x.png").arg(imageName); + const QString fileName2xHover = QStringLiteral("32x32/%1-hover@2x.png").arg(imageName); + const QString fileName2xDisabled = QStringLiteral("32x32/%1-disabled@2x.png").arg(imageName); - const QString fileName2xHover = QStringLiteral("%1/%2-hover@2x.%3") - .arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); - - const QString fileName2xDisabled = QStringLiteral("%1/%2-disabled@2x.%3") - .arg(fileInfo.absolutePath(), imageName, fileInfo.suffix()); - - m_handlePixmaps.insert(type, QPixmap(fileName2x)); - m_handleHoverPixmaps.insert(type, QPixmap(fileName2xHover)); - m_handleDisabledPixmaps.insert(type, QPixmap(fileName2xDisabled)); + m_handlePixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName2x)); + m_handleHoverPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName2xHover)); + m_handleDisabledPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName2xDisabled)); } else { - m_handlePixmaps.insert(type, QPixmap(fileName)); - m_handleHoverPixmaps.insert(type, QPixmap(fileNameHover)); - m_handleDisabledPixmaps.insert(type, QPixmap(fileNameDisabled)); + m_handlePixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName)); + m_handleHoverPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileNameHover)); + m_handleDisabledPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileNameDisabled)); } #else - m_handlePixmaps.insert(type, QPixmap(fileName)); - m_handleHoverPixmaps.insert(type, QPixmap(fileNameHover)); - m_handleDisabledPixmaps.insert(type, QPixmap(fileNameDisabled)); + m_handlePixmaps.insert(type, VTheme::GetPixmapResource(resource, fileName)); + m_handleHoverPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileNameHover)); + m_handleDisabledPixmaps.insert(type, VTheme::GetPixmapResource(resource, fileNameDisabled)); #endif QPainterPath p = PixmapToPainterPath(m_handlePixmaps.value(type)); p.setFillRule(Qt::WindingFill); @@ -539,14 +520,14 @@ void VBackgroundImageControls::InitPixmaps() m_handlePaths.insert(type, p); }; - InitPixmap(BIHandleCornerType::ScaleTopLeftBottomRight, QStringLiteral("://icon/32x32/expand2.png")); - InitPixmap(BIHandleCornerType::ScaleTopBottom, QStringLiteral("://icon/32x32/double-arrow-vertical.png")); - InitPixmap(BIHandleCornerType::ScaleTopRightBottomLeft, QStringLiteral("://icon/32x32/expand1.png")); - InitPixmap(BIHandleCornerType::ScaleRightLeft, QStringLiteral("://icon/32x32/double-arrow-horizontal.png")); - InitPixmap(BIHandleCornerType::RotateTopLeft, QStringLiteral("://icon/32x32/rotate-top-left.png")); - InitPixmap(BIHandleCornerType::RotateTopRight, QStringLiteral("://icon/32x32/rotate-top-right.png")); - InitPixmap(BIHandleCornerType::RotateBottomRight, QStringLiteral("://icon/32x32/rotate-bottom-right.png")); - InitPixmap(BIHandleCornerType::RotateBottomLeft, QStringLiteral("://icon/32x32/rotate-bottom-left.png")); + InitPixmap(BIHandleCornerType::ScaleTopLeftBottomRight, QStringLiteral("expand2")); + InitPixmap(BIHandleCornerType::ScaleTopBottom, QStringLiteral("double-arrow-vertical")); + InitPixmap(BIHandleCornerType::ScaleTopRightBottomLeft, QStringLiteral("expand1")); + InitPixmap(BIHandleCornerType::ScaleRightLeft, QStringLiteral("double-arrow-horizontal")); + InitPixmap(BIHandleCornerType::RotateTopLeft, QStringLiteral("rotate-top-left")); + InitPixmap(BIHandleCornerType::RotateTopRight, QStringLiteral("rotate-top-right")); + InitPixmap(BIHandleCornerType::RotateBottomRight, QStringLiteral("rotate-bottom-right")); + InitPixmap(BIHandleCornerType::RotateBottomLeft, QStringLiteral("rotate-bottom-left")); } //--------------------------------------------------------------------------------------------------------------------- @@ -561,7 +542,7 @@ auto VBackgroundImageControls::TopHandlerPosition() const -> QPointF QRectF rect = ControllersRect(); QPixmap handler = m_handlePixmaps.value(BIHandleCornerType::ScaleTopBottom); QSize size = handler.size() / handler.devicePixelRatio(); - return {rect.topLeft().x() + (rect.width()/2. - size.width()/2.), rect.topLeft().y()}; + return {rect.topLeft().x() + (rect.width() / 2. - size.width() / 2.), rect.topLeft().y()}; } //--------------------------------------------------------------------------------------------------------------------- @@ -580,7 +561,7 @@ auto VBackgroundImageControls::RightHandlerPosition() const -> QPointF QPixmap handler = m_handlePixmaps.value(BIHandleCornerType::ScaleRightLeft); QSize size = handler.size() / handler.devicePixelRatio(); return {rect.topLeft().x() + (rect.width() - size.width()), - rect.topLeft().y() + (rect.height()/2. - size.height()/2.)}; + rect.topLeft().y() + (rect.height() / 2. - size.height() / 2.)}; } //--------------------------------------------------------------------------------------------------------------------- @@ -589,8 +570,7 @@ auto VBackgroundImageControls::BottomRightHandlerPosition() const -> QPointF QRectF rect = ControllersRect(); QPixmap handler = m_handlePixmaps.value(BIHandleCornerType::ScaleTopLeftBottomRight); QSize size = handler.size() / handler.devicePixelRatio(); - return {rect.topLeft().x() + (rect.width() - size.width()), - rect.topLeft().y() + (rect.height() - size.height())}; + return {rect.topLeft().x() + (rect.width() - size.width()), rect.topLeft().y() + (rect.height() - size.height())}; } //--------------------------------------------------------------------------------------------------------------------- @@ -599,8 +579,8 @@ auto VBackgroundImageControls::BottomHandlerPosition() const -> QPointF QRectF rect = ControllersRect(); QPixmap handler = m_handlePixmaps.value(BIHandleCornerType::ScaleTopBottom); QSize size = handler.size() / handler.devicePixelRatio(); - return {rect.topLeft().x() + (rect.width()/2. - size.width()/2.), - rect.topLeft().y() + (rect.height() - size.height())}; + return {rect.topLeft().x() + (rect.width() / 2. - size.width() / 2.), + rect.topLeft().y() + (rect.height() - size.height())}; } //--------------------------------------------------------------------------------------------------------------------- @@ -618,7 +598,7 @@ auto VBackgroundImageControls::LeftHandlerPosition() const -> QPointF QRectF rect = ControllersRect(); QPixmap handler = m_handlePixmaps.value(BIHandleCornerType::ScaleRightLeft); QSize size = handler.size() / handler.devicePixelRatio(); - return {rect.topLeft().x(), rect.topLeft().y() + (rect.height()/2. - size.height()/2.)}; + return {rect.topLeft().x(), rect.topLeft().y() + (rect.height() / 2. - size.height() / 2.)}; } //--------------------------------------------------------------------------------------------------------------------- @@ -776,7 +756,7 @@ auto VBackgroundImageControls::ScaleByTopLeft(QGraphicsSceneMouseEvent *event) c if (newScalePoint.y() > rect.bottomRight().y()) { - newScalePoint.ry() = rect.bottomRight().y()- (newScalePoint.y() - rect.bottomRight().y()); + newScalePoint.ry() = rect.bottomRight().y() - (newScalePoint.y() - rect.bottomRight().y()); } diff = newScalePoint - rect.topLeft(); @@ -784,10 +764,10 @@ auto VBackgroundImageControls::ScaleByTopLeft(QGraphicsSceneMouseEvent *event) c nowRect = QRectF(newScalePoint, rect.bottomRight()); } - qreal scaleX = nowRect.width()/rect.width(); - qreal scaleY = nowRect.height()/rect.height(); + qreal scaleX = nowRect.width() / rect.width(); + qreal scaleY = nowRect.height() / rect.height(); - if (not (event->modifiers() & Qt::ControlModifier)) + if (not(event->modifiers() & Qt::ControlModifier)) { if (diff.x() > 0 && diff.x() >= diff.y()) { @@ -808,8 +788,8 @@ auto VBackgroundImageControls::ScaleByTopLeft(QGraphicsSceneMouseEvent *event) c QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : rectOriginal.bottomRight(); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : rectOriginal.bottomRight(); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); @@ -882,8 +862,8 @@ auto VBackgroundImageControls::ScaleByTop(QGraphicsSceneMouseEvent *event) const nowRect = QRectF(QPointF(rect.topLeft().x(), newScalePoint.y()), rect.bottomRight()); } - qreal scaleX = nowRect.height()/rect.height(); - qreal scaleY = nowRect.height()/rect.height(); + qreal scaleX = nowRect.height() / rect.height(); + qreal scaleY = nowRect.height() / rect.height(); if (event->modifiers() & Qt::ControlModifier) { @@ -894,8 +874,8 @@ auto VBackgroundImageControls::ScaleByTop(QGraphicsSceneMouseEvent *event) const QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : RectBottomPoint(rectOriginal); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : RectBottomPoint(rectOriginal); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); m.scale(scaleX, scaleY); @@ -994,14 +974,14 @@ auto VBackgroundImageControls::ScaleByTopRight(QGraphicsSceneMouseEvent *event) diff = newScalePoint - rect.topRight(); - nowRect = QRectF(QPointF(rect.topLeft().x(), newScalePoint.y()), - QPointF(newScalePoint.x(), rect.bottomRight().y())); + nowRect = + QRectF(QPointF(rect.topLeft().x(), newScalePoint.y()), QPointF(newScalePoint.x(), rect.bottomRight().y())); } - qreal scaleX = nowRect.width()/rect.width(); - qreal scaleY = nowRect.height()/rect.height(); + qreal scaleX = nowRect.width() / rect.width(); + qreal scaleY = nowRect.height() / rect.height(); - if (not (event->modifiers() & Qt::ControlModifier)) + if (not(event->modifiers() & Qt::ControlModifier)) { if (diff.x() < 0 && qAbs(diff.x()) >= qAbs(diff.y())) { @@ -1021,8 +1001,8 @@ auto VBackgroundImageControls::ScaleByTopRight(QGraphicsSceneMouseEvent *event) QPointF newScalePoint = pos - m_scaleDiff; QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : rectOriginal.bottomLeft(); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : rectOriginal.bottomLeft(); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); m.scale(scaleX, scaleY); @@ -1095,8 +1075,8 @@ auto VBackgroundImageControls::ScaleByRight(QGraphicsSceneMouseEvent *event) con nowRect = QRectF(rect.topLeft(), QPointF(newScalePoint.x(), rect.bottomRight().y())); } - qreal scaleX = nowRect.width()/rect.width(); - qreal scaleY = nowRect.width()/rect.width(); + qreal scaleX = nowRect.width() / rect.width(); + qreal scaleY = nowRect.width() / rect.width(); if (event->modifiers() & Qt::ControlModifier) { @@ -1107,8 +1087,8 @@ auto VBackgroundImageControls::ScaleByRight(QGraphicsSceneMouseEvent *event) con QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : RectLeftPoint(rectOriginal); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : RectLeftPoint(rectOriginal); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); m.scale(scaleX, scaleY); @@ -1205,10 +1185,10 @@ auto VBackgroundImageControls::ScaleByBottomRight(QGraphicsSceneMouseEvent *even nowRect = QRectF(rect.topLeft(), newScalePoint); } - qreal scaleX = nowRect.width()/rect.width(); - qreal scaleY = nowRect.height()/rect.height(); + qreal scaleX = nowRect.width() / rect.width(); + qreal scaleY = nowRect.height() / rect.height(); - if (not (event->modifiers() & Qt::ControlModifier)) + if (not(event->modifiers() & Qt::ControlModifier)) { if (diff.x() < 0 && diff.x() <= diff.y()) { @@ -1230,8 +1210,8 @@ auto VBackgroundImageControls::ScaleByBottomRight(QGraphicsSceneMouseEvent *even QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : rectOriginal.topLeft(); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : rectOriginal.topLeft(); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); @@ -1304,8 +1284,8 @@ auto VBackgroundImageControls::ScaleByBottom(QGraphicsSceneMouseEvent *event) co nowRect = QRectF(rect.topLeft(), QPointF(rect.bottomRight().x(), newScalePoint.y())); } - qreal scaleX = nowRect.height()/rect.height(); - qreal scaleY = nowRect.height()/rect.height(); + qreal scaleX = nowRect.height() / rect.height(); + qreal scaleY = nowRect.height() / rect.height(); if (event->modifiers() & Qt::ControlModifier) { @@ -1316,8 +1296,8 @@ auto VBackgroundImageControls::ScaleByBottom(QGraphicsSceneMouseEvent *event) co QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : RectTopPoint(rectOriginal); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : RectTopPoint(rectOriginal); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); m.scale(scaleX, scaleY); @@ -1394,7 +1374,7 @@ auto VBackgroundImageControls::ScaleByBottomLeft(QGraphicsSceneMouseEvent *event } else { - move = diff.y()*-1; + move = diff.y() * -1; } } qDebug() << move; @@ -1417,14 +1397,14 @@ auto VBackgroundImageControls::ScaleByBottomLeft(QGraphicsSceneMouseEvent *event diff = newScalePoint - rect.topRight(); - nowRect = QRectF(QPointF(newScalePoint.x(), rect.topLeft().y()), - QPointF(rect.bottomRight().x(), newScalePoint.y())); + nowRect = + QRectF(QPointF(newScalePoint.x(), rect.topLeft().y()), QPointF(rect.bottomRight().x(), newScalePoint.y())); } - qreal scaleX = nowRect.width()/rect.width(); - qreal scaleY = nowRect.height()/rect.height(); + qreal scaleX = nowRect.width() / rect.width(); + qreal scaleY = nowRect.height() / rect.height(); - if (not (event->modifiers() & Qt::ControlModifier)) + if (not(event->modifiers() & Qt::ControlModifier)) { if (diff.x() > 0 && diff.x() >= diff.y()) { @@ -1444,8 +1424,8 @@ auto VBackgroundImageControls::ScaleByBottomLeft(QGraphicsSceneMouseEvent *event QPointF newScalePoint = pos - m_scaleDiff; QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : rectOriginal.topRight(); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : rectOriginal.topRight(); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); m.scale(scaleX, scaleY); @@ -1517,8 +1497,8 @@ auto VBackgroundImageControls::ScaleByLeft(QGraphicsSceneMouseEvent *event) cons nowRect = QRectF(QPointF(newScalePoint.x(), rect.topLeft().y()), rect.bottomRight()); } - qreal scaleX = nowRect.width()/rect.width(); - qreal scaleY = nowRect.width()/rect.width(); + qreal scaleX = nowRect.width() / rect.width(); + qreal scaleY = nowRect.width() / rect.width(); if (event->modifiers() & Qt::ControlModifier) { @@ -1529,8 +1509,8 @@ auto VBackgroundImageControls::ScaleByLeft(QGraphicsSceneMouseEvent *event) cons QTransform m; - QPointF scaleCenterOriginal = (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() - : RectRightPoint(rectOriginal); + QPointF scaleCenterOriginal = + (event->modifiers() & Qt::ShiftModifier) ? rectOriginal.center() : RectRightPoint(rectOriginal); m.translate(scaleCenterOriginal.x(), scaleCenterOriginal.y()); m.scale(scaleX, scaleY); @@ -1581,7 +1561,7 @@ auto VBackgroundImageControls::ControllersRect() const -> QRectF QPixmap handler = m_handlePixmaps.value(BIHandleCornerType::ScaleTopLeftBottomRight); QRectF imageRect = m_image.BoundingRect(); - imageRect = QRectF(imageRect.topLeft()*scale, QSizeF(imageRect.width()*scale, imageRect.height()*scale)); + imageRect = QRectF(imageRect.topLeft() * scale, QSizeF(imageRect.width() * scale, imageRect.height() * scale)); QRectF rect = imageRect; if (imageRect.width() < handler.width()) @@ -1597,7 +1577,7 @@ auto VBackgroundImageControls::ControllersRect() const -> QRectF } const qreal gap = 2; - rect.adjust(- (handler.width() + gap), - (handler.height() + gap), handler.width() + gap, handler.height() + gap); + rect.adjust(-(handler.width() + gap), -(handler.height() + gap), handler.width() + gap, handler.height() + gap); return rect; } @@ -1614,22 +1594,16 @@ auto VBackgroundImageControls::SelectedHandleCorner(const QPointF &pos) const -> if (m_tranformationType == BITransformationType::Scale) { - corners = - { - {BIHandleCorner::TopLeft, ScaleTopLeftControl()}, - {BIHandleCorner::Top, ScaleTopControl()}, - {BIHandleCorner::TopRight, ScaleTopRightControl()}, - {BIHandleCorner::Right, ScaleRightControl()}, - {BIHandleCorner::BottomRight, ScaleBottomRightControl()}, - {BIHandleCorner::Bottom, ScaleBottomControl()}, - {BIHandleCorner::BottomLeft, ScaleBottomLeftControl()}, - {BIHandleCorner::Left, ScaleLeftControl()}, + corners = { + {BIHandleCorner::TopLeft, ScaleTopLeftControl()}, {BIHandleCorner::Top, ScaleTopControl()}, + {BIHandleCorner::TopRight, ScaleTopRightControl()}, {BIHandleCorner::Right, ScaleRightControl()}, + {BIHandleCorner::BottomRight, ScaleBottomRightControl()}, {BIHandleCorner::Bottom, ScaleBottomControl()}, + {BIHandleCorner::BottomLeft, ScaleBottomLeftControl()}, {BIHandleCorner::Left, ScaleLeftControl()}, }; } else if (m_tranformationType == BITransformationType::Rotate) { - corners = - { + corners = { {BIHandleCorner::TopLeft, RotateTopLeftControl()}, {BIHandleCorner::TopRight, RotateTopRightControl()}, {BIHandleCorner::BottomRight, RotateBottomRightControl()}, @@ -1638,12 +1612,10 @@ auto VBackgroundImageControls::SelectedHandleCorner(const QPointF &pos) const -> } QPainterPath circle; - circle.addEllipse(pos.x()-4, pos.y()-4, 8, 8); + circle.addEllipse(pos.x() - 4, pos.y() - 4, 8, 8); auto CheckCorner = [circle](const QPainterPath &handler) - { - return handler.intersects(circle) || handler.contains(circle); - }; + { return handler.intersects(circle) || handler.contains(circle); }; auto i = corners.constBegin(); while (i != corners.constEnd()) @@ -1684,7 +1656,7 @@ auto VBackgroundImageControls::OriginCircle1() const -> QPainterPath QPainterPath path; const qreal sceneScale = SceneScale(scene()); QPointF screeOrigin = m_originPos * sceneScale; - path.addEllipse({screeOrigin.x()-radius1, screeOrigin.y()-radius1, radius1*2., radius1*2.}); + path.addEllipse({screeOrigin.x() - radius1, screeOrigin.y() - radius1, radius1 * 2., radius1 * 2.}); return path; } @@ -1695,7 +1667,7 @@ auto VBackgroundImageControls::OriginCircle2() const -> QPainterPath QPainterPath path; const qreal sceneScale = SceneScale(scene()); QPointF screeOrigin = m_originPos * sceneScale; - path.addEllipse({screeOrigin.x()-radius2, screeOrigin.y()-radius2, radius2*2., radius2*2.}); + path.addEllipse({screeOrigin.x() - radius2, screeOrigin.y() - radius2, radius2 * 2., radius2 * 2.}); return path; } @@ -1719,46 +1691,38 @@ void VBackgroundImageControls::ScaleImage(QGraphicsSceneMouseEvent *event) QTransform imageMatrix = m_originalMatrix; const bool shiftModifier = event->modifiers() & Qt::ShiftModifier; - switch(m_handleCornerHover) + switch (m_handleCornerHover) { case BIHandleCorner::TopLeft: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : m_imageBoundingRect.bottomRight()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : m_imageBoundingRect.bottomRight()); imageMatrix *= ScaleByTopLeft(event); break; case BIHandleCorner::Top: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : RectBottomPoint(m_imageBoundingRect)); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : RectBottomPoint(m_imageBoundingRect)); imageMatrix *= ScaleByTop(event); break; case BIHandleCorner::TopRight: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : m_imageBoundingRect.bottomLeft()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : m_imageBoundingRect.bottomLeft()); imageMatrix *= ScaleByTopRight(event); break; case BIHandleCorner::Right: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : RectLeftPoint(m_imageBoundingRect)); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : RectLeftPoint(m_imageBoundingRect)); imageMatrix *= ScaleByRight(event); break; case BIHandleCorner::BottomRight: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : m_imageBoundingRect.topLeft()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : m_imageBoundingRect.topLeft()); imageMatrix *= ScaleByBottomRight(event); break; case BIHandleCorner::Bottom: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : RectTopPoint(m_imageBoundingRect)); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : RectTopPoint(m_imageBoundingRect)); imageMatrix *= ScaleByBottom(event); break; case BIHandleCorner::BottomLeft: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : m_imageBoundingRect.topRight()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : m_imageBoundingRect.topRight()); imageMatrix *= ScaleByBottomLeft(event); break; case BIHandleCorner::Left: - ShowOrigin(shiftModifier ? m_imageBoundingRect.center() - : RectRightPoint(m_imageBoundingRect)); + ShowOrigin(shiftModifier ? m_imageBoundingRect.center() : RectRightPoint(m_imageBoundingRect)); imageMatrix *= ScaleByLeft(event); break; case BIHandleCorner::Invalid: @@ -1779,23 +1743,19 @@ void VBackgroundImageControls::RotateImage(QGraphicsSceneMouseEvent *event) { const bool shiftModifier = event->modifiers() & Qt::ShiftModifier; - switch(m_handleCornerHover) + switch (m_handleCornerHover) { case BIHandleCorner::TopLeft: - ShowOrigin(shiftModifier ? m_imageBoundingRect.bottomRight() - : m_imageBoundingRect.center()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.bottomRight() : m_imageBoundingRect.center()); break; case BIHandleCorner::TopRight: - ShowOrigin(shiftModifier ? m_imageBoundingRect.bottomLeft() - : m_imageBoundingRect.center()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.bottomLeft() : m_imageBoundingRect.center()); break; case BIHandleCorner::BottomRight: - ShowOrigin(shiftModifier ? m_imageBoundingRect.topLeft() - : m_imageBoundingRect.center()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.topLeft() : m_imageBoundingRect.center()); break; case BIHandleCorner::BottomLeft: - ShowOrigin(shiftModifier ? m_imageBoundingRect.topRight() - : m_imageBoundingRect.center()); + ShowOrigin(shiftModifier ? m_imageBoundingRect.topRight() : m_imageBoundingRect.center()); break; default: break; @@ -1805,7 +1765,7 @@ void VBackgroundImageControls::RotateImage(QGraphicsSceneMouseEvent *event) { QPointF rotationNewPoint = event->pos(); const qreal sceneScale = SceneScale(scene()); - QPointF screenOriginPos = m_originPos*sceneScale; + QPointF screenOriginPos = m_originPos * sceneScale; QLineF initPosition(screenOriginPos, m_rotationStartPoint); QLineF initRotationPosition(screenOriginPos, rotationNewPoint); diff --git a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h index e31b6cf29..9c742ce53 100644 --- a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h +++ b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h @@ -35,54 +35,55 @@ struct VToolFlippingByAxisInitData : VAbstractOperationInitData { - VToolFlippingByAxisInitData() - : VAbstractOperationInitData(), - originPointId(NULL_ID), - axisType(AxisType::VerticalAxis) - {} - - quint32 originPointId; - AxisType axisType; + quint32 originPointId{NULL_ID}; + AxisType axisType{AxisType::VerticalAxis}; }; class VToolFlippingByAxis : public VAbstractFlipping { Q_OBJECT // NOLINT + public: - virtual ~VToolFlippingByAxis() = default; - virtual void SetDialog() override; + ~VToolFlippingByAxis() override = default; + + void SetDialog() override; + static auto Create(const QPointer &dialog, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data) -> VToolFlippingByAxis *; static auto Create(VToolFlippingByAxisInitData initData) -> VToolFlippingByAxis *; static const QString ToolType; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::FlippingByAxis)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::FlippingByAxis) + }; auto GetAxisType() const -> AxisType; - void SetAxisType(AxisType value); + void SetAxisType(AxisType value); auto OriginPointName() const -> QString; - virtual void ShowVisualization(bool show) override; + void ShowVisualization(bool show) override; + protected slots: - virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) override; + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID) override; + protected: - virtual void SetVisualization() override; - virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, - QList &newDependencies) override; - virtual void ReadToolAttributes(const QDomElement &domElement) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual auto MakeToolTip() const -> QString override; + void SetVisualization() override; + void SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) override; + void ReadToolAttributes(const QDomElement &domElement) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + auto MakeToolTip() const -> QString override; private: Q_DISABLE_COPY_MOVE(VToolFlippingByAxis) // NOLINT - quint32 m_originPointId; + quint32 m_originPointId; AxisType m_axisType; - VToolFlippingByAxis(const VToolFlippingByAxisInitData &initData, QGraphicsItem *parent = nullptr); + explicit VToolFlippingByAxis(const VToolFlippingByAxisInitData &initData, QGraphicsItem *parent = nullptr); }; #endif // VTOOLFLIPPINGBYAXIS_H diff --git a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp index cae04227e..aa6ef1374 100644 --- a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp @@ -27,15 +27,15 @@ *************************************************************************/ #include "vabstractoperation.h" +#include "../../../undocommands/deltool.h" #include "../../../undocommands/label/operationmovelabel.h" #include "../../../undocommands/label/operationshowlabel.h" #include "../../../undocommands/savetooloptions.h" #include "../../../undocommands/undogroup.h" -#include "../../../undocommands/deltool.h" #include "../vgeometry/vpointf.h" -const QString VAbstractOperation::TagItem = QStringLiteral("item"); -const QString VAbstractOperation::TagSource = QStringLiteral("source"); +const QString VAbstractOperation::TagItem = QStringLiteral("item"); +const QString VAbstractOperation::TagSource = QStringLiteral("source"); const QString VAbstractOperation::TagDestination = QStringLiteral("destination"); namespace @@ -60,12 +60,11 @@ auto VisibilityGroupDataFromSource(const VContainer *data, const QVector QString @@ -111,13 +110,13 @@ void VAbstractOperation::GroupVisibility(quint32 object, bool visible) VAbstractSimple *obj = operatedObjects.value(object); if (obj && obj->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(obj); + auto *item = qobject_cast(obj); SCASSERT(item != nullptr) item->setVisible(visible); } else { - VSimpleCurve *item = qobject_cast(obj); + auto *item = qobject_cast(obj); SCASSERT(item != nullptr) item->setVisible(visible); } @@ -140,7 +139,7 @@ void VAbstractOperation::ChangeLabelPosition(quint32 id, const QPointF &pos) VAbstractSimple *obj = operatedObjects.value(id); if (obj && obj->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(obj); + auto *item = qobject_cast(obj); SCASSERT(item != nullptr) QSharedPointer point = VAbstractTool::data.GeometricObject(id); point->setMx(pos.x()); @@ -178,7 +177,7 @@ void VAbstractOperation::SetLabelVisible(quint32 id, bool visible) VAbstractSimple *obj = operatedObjects.value(id); if (obj && obj->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(obj); + auto *item = qobject_cast(obj); SCASSERT(item != nullptr) const QSharedPointer point = VAbstractTool::data.GeometricObject(id); point->SetShowLabel(visible); @@ -247,10 +246,10 @@ auto VAbstractOperation::ExtractDestinationData(const QDomElement &domElement) - { DestinationItem d; d.id = VDomDocument::GetParametrUInt(element, AttrIdObject, NULL_ID_STR); - d.mx = VAbstractValApplication::VApp() - ->toPixel(VDomDocument::GetParametrDouble(element, AttrMx, QChar('1'))); - d.my = VAbstractValApplication::VApp() - ->toPixel(VDomDocument::GetParametrDouble(element, AttrMy, QChar('1'))); + d.mx = VAbstractValApplication::VApp()->toPixel( + VDomDocument::GetParametrDouble(element, AttrMx, QChar('1'))); + d.my = VAbstractValApplication::VApp()->toPixel( + VDomDocument::GetParametrDouble(element, AttrMy, QChar('1'))); d.showLabel = VDomDocument::GetParametrBool(element, AttrShowLabel, trueStr); destination.append(d); } @@ -281,14 +280,14 @@ void VAbstractOperation::FullUpdateFromFile() i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setToolTip(ComplexPointToolTip(i.key())); item->RefreshPointGeometry(*VAbstractTool::data.GeometricObject(i.key())); } else { - VSimpleCurve *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setToolTip(ComplexCurveToolTip(i.key())); item->RefreshGeometry(VAbstractTool::data.GeometricObject(i.key())); @@ -306,13 +305,13 @@ void VAbstractOperation::AllowHover(bool enabled) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setAcceptHoverEvents(enabled); } else { - VSimpleCurve *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setAcceptHoverEvents(enabled); } @@ -328,13 +327,13 @@ void VAbstractOperation::AllowSelecting(bool enabled) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setFlag(QGraphicsItem::ItemIsSelectable, enabled); } else { - VSimpleCurve *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setFlag(QGraphicsItem::ItemIsSelectable, enabled); } @@ -350,7 +349,7 @@ void VAbstractOperation::EnableToolMove(bool move) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->EnableToolMove(move); } @@ -366,7 +365,7 @@ void VAbstractOperation::AllowPointHover(bool enabled) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setAcceptHoverEvents(enabled); } @@ -382,7 +381,7 @@ void VAbstractOperation::AllowPointSelecting(bool enabled) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setFlag(QGraphicsItem::ItemIsSelectable, enabled); } @@ -398,7 +397,7 @@ void VAbstractOperation::AllowPointLabelHover(bool enabled) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->AllowLabelHover(enabled); } @@ -414,7 +413,7 @@ void VAbstractOperation::AllowPointLabelSelecting(bool enabled) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->AllowLabelSelecting(enabled); } @@ -483,7 +482,7 @@ void VAbstractOperation::ToolSelectionType(const SelectionType &type) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->ToolSelectionType(selectionType); } @@ -502,13 +501,13 @@ void VAbstractOperation::Disable(bool disable, const QString &namePP) i.next(); if (i.value()->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->SetEnabled(enabled); } else { - VSimpleCurve *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) item->setEnabled(enabled); } @@ -528,10 +527,10 @@ void VAbstractOperation::DeleteFromLabel() { DeleteToolWithConfirm(); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } } @@ -543,7 +542,7 @@ void VAbstractOperation::LabelChangePosition(const QPointF &pos, quint32 labelId VAbstractSimple *obj = operatedObjects.value(labelId); if (obj && obj->GetType() == GOType::Point) { - VSimplePoint *item = qobject_cast(obj); + auto *item = qobject_cast(obj); SCASSERT(item != nullptr) UpdateNamePosition(labelId, pos - item->pos()); } @@ -552,33 +551,33 @@ void VAbstractOperation::LabelChangePosition(const QPointF &pos, quint32 labelId //--------------------------------------------------------------------------------------------------------------------- VAbstractOperation::VAbstractOperation(const VAbstractOperationInitData &initData, QGraphicsItem *parent) - : VDrawTool(initData.doc, initData.data, initData.id, initData.notes), - QGraphicsLineItem(parent), - suffix(initData.suffix), - source(initData.source), - destination(initData.destination), - operatedObjects() + : VDrawTool(initData.doc, initData.data, initData.id, initData.notes), + QGraphicsLineItem(parent), + suffix(initData.suffix), + source(initData.source), + destination(initData.destination) { - connect(initData.doc, &VAbstractPattern::UpdateToolTip, this, [this]() - { - QMapIterator i(operatedObjects); - while (i.hasNext()) - { - i.next(); - if (i.value()->GetType() == GOType::Point) + connect(initData.doc, &VAbstractPattern::UpdateToolTip, this, + [this]() { - VSimplePoint *item = qobject_cast(i.value()); - SCASSERT(item != nullptr) - item->setToolTip(ComplexPointToolTip(i.key())); - } - else - { - VSimpleCurve *item = qobject_cast(i.value()); - SCASSERT(item != nullptr) - item->setToolTip(ComplexCurveToolTip(i.key())); - } - } - }); + QMapIterator i(operatedObjects); + while (i.hasNext()) + { + i.next(); + if (i.value()->GetType() == GOType::Point) + { + auto *item = qobject_cast(i.value()); + SCASSERT(item != nullptr) + item->setToolTip(ComplexPointToolTip(i.key())); + } + else + { + auto *item = qobject_cast(i.value()); + SCASSERT(item != nullptr) + item->setToolTip(ComplexCurveToolTip(i.key())); + } + } + }); } //--------------------------------------------------------------------------------------------------------------------- @@ -599,8 +598,8 @@ void VAbstractOperation::ChangeLabelVisibility(quint32 id, bool visible) if (obj && obj->GetType() == GOType::Point) { auto dItem = std::find_if(destination.begin(), destination.end(), - [id](const DestinationItem &dItem) { return dItem.id == id; }); - if (dItem != destination.cend()) + [id](const DestinationItem &dItem) { return dItem.id == id; }); + if (dItem != destination.end()) { dItem->showLabel = visible; } @@ -624,8 +623,8 @@ void VAbstractOperation::ApplyToolOptions(const QList &oldDependencies, if (updateToolOptions) { - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, oldDependencies, - newDependencies, doc, m_id); + auto *saveOptions = + new SaveToolOptions(oldDomElement, newDomElement, oldDependencies, newDependencies, doc, m_id); connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); VAbstractApplication::VApp()->getUndoStack()->push(saveOptions); } @@ -638,7 +637,7 @@ void VAbstractOperation::ApplyToolOptions(const QList &oldDependencies, { if (group != null_id) { - ChangeGroupOptions *groupOptions = new ChangeGroupOptions(doc, group, groupName, groupTags); + auto *groupOptions = new ChangeGroupOptions(doc, group, groupName, groupTags); connect(groupOptions, &ChangeGroupOptions::UpdateGroups, doc, &VAbstractPattern::UpdateVisiblityGroups); VAbstractApplication::VApp()->getUndoStack()->push(groupOptions); } @@ -658,7 +657,7 @@ void VAbstractOperation::ApplyToolOptions(const QList &oldDependencies, } else { - DelGroup *delGroup = new DelGroup(doc, group); + auto *delGroup = new DelGroup(doc, group); connect(delGroup, &DelGroup::UpdateGroups, doc, &VAbstractPattern::UpdateVisiblityGroups); VAbstractApplication::VApp()->getUndoStack()->push(delGroup); } @@ -682,13 +681,13 @@ void VAbstractOperation::PerformDelete() VAbstractApplication::VApp()->getUndoStack()->beginMacro(tr("delete operation")); qCDebug(vTool, "Deleting the linked group."); - DelGroup *delGroup = new DelGroup(doc, group); + auto *delGroup = new DelGroup(doc, group); connect(delGroup, &DelGroup::UpdateGroups, doc, &VAbstractPattern::UpdateVisiblityGroups); VAbstractApplication::VApp()->getUndoStack()->push(delGroup); } qCDebug(vTool, "Deleting the tool."); - DelTool *delTool = new DelTool(doc, m_id); + auto *delTool = new DelTool(doc, m_id); connect(delTool, &DelTool::NeedFullParsing, doc, &VAbstractPattern::NeedFullParsing); VAbstractApplication::VApp()->getUndoStack()->push(delTool); @@ -727,7 +726,7 @@ void VAbstractOperation::UpdateNamePosition(quint32 id, const QPointF &pos) if (obj && obj->GetType() == GOType::Point) { auto dItem = std::find_if(destination.begin(), destination.end(), - [id](const DestinationItem &dItem) { return dItem.id == id; }); + [id](const DestinationItem &dItem) { return dItem.id == id; }); if (dItem != destination.end()) { dItem->mx = pos.x(); @@ -744,17 +743,17 @@ void VAbstractOperation::SaveSourceDestination(QDomElement &tag) VAbstractPattern::RemoveAllChildren(tag); QDomElement tagObjects = doc->createElement(TagSource); - for (const auto& sItem : qAsConst(source)) + for (const auto &sItem : qAsConst(source)) { QDomElement item = doc->createElement(TagItem); doc->SetAttribute(item, AttrIdObject, sItem.id); doc->SetAttributeOrRemoveIf(item, AttrAlias, sItem.alias, - [](const QString &alias) noexcept {return alias.isEmpty();}); + [](const QString &alias) noexcept { return alias.isEmpty(); }); doc->SetAttributeOrRemoveIf(item, AttrPenStyle, sItem.penStyle, [](const QString &penStyle) noexcept - {return penStyle == TypeLineDefault;}); + { return penStyle == TypeLineDefault; }); doc->SetAttributeOrRemoveIf(item, AttrColor, sItem.color, - [](const QString &color) noexcept {return color == ColorDefault;}); + [](const QString &color) noexcept { return color == ColorDefault; }); tagObjects.appendChild(item); } tag.appendChild(tagObjects); @@ -769,20 +768,20 @@ void VAbstractOperation::SaveSourceDestination(QDomElement &tag) doc->SetAttributeOrRemoveIf(item, AttrMx, VAbstractValApplication::VApp()->fromPixel(dItem.mx), [obj](double value) noexcept - { - Q_UNUSED(value) - return obj && obj->GetType() != GOType::Point; - }); + { + Q_UNUSED(value) + return obj && obj->GetType() != GOType::Point; + }); doc->SetAttributeOrRemoveIf(item, AttrMy, VAbstractValApplication::VApp()->fromPixel(dItem.my), - [obj](double value ) noexcept - { - Q_UNUSED(value) - return obj && obj->GetType() != GOType::Point; - }); + [obj](double value) noexcept + { + Q_UNUSED(value) + return obj && obj->GetType() != GOType::Point; + }); doc->SetAttributeOrRemoveIf(item, AttrShowLabel, dItem.showLabel, - [](bool showLabel) noexcept {return showLabel;}); + [](bool showLabel) noexcept { return showLabel; }); tagObjects.appendChild(item); } @@ -793,19 +792,14 @@ void VAbstractOperation::SaveSourceDestination(QDomElement &tag) void VAbstractOperation::InitCurve(quint32 id, VContainer *data, GOType curveType, SceneObject sceneType) { const QSharedPointer initCurve = data->GeometricObject(id); - VSimpleCurve *curve = new VSimpleCurve(id, initCurve); + auto *curve = new VSimpleCurve(id, initCurve); curve->setParentItem(this); curve->SetType(curveType); curve->setToolTip(ComplexCurveToolTip(id)); connect(curve, &VSimpleCurve::Selected, this, &VAbstractOperation::ObjectSelected); - connect(curve, &VSimpleCurve::ShowContextMenu, this, [this](QGraphicsSceneContextMenuEvent * event, quint32 id) - { - ShowContextMenu(event, id); - }); - connect(curve, &VSimpleCurve::Choosed, this, [this, sceneType](quint32 id) - { - emit ChoosedTool(id, sceneType); - }); + connect(curve, &VSimpleCurve::ShowContextMenu, this, + [this](QGraphicsSceneContextMenuEvent *event, quint32 id) { ShowContextMenu(event, id); }); + connect(curve, &VSimpleCurve::Choosed, this, [this, sceneType](quint32 id) { emit ChoosedTool(id, sceneType); }); connect(curve, &VSimpleCurve::Delete, this, &VAbstractOperation::DeleteFromLabel); curve->RefreshGeometry(VAbstractTool::data.GeometricObject(id)); operatedObjects.insert(id, curve); @@ -820,7 +814,7 @@ void VAbstractOperation::AllowCurveHover(bool enabled, GOType type) i.next(); if (i.value()->GetType() != GOType::Point) { - VSimpleCurve *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) if (item->GetType() == type) { @@ -839,7 +833,7 @@ void VAbstractOperation::AllowCurveSelecting(bool enabled, GOType type) i.next(); if (i.value()->GetType() != GOType::Point) { - VSimpleCurve *item = qobject_cast(i.value()); + auto *item = qobject_cast(i.value()); SCASSERT(item != nullptr) if (item->GetType() == type) { @@ -886,26 +880,21 @@ void VAbstractOperation::InitOperatedObjects() // This check helps to find missed objects in the switch Q_STATIC_ASSERT_X(static_cast(GOType::Unknown) == 8, "Not all objects were handled."); -QT_WARNING_PUSH -QT_WARNING_DISABLE_GCC("-Wswitch-default") - switch(static_cast(obj->getType())) + QT_WARNING_PUSH + QT_WARNING_DISABLE_GCC("-Wswitch-default") + switch (static_cast(obj->getType())) { case GOType::Point: { - auto *point = new VSimplePoint(object.id, QColor(Qt::black)); + auto *point = new VSimplePoint(object.id, VColorRole::PatternColor); point->setParentItem(this); point->SetType(GOType::Point); point->setToolTip(ComplexPointToolTip(object.id)); - connect(point, &VSimplePoint::Choosed, this, [this](quint32 id) - { - emit ChoosedTool(id, SceneObject::Point); - }); + connect(point, &VSimplePoint::Choosed, this, + [this](quint32 id) { emit ChoosedTool(id, SceneObject::Point); }); connect(point, &VSimplePoint::Selected, this, &VAbstractOperation::ObjectSelected); - connect(point, &VSimplePoint::ShowContextMenu, - this, [this](QGraphicsSceneContextMenuEvent * event, quint32 id) - { - ShowContextMenu(event, id); - }); + connect(point, &VSimplePoint::ShowContextMenu, this, + [this](QGraphicsSceneContextMenuEvent *event, quint32 id) { ShowContextMenu(event, id); }); connect(point, &VSimplePoint::Delete, this, &VAbstractOperation::DeleteFromLabel); connect(point, &VSimplePoint::NameChangedPosition, this, &VAbstractOperation::LabelChangePosition); point->RefreshPointGeometry(*VAbstractTool::data.GeometricObject(object.id)); @@ -931,7 +920,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default") Q_UNREACHABLE(); break; } -QT_WARNING_POP + QT_WARNING_POP } } @@ -942,7 +931,7 @@ auto VAbstractOperation::ComplexPointToolTip(quint32 itemId) const -> QString " %1: %2 " "%3" "") - .arg(tr("Label"), VAbstractTool::data.GetGObject(itemId)->name(), MakeToolTip()); + .arg(tr("Label"), VAbstractTool::data.GetGObject(itemId)->name(), MakeToolTip()); } //--------------------------------------------------------------------------------------------------------------------- @@ -955,9 +944,9 @@ auto VAbstractOperation::ComplexCurveToolTip(quint32 itemId) const -> QString " %3: %4 %5 " "%6" "") - .arg(tr("Label"), curve->ObjectName(), tr("Length")) - .arg(VAbstractValApplication::VApp()->fromPixel(curve->GetLength())) - .arg(UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true), MakeToolTip()); + .arg(tr("Label"), curve->ObjectName(), tr("Length")) + .arg(VAbstractValApplication::VApp()->fromPixel(curve->GetLength())) + .arg(UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true), MakeToolTip()); return toolTip; } @@ -968,10 +957,10 @@ auto VAbstractOperation::VisibilityGroupToolTip() const -> QString if (group != null_id) { return QStringLiteral(" %1: %2 ") - .arg(tr("Visibility group"), doc->GetGroupName(group)); // 1, 2 + .arg(tr("Visibility group"), doc->GetGroupName(group)); // 1, 2 } - return QString(); + return {}; } //--------------------------------------------------------------------------------------------------------------------- @@ -988,10 +977,8 @@ void VAbstractOperation::CreateVisibilityGroup(const VAbstractOperationInitData initData.visibilityGroupTags, groupData, initData.id); if (not group.isNull()) { - AddGroup *addGroup = new AddGroup(group, initData.doc); + auto *addGroup = new AddGroup(group, initData.doc); connect(addGroup, &AddGroup::UpdateGroups, initData.doc, &VAbstractPattern::UpdateVisiblityGroups); VAbstractApplication::VApp()->getUndoStack()->push(addGroup); } - - return; } diff --git a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h index 35f063cdf..23188c162 100644 --- a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h +++ b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h @@ -76,39 +76,40 @@ class VAbstractOperation : public VDrawTool, public QGraphicsLineItem Q_INTERFACES(QGraphicsItem) public: - virtual ~VAbstractOperation() = default; + ~VAbstractOperation() override = default; static const QString TagItem; static const QString TagSource; static const QString TagDestination; - virtual auto getTagName() const -> QString override; + auto getTagName() const -> QString override; auto Suffix() const -> QString; void SetSuffix(const QString &suffix); - virtual void SetNotes(const QString ¬es) override; + void SetNotes(const QString ¬es) override; auto SourceItems() const -> QVector; - virtual void GroupVisibility(quint32 object, bool visible) override; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; - virtual void ChangeLabelPosition(quint32 id, const QPointF &pos) override; + void GroupVisibility(quint32 object, bool visible) override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; + void ChangeLabelPosition(quint32 id, const QPointF &pos) override; - virtual auto IsLabelVisible(quint32 id) const -> bool override; - virtual void SetLabelVisible(quint32 id, bool visible) override; + auto IsLabelVisible(quint32 id) const -> bool override; + void SetLabelVisible(quint32 id, bool visible) override; static void ExtractData(const QDomElement &domElement, VAbstractOperationInitData &initData); static auto ExtractSourceData(const QDomElement &domElement) -> QVector; static auto ExtractDestinationData(const QDomElement &domElement) -> QVector; static auto OperationColorsList() -> QMap; -public slots: - virtual void FullUpdateFromFile() override; - virtual void AllowHover(bool enabled) override; - virtual void AllowSelecting(bool enabled) override; - virtual void EnableToolMove(bool move) override; +public slots: + void FullUpdateFromFile() override; + + void AllowHover(bool enabled) override; + void AllowSelecting(bool enabled) override; + void EnableToolMove(bool move) override; void AllowPointHover(bool enabled); void AllowPointSelecting(bool enabled); @@ -128,8 +129,8 @@ public slots: void AllowElArcHover(bool enabled); void AllowElArcSelecting(bool enabled); - virtual void ToolSelectionType(const SelectionType &type) override; - virtual void Disable(bool disable, const QString &namePP) override; + void ToolSelectionType(const SelectionType &type) override; + void Disable(bool disable, const QString &namePP) override; void ObjectSelected(bool selected, quint32 objId); void DeleteFromLabel(); void LabelChangePosition(const QPointF &pos, quint32 labelId); @@ -140,7 +141,7 @@ protected: QVector source; QVector destination; - QMap operatedObjects; + QMap operatedObjects{}; bool hasLinkedGroup{false}; QString groupName{}; @@ -148,15 +149,15 @@ protected: explicit VAbstractOperation(const VAbstractOperationInitData &initData, QGraphicsItem *parent = nullptr); - virtual void AddToFile() override; - virtual void ChangeLabelVisibility(quint32 id, bool visible) override; - virtual void ApplyToolOptions(const QList &oldDependencies, const QList &newDependencies, - const QDomElement &oldDomElement, const QDomElement &newDomElement) override; - virtual void PerformDelete() override; - virtual void ReadToolAttributes(const QDomElement &domElement) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + void AddToFile() override; + void ChangeLabelVisibility(quint32 id, bool visible) override; + void ApplyToolOptions(const QList &oldDependencies, const QList &newDependencies, + const QDomElement &oldDomElement, const QDomElement &newDomElement) override; + void PerformDelete() override; + void ReadToolAttributes(const QDomElement &domElement) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual void UpdateNamePosition(quint32 id, const QPointF &pos) override; + void UpdateNamePosition(quint32 id, const QPointF &pos) override; void SaveSourceDestination(QDomElement &tag); template void ShowToolVisualization(bool show); diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolmove.h b/src/libs/vtools/tools/drawTools/operation/vtoolmove.h index e0b613eb0..127a9a534 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolmove.h +++ b/src/libs/vtools/tools/drawTools/operation/vtoolmove.h @@ -29,7 +29,6 @@ #ifndef VTOOLMOVING_H #define VTOOLMOVING_H - #include #include #include @@ -37,10 +36,10 @@ #include #include -#include "vabstractoperation.h" +#include "../ifc/xml/vabstractpattern.h" #include "../vgeometry/vgeometrydef.h" #include "../vmisc/def.h" -#include "../ifc/xml/vabstractpattern.h" +#include "vabstractoperation.h" template class QSharedPointer; class VFormula; @@ -48,12 +47,13 @@ class VFormula; struct VToolMoveInitData : VAbstractOperationInitData { VToolMoveInitData() - : VAbstractOperationInitData(), - formulaAngle(), - formulaRotationAngle(), - formulaLength(), - rotationOrigin(NULL_ID) - {} + : VAbstractOperationInitData(), + formulaAngle(), + formulaRotationAngle(), + formulaLength(), + rotationOrigin(NULL_ID) + { + } QString formulaAngle; QString formulaRotationAngle; @@ -64,39 +64,46 @@ struct VToolMoveInitData : VAbstractOperationInitData class VToolMove : public VAbstractOperation { Q_OBJECT // NOLINT + public: - virtual ~VToolMove() = default; - virtual void SetDialog() override; + ~VToolMove() override = default; + + void SetDialog() override; + static auto Create(const QPointer &dialog, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data) -> VToolMove *; static auto Create(VToolMoveInitData &initData) -> VToolMove *; static const QString ToolType; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::Move)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::Move) + }; auto GetFormulaAngle() const -> VFormula; - void SetFormulaAngle(const VFormula &value); + void SetFormulaAngle(const VFormula &value); auto GetFormulaRotationAngle() const -> VFormula; - void SetFormulaRotationAngle(const VFormula &value); + void SetFormulaRotationAngle(const VFormula &value); auto GetFormulaLength() const -> VFormula; - void SetFormulaLength(const VFormula &value); + void SetFormulaLength(const VFormula &value); auto OriginPointName() const -> QString; - virtual void ShowVisualization(bool show) override; + void ShowVisualization(bool show) override; + protected slots: - virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) override; + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID) override; + protected: - virtual void SetVisualization() override; - virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, - QList &newDependencies) override; - virtual void ReadToolAttributes(const QDomElement &domElement) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual auto MakeToolTip() const -> QString override; + void SetVisualization() override; + void SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) override; + void ReadToolAttributes(const QDomElement &domElement) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + auto MakeToolTip() const -> QString override; private: Q_DISABLE_COPY_MOVE(VToolMove) // NOLINT diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp index 8900d9f0b..7cd102316 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp @@ -28,8 +28,6 @@ #include "vtoolrotation.h" -#include -#include #include #include #include @@ -37,36 +35,35 @@ #include #include #include +#include #include -#include "../../../dialogs/tools/dialogtool.h" #include "../../../dialogs/tools/dialogrotation.h" +#include "../../../dialogs/tools/dialogtool.h" #include "../../../visualization/line/operation/vistoolrotation.h" #include "../../../visualization/visualization.h" -#include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" -#include "../vgeometry/vellipticalarc.h" #include "../vgeometry/vcubicbezier.h" #include "../vgeometry/vcubicbezierpath.h" +#include "../vgeometry/vellipticalarc.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" #include "../vgeometry/vsplinepath.h" -#include "../vpatterndb/vtranslatevars.h" #include "../vmisc/vabstractapplication.h" #include "../vmisc/vcommonsettings.h" +#include "../vpatterndb/vtranslatevars.h" #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #include "../vmisc/diagnostic.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) -#include "../vpatterndb/vcontainer.h" -#include "../vpatterndb/vformula.h" -#include "../ifc/ifcdef.h" -#include "../ifc/exception/vexception.h" -#include "../vwidgets/vabstractsimple.h" -#include "../vwidgets/vmaingraphicsscene.h" #include "../../vabstracttool.h" #include "../../vdatatool.h" +#include "../ifc/exception/vexception.h" +#include "../ifc/ifcdef.h" #include "../vdrawtool.h" +#include "../vpatterndb/vcontainer.h" +#include "../vpatterndb/vformula.h" +#include "../vwidgets/vmaingraphicsscene.h" class QDomElement; class QGraphicsSceneContextMenuEvent; @@ -79,9 +76,9 @@ const QString VToolRotation::ToolType = QStringLiteral("rotation"); //--------------------------------------------------------------------------------------------------------------------- VToolRotation::VToolRotation(const VToolRotationInitData &initData, QGraphicsItem *parent) - : VAbstractOperation(initData, parent), - origPointId(initData.origin), - formulaAngle(initData.angle) + : VAbstractOperation(initData, parent), + origPointId(initData.origin), + formulaAngle(initData.angle) { InitOperatedObjects(); ToolCreation(initData.typeCreation); @@ -125,7 +122,7 @@ auto VToolRotation::Create(const QPointer &dialog, VMainGraphicsScen initData.typeCreation = Source::FromGui; initData.notes = dialogTool->GetNotes(); - VToolRotation* operation = Create(initData); + VToolRotation *operation = Create(initData); if (operation != nullptr) { operation->m_dialog = dialog; @@ -145,57 +142,55 @@ auto VToolRotation::Create(VToolRotationInitData &initData) -> VToolRotation * if (initData.typeCreation == Source::FromGui) { - initData.destination.clear();// Try to avoid mistake, value must be empty + initData.destination.clear(); // Try to avoid mistake, value must be empty - initData.id = initData.data->getNextId();//Just reserve id for tool + initData.id = initData.data->getNextId(); // Just reserve id for tool - for (auto object : qAsConst(initData.source)) + for (const auto &object : qAsConst(initData.source)) { const QSharedPointer obj = initData.data->GetGObject(object.id); // This check helps to find missed objects in the switch Q_STATIC_ASSERT_X(static_cast(GOType::Unknown) == 8, "Not all objects were handled."); -QT_WARNING_PUSH -QT_WARNING_DISABLE_GCC("-Wswitch-default") - switch(static_cast(obj->getType())) + QT_WARNING_PUSH + QT_WARNING_DISABLE_GCC("-Wswitch-default") + switch (static_cast(obj->getType())) { case GOType::Point: - initData.destination.append(CreatePoint(initData.id, object, oPoint, calcAngle, initData.suffix, - initData.data)); + initData.destination.append( + CreatePoint(initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::Arc: - initData.destination.append(CreateArc(initData.id, object, oPoint, calcAngle, - initData.suffix, initData.data)); + initData.destination.append( + CreateArc(initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::EllipticalArc: initData.destination.append(CreateArc(initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::Spline: - initData.destination.append(CreateCurve(initData.id, object, oPoint, calcAngle, - initData.suffix, initData.data)); + initData.destination.append( + CreateCurve(initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::SplinePath: - initData.destination.append(CreateCurveWithSegments(initData.id, object, oPoint, - calcAngle, initData.suffix, - initData.data)); + initData.destination.append(CreateCurveWithSegments( + initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::CubicBezier: initData.destination.append(CreateCurve(initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::CubicBezierPath: - initData.destination.append(CreateCurveWithSegments(initData.id, object, oPoint, - calcAngle, initData.suffix, - initData.data)); + initData.destination.append(CreateCurveWithSegments( + initData.id, object, oPoint, calcAngle, initData.suffix, initData.data)); break; case GOType::Unknown: case GOType::PlaceLabel: Q_UNREACHABLE(); break; } -QT_WARNING_POP + QT_WARNING_POP } } else @@ -208,9 +203,9 @@ QT_WARNING_POP // This check helps to find missed objects in the switch Q_STATIC_ASSERT_X(static_cast(GOType::Unknown) == 8, "Not all objects were handled."); -QT_WARNING_PUSH -QT_WARNING_DISABLE_GCC("-Wswitch-default") - switch(static_cast(obj->getType())) + QT_WARNING_PUSH + QT_WARNING_DISABLE_GCC("-Wswitch-default") + switch (static_cast(obj->getType())) { case GOType::Point: { @@ -247,7 +242,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default") Q_UNREACHABLE(); break; } -QT_WARNING_POP + QT_WARNING_POP } if (initData.parse != Document::FullParse) { @@ -263,12 +258,12 @@ QT_WARNING_POP } VAbstractTool::AddRecord(initData.id, Tool::Rotation, initData.doc); - VToolRotation *tool = new VToolRotation(initData); + auto *tool = new VToolRotation(initData); initData.scene->addItem(tool); InitOperationToolConnections(initData.scene, tool); VAbstractPattern::AddTool(initData.id, tool); initData.doc->IncrementReferens(originPoint.getIdTool()); - for (auto object : qAsConst(initData.source)) + for (const auto &object : qAsConst(initData.source)) { initData.doc->IncrementReferens(initData.data->GetGObject(object.id)->getIdTool()); } @@ -304,7 +299,7 @@ auto VToolRotation::GetFormulaAngle() const -> VFormula //--------------------------------------------------------------------------------------------------------------------- void VToolRotation::SetFormulaAngle(const VFormula &value) { - if (value.error() == false) + if (!value.error()) { formulaAngle = value.GetFormula(FormulaType::FromUser); @@ -326,10 +321,10 @@ void VToolRotation::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint { ContextMenu(event, id); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } } @@ -343,8 +338,8 @@ void VToolRotation::SetVisualization() visual->SetObjects(SourceToObjects(source)); visual->SetOriginPointId(origPointId); - visual->SetAngle(VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(formulaAngle, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); + visual->SetAngle(VAbstractApplication::VApp()->TrVars()->FormulaToUser( + formulaAngle, VAbstractApplication::VApp()->Settings()->GetOsSeparator())); visual->SetMode(Mode::Show); visual->RefreshGeometry(); } @@ -365,7 +360,7 @@ void VToolRotation::SaveDialog(QDomElement &domElement, QList &oldDepen doc->SetAttribute(domElement, AttrAngle, dialogTool->GetAngle()); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); doc->SetAttributeOrRemoveIf(domElement, AttrNotes, dialogTool->GetNotes(), - [](const QString ¬es) noexcept {return notes.isEmpty();}); + [](const QString ¬es) noexcept { return notes.isEmpty(); }); source = dialogTool->GetSourceObjects(); SaveSourceDestination(domElement); @@ -399,9 +394,9 @@ auto VToolRotation::MakeToolTip() const -> QString return QStringLiteral(" %1: %2 " " %3: %4° " "%5") - .arg(tr("Origin point"), OriginPointName(), tr("Rotation angle")) // 1, 2, 3 - .arg(GetFormulaAngle().getDoubleValue()) // 4 - .arg(VisibilityGroupToolTip()); // 5 + .arg(tr("Origin point"), OriginPointName(), tr("Rotation angle")) // 1, 2, 3 + .arg(GetFormulaAngle().getDoubleValue()) // 4 + .arg(VisibilityGroupToolTip()); // 5 } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h index b9586ee06..87e0f89fd 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h +++ b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h @@ -29,7 +29,6 @@ #ifndef VTOOLROTATION_H #define VTOOLROTATION_H - #include #include #include @@ -37,10 +36,10 @@ #include #include -#include "vabstractoperation.h" +#include "../ifc/xml/vabstractpattern.h" #include "../vgeometry/vgeometrydef.h" #include "../vmisc/def.h" -#include "../ifc/xml/vabstractpattern.h" +#include "vabstractoperation.h" template class QSharedPointer; class VFormula; @@ -48,10 +47,11 @@ class VFormula; struct VToolRotationInitData : VAbstractOperationInitData { VToolRotationInitData() - : VAbstractOperationInitData(), - origin(NULL_ID), - angle() - {} + : VAbstractOperationInitData(), + origin(NULL_ID), + angle() + { + } quint32 origin; QString angle; @@ -60,40 +60,47 @@ struct VToolRotationInitData : VAbstractOperationInitData class VToolRotation : public VAbstractOperation { Q_OBJECT // NOLINT + public: - virtual ~VToolRotation() = default; - virtual void SetDialog() override; + ~VToolRotation() override = default; + + void SetDialog() override; + static auto Create(const QPointer &dialog, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data) -> VToolRotation *; static auto Create(VToolRotationInitData &initData) -> VToolRotation *; static const QString ToolType; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::Rotation)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::Rotation) + }; auto OriginPointName() const -> QString; auto GetFormulaAngle() const -> VFormula; - void SetFormulaAngle(const VFormula &value); + void SetFormulaAngle(const VFormula &value); + + void ShowVisualization(bool show) override; - virtual void ShowVisualization(bool show) override; protected slots: - virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) override; + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID) override; + protected: - virtual void SetVisualization() override; - virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, - QList &newDependencies) override; - virtual void ReadToolAttributes(const QDomElement &domElement) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual auto MakeToolTip() const -> QString override; + void SetVisualization() override; + void SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) override; + void ReadToolAttributes(const QDomElement &domElement) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + auto MakeToolTip() const -> QString override; private: Q_DISABLE_COPY_MOVE(VToolRotation) // NOLINT quint32 origPointId; QString formulaAngle; - VToolRotation(const VToolRotationInitData &initData, QGraphicsItem *parent = nullptr); + explicit VToolRotation(const VToolRotationInitData &initData, QGraphicsItem *parent = nullptr); static auto CreatePoint(quint32 idTool, const SourceItem &sItem, const QPointF &origin, qreal angle, const QString &suffix, VContainer *data) -> DestinationItem; diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp index 04bf64ad1..9b48f68c3 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp @@ -49,6 +49,7 @@ #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/global.h" @@ -93,7 +94,9 @@ void VAbstractSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *o SceneScale(scene())); const QSharedPointer curve = VAbstractTool::data.GeometricObject(m_id); - setPen(QPen(CorrectColor(this, curve->GetColor()), width, LineStyleToPenStyle(curve->GetPenStyle()), Qt::RoundCap)); + QColor penColor = + VSceneStylesheet::CorrectToolColor(this, VSceneStylesheet::CorrectToolColorForDarkTheme(curve->GetColor())); + setPen(QPen(penColor, width, LineStyleToPenStyle(curve->GetPenStyle()), Qt::RoundCap)); auto PaintSpline = [this, curve](QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp index 99c71d5a4..f231501da 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp @@ -30,7 +30,6 @@ #include #include -#include #include #include "../../../dialogs/tools/dialogarcwithlength.h" diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp index 6e30d709a..dcc54c3b6 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp @@ -31,7 +31,6 @@ #include #include #include -#include #include #include "../../../dialogs/tools/dialogcubicbezier.h" diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp index c56404aea..158f2b89f 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp @@ -31,7 +31,6 @@ #include #include #include -#include #include #include "../../../dialogs/tools/dialogcubicbezierpath.h" diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp index 2656a566f..11206e134 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp @@ -30,7 +30,6 @@ #include #include -#include #include #include "../../../dialogs/tools/dialogellipticalarc.h" diff --git a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.cpp index b74c39397..a6799b046 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.cpp @@ -34,36 +34,35 @@ #include #include #include -#include #include #include "../../../../undocommands/label/movedoublelabel.h" #include "../../../../undocommands/label/showdoublelabel.h" +#include "../../../vabstracttool.h" +#include "../../../vdatatool.h" +#include "../../vdrawtool.h" #include "../ifc/exception/vexception.h" -#include "../ifc/exception/vexceptionbadid.h" #include "../ifc/xml/vabstractpattern.h" +#include "../vabstractpoint.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/theme/themeDef.h" #include "../vmisc/vabstractapplication.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/../ifc/ifcdef.h" #include "../vwidgets/vsimplepoint.h" -#include "../../../vabstracttool.h" -#include "../../../vdatatool.h" -#include "../../vdrawtool.h" -#include "../vabstractpoint.h" //--------------------------------------------------------------------------------------------------------------------- VToolDoublePoint::VToolDoublePoint(VAbstractPattern *doc, VContainer *data, quint32 id, quint32 p1id, quint32 p2id, const QString ¬es, QGraphicsItem *parent) - :VAbstractPoint(doc, data, id, notes), - QGraphicsPathItem(parent), - firstPoint(nullptr), - secondPoint(nullptr), - p1id(p1id), - p2id(p2id) + : VAbstractPoint(doc, data, id, notes), + QGraphicsPathItem(parent), + firstPoint(nullptr), + secondPoint(nullptr), + p1id(p1id), + p2id(p2id) { - firstPoint = new VSimplePoint(p1id, QColor(Qt::black)); + firstPoint = new VSimplePoint(p1id, VColorRole::PatternColor); firstPoint->setParentItem(this); firstPoint->setToolTip(ComplexToolTip(p1id)); connect(firstPoint, &VSimplePoint::Choosed, this, &VToolDoublePoint::Point1Choosed); @@ -73,7 +72,7 @@ VToolDoublePoint::VToolDoublePoint(VAbstractPattern *doc, VContainer *data, quin connect(firstPoint, &VSimplePoint::NameChangedPosition, this, &VToolDoublePoint::Label1ChangePosition); firstPoint->RefreshPointGeometry(*VAbstractTool::data.GeometricObject(p1id)); - secondPoint = new VSimplePoint(p2id, QColor(Qt::black)); + secondPoint = new VSimplePoint(p2id, VColorRole::PatternColor); secondPoint->setParentItem(this); secondPoint->setToolTip(ComplexToolTip(p2id)); connect(secondPoint, &VSimplePoint::Choosed, this, &VToolDoublePoint::Point2Choosed); @@ -302,16 +301,16 @@ void VToolDoublePoint::ToolSelectionType(const SelectionType &type) //--------------------------------------------------------------------------------------------------------------------- void VToolDoublePoint::UpdateNamePosition(quint32 id, const QPointF &pos) -{ +{ if (id == p1id) { VAbstractApplication::VApp()->getUndoStack()->push( - new MoveDoubleLabel(doc, pos, MoveDoublePoint::FirstPoint, m_id, p1id)); + new MoveDoubleLabel(doc, pos, MoveDoublePoint::FirstPoint, m_id, p1id)); } else if (id == p2id) { VAbstractApplication::VApp()->getUndoStack()->push( - new MoveDoubleLabel(doc, pos, MoveDoublePoint::SecondPoint, m_id, p2id)); + new MoveDoubleLabel(doc, pos, MoveDoublePoint::SecondPoint, m_id, p2id)); } } @@ -354,16 +353,16 @@ void VToolDoublePoint::keyReleaseEvent(QKeyEvent *event) { DeleteToolWithConfirm(); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } break; default: break; } - QGraphicsPathItem::keyReleaseEvent ( event ); + QGraphicsPathItem::keyReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- @@ -432,12 +431,12 @@ void VToolDoublePoint::ChangeLabelVisibility(quint32 id, bool visible) if (id == p1id) { VAbstractApplication::VApp()->getUndoStack()->push( - new ShowDoubleLabel(doc, m_id, p1id, visible, ShowDoublePoint::FirstPoint)); + new ShowDoubleLabel(doc, m_id, p1id, visible, ShowDoublePoint::FirstPoint)); } else if (id == p2id) { VAbstractApplication::VApp()->getUndoStack()->push( - new ShowDoubleLabel(doc, m_id, p2id, visible, ShowDoublePoint::SecondPoint)); + new ShowDoubleLabel(doc, m_id, p2id, visible, ShowDoublePoint::SecondPoint)); } } @@ -450,6 +449,6 @@ auto VToolDoublePoint::ComplexToolTip(quint32 itemId) const -> QString " %1: %2 " "%3" "") - .arg(tr("Label"), point->name(), MakeToolTip()); + .arg(tr("Label"), point->name(), MakeToolTip()); return toolTip; } diff --git a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.h b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.h index b9e58bbdc..53c35de61 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooldoublepoint.h @@ -29,7 +29,6 @@ #ifndef VTOOLDOUBLEPOINT_H #define VTOOLDOUBLEPOINT_H - #include #include #include @@ -44,60 +43,65 @@ class VSimplePoint; -class VToolDoublePoint: public VAbstractPoint, public QGraphicsPathItem +class VToolDoublePoint : public VAbstractPoint, public QGraphicsPathItem { Q_OBJECT // NOLINT + public: VToolDoublePoint(VAbstractPattern *doc, VContainer *data, quint32 id, quint32 p1id, quint32 p2id, - const QString ¬es, QGraphicsItem * parent = nullptr); - virtual ~VToolDoublePoint() = default; + const QString ¬es, QGraphicsItem *parent = nullptr); + ~VToolDoublePoint() override = default; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::DoublePoint)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::DoublePoint) + }; auto nameP1() const -> QString; - void setNameP1(const QString &name); + void setNameP1(const QString &name); auto nameP2() const -> QString; - void setNameP2(const QString &name); + void setNameP2(const QString &name); void SetNotes(const QString ¬es) override; - virtual void GroupVisibility(quint32 object, bool visible) override; - virtual void ChangeLabelPosition(quint32 id, const QPointF &pos) override; + void GroupVisibility(quint32 object, bool visible) override; + void ChangeLabelPosition(quint32 id, const QPointF &pos) override; + + auto IsLabelVisible(quint32 id) const -> bool override; + void SetLabelVisible(quint32 id, bool visible) override; - virtual auto IsLabelVisible(quint32 id) const -> bool override; - virtual void SetLabelVisible(quint32 id, bool visible) override; public slots: - void Label1ChangePosition(const QPointF &pos); - void Label2ChangePosition(const QPointF &pos); - virtual void Disable(bool disable, const QString &namePP) override; - virtual void EnableToolMove(bool move) override; - void Point1Choosed(); - void Point2Choosed(); - void Point1Selected(bool selected); - void Point2Selected(bool selected); - virtual void FullUpdateFromFile() override; - virtual void AllowHover(bool enabled) override; - virtual void AllowSelecting(bool enabled) override; - void AllowLabelHover(bool enabled); - void AllowLabelSelecting(bool enabled); + void Label1ChangePosition(const QPointF &pos); + void Label2ChangePosition(const QPointF &pos); + void Disable(bool disable, const QString &namePP) override; + void EnableToolMove(bool move) override; + void Point1Choosed(); + void Point2Choosed(); + void Point1Selected(bool selected); + void Point2Selected(bool selected); + void FullUpdateFromFile() override; + void AllowHover(bool enabled) override; + void AllowSelecting(bool enabled) override; + void AllowLabelHover(bool enabled); + void AllowLabelSelecting(bool enabled); virtual void ToolSelectionType(const SelectionType &type) override; protected: VSimplePoint *firstPoint; VSimplePoint *secondPoint; - quint32 p1id; - quint32 p2id; + quint32 p1id; + quint32 p2id; - virtual void UpdateNamePosition(quint32 id, const QPointF &pos) override; - virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void keyReleaseEvent(QKeyEvent * event) override; - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual void AddToFile() override; - virtual void ChangeLabelVisibility(quint32 id, bool visible) override; + void UpdateNamePosition(quint32 id, const QPointF &pos) override; + auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; + void keyReleaseEvent(QKeyEvent *event) override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + void AddToFile() override; + void ChangeLabelVisibility(quint32 id, bool visible) override; auto ComplexToolTip(quint32 itemId) const -> QString; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp index cf9c34f6f..9f48f676b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp @@ -44,9 +44,9 @@ #include "../ifc/xml/vdomdocument.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vpatterndb/vcontainer.h" #include "../vtoolsinglepoint.h" -#include "../vwidgets/global.h" #include "../vwidgets/scalesceneitems.h" template class QSharedPointer; @@ -71,7 +71,6 @@ VToolLinePoint::VToolLinePoint(VAbstractPattern *doc, VContainer *data, const qu formulaLength(formula), angle(angle), basePointId(basePointId), - mainLine(nullptr), lineColor(lineColor) { this->m_lineType = typeLine; @@ -79,7 +78,7 @@ VToolLinePoint::VToolLinePoint(VAbstractPattern *doc, VContainer *data, const qu QPointF point1 = static_cast(*data->GeometricObject(basePointId)); QPointF point2 = static_cast(*data->GeometricObject(id)); QLineF line(point1 - point2, QPointF()); - mainLine = new VScaledLine(line, this); + mainLine = new VScaledLine(line, VColorRole::CustomColor, this); mainLine->SetBoldLine(false); mainLine->setFlag(QGraphicsItem::ItemStacksBehindParent, true); mainLine->setVisible(not line.isNull()); @@ -95,7 +94,7 @@ VToolLinePoint::~VToolLinePoint() void VToolLinePoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { QPen mPen = mainLine->pen(); - mPen.setColor(CorrectColor(this, lineColor)); + mPen.setColor(VSceneStylesheet::CorrectToolColor(this, VSceneStylesheet::CorrectToolColorForDarkTheme(lineColor))); mPen.setStyle(LineStyleToPenStyle(m_lineType)); mainLine->setPen(mPen); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h index 3e08ca142..664c6f19f 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h @@ -29,24 +29,24 @@ #ifndef VTOOLLINEPOINT_H #define VTOOLLINEPOINT_H - #include #include #include #include #include +#include "../vmisc/def.h" #include "../vpatterndb/vformula.h" #include "../vtoolsinglepoint.h" -#include "../vmisc/def.h" template class QSharedPointer; struct VToolLinePointInitData : VToolSinglePointInitData { VToolLinePointInitData() - : VToolSinglePointInitData() - {} + : VToolSinglePointInitData() + { + } QString typeLine{TypeLineLine}; QString lineColor{ColorBlack}; @@ -58,52 +58,56 @@ struct VToolLinePointInitData : VToolSinglePointInitData class VToolLinePoint : public VToolSinglePoint { Q_OBJECT // NOLINT + public: - VToolLinePoint(VAbstractPattern *doc, VContainer *data, const quint32 &id, const QString &typeLine, const - QString &lineColor, const QString &formula, const quint32 &basePointId, const qreal &angle, - const QString ¬es, QGraphicsItem * parent = nullptr); + VToolLinePoint(VAbstractPattern *doc, VContainer *data, const quint32 &id, const QString &typeLine, + const QString &lineColor, const QString &formula, const quint32 &basePointId, const qreal &angle, + const QString ¬es, QGraphicsItem *parent = nullptr); virtual ~VToolLinePoint() override; virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::LinePoint)}; + enum + { + Type = UserType + static_cast(Tool::LinePoint) + }; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) override; + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; auto GetFormulaLength() const -> VFormula; - void SetFormulaLength(const VFormula &value); + void SetFormulaLength(const VFormula &value); auto BasePointName() const -> QString; auto GetAngle() const -> qreal; - void SetAngle(const qreal &value); + void SetAngle(const qreal &value); auto GetLineColor() const -> QString; - void SetLineColor(const QString &value); + void SetLineColor(const QString &value); public slots: - virtual void Disable(bool disable, const QString &namePP) override; - virtual void FullUpdateFromFile() override; + virtual void Disable(bool disable, const QString &namePP) override; + virtual void FullUpdateFromFile() override; + protected: /** @brief formula string with length formula. */ - QString formulaLength; + QString formulaLength; /** @brief angle line angle. */ - qreal angle; + qreal angle; /** @brief basePointId id base line point. */ - quint32 basePointId; + quint32 basePointId; /** @brief mainLine line item. */ - VScaledLine *mainLine; + VScaledLine *mainLine{nullptr}; /** @brief lineColor color of a line. */ - QString lineColor; + QString lineColor; - virtual void RefreshGeometry(); - virtual void RemoveReferens() override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + virtual void RefreshGeometry(); + virtual void RemoveReferens() override; + virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; virtual auto MakeToolTip() const -> QString override; private: diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp index 27bf855f8..a08ba771b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp @@ -45,11 +45,14 @@ #include #include -#include "../../../../dialogs/tools/dialogtool.h" #include "../../../../dialogs/tools/dialogsinglepoint.h" +#include "../../../../dialogs/tools/dialogtool.h" #include "../../../../undocommands/addpatternpiece.h" #include "../../../../undocommands/deletepatternpiece.h" #include "../../../../undocommands/movespoint.h" +#include "../../../vabstracttool.h" +#include "../../../vdatatool.h" +#include "../../vdrawtool.h" #include "../ifc/exception/vexception.h" #include "../ifc/ifcdef.h" #include "../vgeometry/vgobject.h" @@ -59,9 +62,6 @@ #include "../vwidgets/vgraphicssimpletextitem.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" -#include "../../../vabstracttool.h" -#include "../../../vdatatool.h" -#include "../../vdrawtool.h" #include "vtoolsinglepoint.h" const QString VToolBasePoint::ToolType = QStringLiteral("single"); @@ -72,13 +72,13 @@ const QString VToolBasePoint::ToolType = QStringLiteral("single"); * @param initData init data. * @param parent parent object. */ -VToolBasePoint::VToolBasePoint (const VToolBasePointInitData &initData, QGraphicsItem * parent ) - :VToolSinglePoint(initData.doc, initData.data, initData.id, initData.notes, parent), - namePP(initData.nameActivPP) +VToolBasePoint::VToolBasePoint(const VToolBasePointInitData &initData, QGraphicsItem *parent) + : VToolSinglePoint(initData.doc, initData.data, initData.id, initData.notes, parent), + namePP(initData.nameActivPP) { - m_baseColor = Qt::red; - this->setFlag(QGraphicsItem::ItemIsMovable, true); - this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); + SetColorRole(VColorRole::BasePointColor); + setFlag(QGraphicsItem::ItemIsMovable, true); + setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); m_namePoint->setBrush(Qt::black); ToolCreation(initData.typeCreation); } @@ -131,7 +131,7 @@ auto VToolBasePoint::Create(VToolBasePointInitData initData) -> VToolBasePoint * //--------------------------------------------------------------------------------------------------------------------- void VToolBasePoint::ShowVisualization(bool show) { - Q_UNUSED(show) //don't have any visualization for base point yet + Q_UNUSED(show) // don't have any visualization for base point yet } //--------------------------------------------------------------------------------------------------------------------- @@ -148,7 +148,7 @@ void VToolBasePoint::AddToFile() QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); SaveOptions(sPoint, obj); - //Create pattern piece structure + // Create pattern piece structure QDomElement patternPiece = doc->createElement(VAbstractPattern::TagDraw); doc->SetAttribute(patternPiece, AttrName, namePP); @@ -272,7 +272,7 @@ void VToolBasePoint::SaveDialog(QDomElement &domElement, QList &oldDepe doc->SetAttribute(domElement, AttrX, QString().setNum(VAbstractValApplication::VApp()->fromPixel(p.x()))); doc->SetAttribute(domElement, AttrY, QString().setNum(VAbstractValApplication::VApp()->fromPixel(p.y()))); doc->SetAttributeOrRemoveIf(domElement, AttrNotes, dialogTool->GetNotes(), - [](const QString ¬es) noexcept {return notes.isEmpty();}); + [](const QString ¬es) noexcept { return notes.isEmpty(); }); } //--------------------------------------------------------------------------------------------------------------------- @@ -334,7 +334,7 @@ auto VToolBasePoint::MakeToolTip() const -> QString const QString toolTip = QString("" "" "
%1: %2
") - .arg(tr("Label"), point->name()); + .arg(tr("Label"), point->name()); return toolTip; } @@ -360,11 +360,11 @@ void VToolBasePoint::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quin ContextMenu(event, id, RemoveOption::Disable); } } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { qCDebug(vTool, "Tool was deleted. Immediately leave method."); Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } qCDebug(vTool, "Context menu closed. Tool was not deleted."); } diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h index 8eb383c39..3141f19b2 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h @@ -29,18 +29,16 @@ #ifndef VTOOLBASEPOINT_H #define VTOOLBASEPOINT_H - #include #include #include #include #include #include -#include #include -#include "../vmisc/def.h" #include "../ifc/xml/vabstractpattern.h" +#include "../vmisc/def.h" #include "vtoolsinglepoint.h" template class QSharedPointer; @@ -48,11 +46,12 @@ template class QSharedPointer; struct VToolBasePointInitData : VToolSinglePointInitData { VToolBasePointInitData() - : VToolSinglePointInitData(), - nameActivPP(), - x(labelMX), - y(labelMY) - {} + : VToolSinglePointInitData(), + nameActivPP(), + x(labelMX), + y(labelMY) + { + } QString nameActivPP; qreal x; @@ -66,17 +65,21 @@ struct VToolBasePointInitData : VToolSinglePointInitData class VToolBasePoint : public VToolSinglePoint { Q_OBJECT // NOLINT + public: - virtual ~VToolBasePoint() =default; + virtual ~VToolBasePoint() = default; virtual void SetDialog() override; static auto Create(VToolBasePointInitData initData) -> VToolBasePoint *; static const QString ToolType; virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::BasePoint)}; + enum + { + Type = UserType + static_cast(Tool::BasePoint) + }; virtual void ShowVisualization(bool show) override; auto GetBasePointPos() const -> QPointF; - void SetBasePointPos(const QPointF &pos); + void SetBasePointPos(const QPointF &pos); public slots: virtual void FullUpdateFromFile() override; virtual void EnableToolMove(bool move) override; @@ -84,27 +87,29 @@ signals: /** * @brief FullUpdateTree handle if need update pattern file. */ - void LiteUpdateTree(); + void LiteUpdateTree(); + protected: virtual void AddToFile() override; virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; virtual void DeleteToolWithConfirm(bool ask = true) override; virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) override; - virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) override; - virtual void mousePressEvent( QGraphicsSceneMouseEvent * event ) override; - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override; + virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; virtual void SetVisualization() override {} virtual auto MakeToolTip() const -> QString override; private slots: - virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) override; + virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID) override; + private: Q_DISABLE_COPY_MOVE(VToolBasePoint) // NOLINT QString namePP; - VToolBasePoint (const VToolBasePointInitData &initData, QGraphicsItem * parent = nullptr ); + VToolBasePoint(const VToolBasePointInitData &initData, QGraphicsItem *parent = nullptr); }; #endif // VTOOLBASEPOINT_H diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h index e2cac7432..15ab3fb87 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h @@ -29,7 +29,6 @@ #ifndef VTOOLPOINTFROMARCANDTANGENT_H #define VTOOLPOINTFROMARCANDTANGENT_H - #include #include #include @@ -47,48 +46,51 @@ class VArc; struct VToolPointFromArcAndTangentInitData : VToolSinglePointInitData { - VToolPointFromArcAndTangentInitData() - : VToolSinglePointInitData(), - arcId(NULL_ID), - tangentPointId(NULL_ID), - crossPoint(CrossCirclesPoint::FirstPoint) - {} - - quint32 arcId; - quint32 tangentPointId; - CrossCirclesPoint crossPoint; + quint32 arcId{NULL_ID}; + quint32 tangentPointId{NULL_ID}; + CrossCirclesPoint crossPoint{CrossCirclesPoint::FirstPoint}; }; class VToolPointFromArcAndTangent : public VToolSinglePoint { Q_OBJECT // NOLINT + public: - virtual void SetDialog() override; + void SetDialog() override; + static auto Create(const QPointer &dialog, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data) -> VToolPointFromArcAndTangent *; static auto Create(VToolPointFromArcAndTangentInitData initData) -> VToolPointFromArcAndTangent *; + static auto FindPoint(const QPointF &p, const VArc *arc, const CrossCirclesPoint pType, QPointF *intersectionPoint) -> bool; + static const QString ToolType; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::PointFromArcAndTangent) }; + + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::PointFromArcAndTangent) + }; auto TangentPointName() const -> QString; auto ArcName() const -> QString; auto GetCrossCirclesPoint() const -> CrossCirclesPoint; - void SetCrossCirclesPoint(CrossCirclesPoint value); + void SetCrossCirclesPoint(CrossCirclesPoint value); + + void ShowVisualization(bool show) override; - virtual void ShowVisualization(bool show) override; protected slots: - virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) override; + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID) override; + protected: - virtual void RemoveReferens() override; - virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, - QList &newDependencies) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual void ReadToolAttributes(const QDomElement &domElement) override; - virtual void SetVisualization() override; + void RemoveReferens() override; + void SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + void ReadToolAttributes(const QDomElement &domElement) override; + void SetVisualization() override; + private: Q_DISABLE_COPY_MOVE(VToolPointFromArcAndTangent) // NOLINT @@ -96,7 +98,8 @@ private: quint32 tangentPointId; CrossCirclesPoint crossPoint; - VToolPointFromArcAndTangent(const VToolPointFromArcAndTangentInitData &initData, QGraphicsItem *parent = nullptr); + explicit VToolPointFromArcAndTangent(const VToolPointFromArcAndTangentInitData &initData, + QGraphicsItem *parent = nullptr); }; #endif // VTOOLPOINTFROMARCANDTANGENT_H diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp index 9b553eba2..e29bb2638 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp @@ -34,8 +34,9 @@ #include "../../../../dialogs/tools/dialogpointofintersectioncurves.h" #include "../../../../dialogs/tools/dialogtool.h" -#include "../../../../visualization/path/../visualization.h" #include "../../../../visualization/path/vistoolpointofintersectioncurves.h" +#include "../../../vabstracttool.h" +#include "../../vdrawtool.h" #include "../ifc/exception/vexception.h" #include "../ifc/exception/vexceptionobjecterror.h" #include "../ifc/ifcdef.h" @@ -44,8 +45,6 @@ #include "../vgeometry/vpointf.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vmaingraphicsscene.h" -#include "../../../vabstracttool.h" -#include "../../vdrawtool.h" #include "vtoolsinglepoint.h" template class QSharedPointer; @@ -55,17 +54,17 @@ const QString VToolPointOfIntersectionCurves::ToolType = QStringLiteral("pointOf //--------------------------------------------------------------------------------------------------------------------- VToolPointOfIntersectionCurves::VToolPointOfIntersectionCurves(const VToolPointOfIntersectionCurvesInitData &initData, QGraphicsItem *parent) - :VToolSinglePoint(initData.doc, initData.data, initData.id, initData.notes, parent), - firstCurveId(initData.firstCurveId), - secondCurveId(initData.secondCurveId), - vCrossPoint(initData.vCrossPoint), - hCrossPoint(initData.hCrossPoint), - m_curve1Segments(initData.curve1Segments), - m_curve2Segments(initData.curve2Segments), - m_curve1AliasSuffix1(initData.curve1AliasSuffix1), - m_curve1AliasSuffix2(initData.curve1AliasSuffix2), - m_curve2AliasSuffix1(initData.curve2AliasSuffix1), - m_curve2AliasSuffix2(initData.curve2AliasSuffix2) + : VToolSinglePoint(initData.doc, initData.data, initData.id, initData.notes, parent), + firstCurveId(initData.firstCurveId), + secondCurveId(initData.secondCurveId), + vCrossPoint(initData.vCrossPoint), + hCrossPoint(initData.hCrossPoint), + m_curve1Segments(initData.curve1Segments), + m_curve2Segments(initData.curve2Segments), + m_curve1AliasSuffix1(initData.curve1AliasSuffix1), + m_curve1AliasSuffix2(initData.curve1AliasSuffix2), + m_curve2AliasSuffix1(initData.curve2AliasSuffix1), + m_curve2AliasSuffix2(initData.curve2AliasSuffix2) { ToolCreation(initData.typeCreation); } @@ -95,7 +94,7 @@ auto VToolPointOfIntersectionCurves::Create(const QPointer &dialog, { SCASSERT(not dialog.isNull()) const QPointer dialogTool = - qobject_cast(dialog); + qobject_cast(dialog); SCASSERT(not dialogTool.isNull()) QT_WARNING_PUSH @@ -143,9 +142,10 @@ auto VToolPointOfIntersectionCurves::Create(VToolPointOfIntersectionCurvesInitDa if (not success) { const QString errorMsg = tr("Error calculating point '%1'. Curves '%2' and '%3' have no point of intersection") - .arg(initData.name, curve1->name(), curve2->name()); - VAbstractApplication::VApp()->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; + .arg(initData.name, curve1->name(), curve2->name()); + VAbstractApplication::VApp()->IsPedantic() + ? throw VExceptionObjectError(errorMsg) + : qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } const qreal segLength1 = curve1->GetLengthByPoint(fPoint); @@ -158,39 +158,34 @@ auto VToolPointOfIntersectionCurves::Create(VToolPointOfIntersectionCurvesInitDa { initData.id = initData.data->AddGObject(p); - initData.curve1Segments = VToolSinglePoint::InitSegments(curve1->getType(), segLength1, p, - initData.firstCurveId, initData.data, - initData.curve1AliasSuffix1, - initData.curve1AliasSuffix2); - initData.curve2Segments = VToolSinglePoint::InitSegments(curve2->getType(), segLength2, p, - initData.secondCurveId, initData.data, - initData.curve2AliasSuffix1, - initData.curve2AliasSuffix2); + initData.curve1Segments = + VToolSinglePoint::InitSegments(curve1->getType(), segLength1, p, initData.firstCurveId, initData.data, + initData.curve1AliasSuffix1, initData.curve1AliasSuffix2); + initData.curve2Segments = + VToolSinglePoint::InitSegments(curve2->getType(), segLength2, p, initData.secondCurveId, initData.data, + initData.curve2AliasSuffix1, initData.curve2AliasSuffix2); } else { initData.data->UpdateGObject(initData.id, p); - initData.curve1Segments = VToolSinglePoint::InitSegments(curve1->getType(), segLength1, p, - initData.firstCurveId, initData.data, - initData.curve1AliasSuffix1, - initData.curve1AliasSuffix2); - initData.curve2Segments = VToolSinglePoint::InitSegments(curve2->getType(), segLength2, p, - initData.secondCurveId, initData.data, - initData.curve2AliasSuffix1, - initData.curve2AliasSuffix2); + initData.curve1Segments = + VToolSinglePoint::InitSegments(curve1->getType(), segLength1, p, initData.firstCurveId, initData.data, + initData.curve1AliasSuffix1, initData.curve1AliasSuffix2); + initData.curve2Segments = + VToolSinglePoint::InitSegments(curve2->getType(), segLength2, p, initData.secondCurveId, initData.data, + initData.curve2AliasSuffix1, initData.curve2AliasSuffix2); if (initData.parse != Document::FullParse) { initData.doc->UpdateToolData(initData.id, initData.data); - } } if (initData.parse == Document::FullParse) { VAbstractTool::AddRecord(initData.id, Tool::PointOfIntersectionCurves, initData.doc); - auto* point = new VToolPointOfIntersectionCurves(initData); + auto *point = new VToolPointOfIntersectionCurves(initData); initData.scene->addItem(point); InitToolConnections(initData.scene, point); VAbstractPattern::AddTool(initData.id, point); @@ -219,10 +214,10 @@ auto VToolPointOfIntersectionCurves::FindPoint(const QVector &curve1Poi } QVector intersections; - for ( auto i = 0; i < curve1Points.count()-1; ++i ) + for (auto i = 0; i < curve1Points.count() - 1; ++i) { intersections << VAbstractCurve::CurveIntersectLine(curve2Points, - QLineF(curve1Points.at(i), curve1Points.at(i+1))); + QLineF(curve1Points.at(i), curve1Points.at(i + 1))); } if (intersections.isEmpty()) @@ -242,7 +237,7 @@ auto VToolPointOfIntersectionCurves::FindPoint(const QVector &curve1Poi qreal minY = intersections.at(0).y(); vIntersections.append(intersections.at(0)); - for ( auto i = 1; i < intersections.count(); ++i ) + for (auto i = 1; i < intersections.count(); ++i) { const QPointF p = intersections.at(i); if (p.y() < minY) @@ -262,7 +257,7 @@ auto VToolPointOfIntersectionCurves::FindPoint(const QVector &curve1Poi qreal maxY = intersections.at(0).y(); vIntersections.append(intersections.at(0)); - for ( auto i = 1; i < intersections.count(); ++i ) + for (auto i = 1; i < intersections.count(); ++i) { const QPointF p = intersections.at(i); if (p.y() > maxY) @@ -295,7 +290,7 @@ auto VToolPointOfIntersectionCurves::FindPoint(const QVector &curve1Poi { qreal maxX = vIntersections.at(0).x(); - for ( auto i = 1; i < vIntersections.count(); ++i ) + for (auto i = 1; i < vIntersections.count(); ++i) { const QPointF p = vIntersections.at(i); if (p.x() > maxX) @@ -309,7 +304,7 @@ auto VToolPointOfIntersectionCurves::FindPoint(const QVector &curve1Poi { qreal minX = vIntersections.at(0).x(); - for ( auto i = 1; i < vIntersections.count(); ++i ) + for (auto i = 1; i < vIntersections.count(); ++i) { const QPointF p = vIntersections.at(i); if (p.x() < minX) @@ -379,10 +374,10 @@ void VToolPointOfIntersectionCurves::ShowContextMenu(QGraphicsSceneContextMenuEv { ContextMenu(event, id); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } } @@ -401,7 +396,7 @@ void VToolPointOfIntersectionCurves::SaveDialog(QDomElement &domElement, QList &newDependencies) { SCASSERT(not m_dialog.isNull()) - auto *dialogTool = qobject_cast(m_dialog); + auto *dialogTool = qobject_cast(m_dialog); SCASSERT(dialogTool != nullptr) AddDependence(oldDependencies, firstCurveId); @@ -415,15 +410,15 @@ void VToolPointOfIntersectionCurves::SaveDialog(QDomElement &domElement, QListSetAttribute(domElement, AttrVCrossPoint, QString().setNum(static_cast(dialogTool->GetVCrossPoint()))); doc->SetAttribute(domElement, AttrHCrossPoint, QString().setNum(static_cast(dialogTool->GetHCrossPoint()))); doc->SetAttributeOrRemoveIf(domElement, AttrCurve1Alias1, dialogTool->GetCurve1AliasSuffix1(), - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(domElement, AttrCurve1Alias2, dialogTool->GetCurve1AliasSuffix2(), - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(domElement, AttrCurve2Alias1, dialogTool->GetCurve2AliasSuffix1(), - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(domElement, AttrCurve2Alias2, dialogTool->GetCurve2AliasSuffix2(), - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(domElement, AttrNotes, dialogTool->GetNotes(), - [](const QString ¬es) noexcept {return notes.isEmpty();}); + [](const QString ¬es) noexcept { return notes.isEmpty(); }); } //--------------------------------------------------------------------------------------------------------------------- @@ -437,13 +432,13 @@ void VToolPointOfIntersectionCurves::SaveOptions(QDomElement &tag, QSharedPointe doc->SetAttribute(tag, AttrVCrossPoint, static_cast(vCrossPoint)); doc->SetAttribute(tag, AttrHCrossPoint, static_cast(hCrossPoint)); doc->SetAttributeOrRemoveIf(tag, AttrCurve1Alias1, m_curve1AliasSuffix1, - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(tag, AttrCurve1Alias2, m_curve1AliasSuffix2, - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(tag, AttrCurve2Alias1, m_curve2AliasSuffix1, - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); doc->SetAttributeOrRemoveIf(tag, AttrCurve2Alias2, m_curve2AliasSuffix2, - [](const QString &suffix) noexcept {return suffix.isEmpty();}); + [](const QString &suffix) noexcept { return suffix.isEmpty(); }); } //--------------------------------------------------------------------------------------------------------------------- @@ -453,10 +448,10 @@ void VToolPointOfIntersectionCurves::ReadToolAttributes(const QDomElement &domEl firstCurveId = VAbstractPattern::GetParametrUInt(domElement, AttrCurve1, NULL_ID_STR); secondCurveId = VAbstractPattern::GetParametrUInt(domElement, AttrCurve2, NULL_ID_STR); - vCrossPoint = static_cast(VAbstractPattern::GetParametrUInt(domElement, AttrVCrossPoint, - QChar('1'))); - hCrossPoint = static_cast(VAbstractPattern::GetParametrUInt(domElement, AttrHCrossPoint, - QChar('1'))); + vCrossPoint = + static_cast(VAbstractPattern::GetParametrUInt(domElement, AttrVCrossPoint, QChar('1'))); + hCrossPoint = + static_cast(VAbstractPattern::GetParametrUInt(domElement, AttrHCrossPoint, QChar('1'))); m_curve1AliasSuffix1 = VAbstractPattern::GetParametrEmptyString(domElement, AttrCurve1Alias1); m_curve1AliasSuffix2 = VAbstractPattern::GetParametrEmptyString(domElement, AttrCurve1Alias2); m_curve2AliasSuffix1 = VAbstractPattern::GetParametrEmptyString(domElement, AttrCurve2Alias1); @@ -492,11 +487,11 @@ auto VToolPointOfIntersectionCurves::MakeToolTip() const -> QString " %7: %8 " " %9: %10 " "") - .arg(tr("Label"), p->name(), /* 1, 2 */ - tr("Curve 1 segment 1"), m_curve1Segments.first, /* 3, 4 */ - tr("Curve 1 segment 2"), m_curve1Segments.second) /* 5, 6 */ - .arg(tr("Curve 2 segment 1"), m_curve2Segments.first, /* 7, 8 */ - tr("Curve 2 segment 2"), m_curve2Segments.second); /* 9, 10 */ + .arg(tr("Label"), p->name(), /* 1, 2 */ + tr("Curve 1 segment 1"), m_curve1Segments.first, /* 3, 4 */ + tr("Curve 1 segment 2"), m_curve1Segments.second) /* 5, 6 */ + .arg(tr("Curve 2 segment 1"), m_curve2Segments.first, /* 7, 8 */ + tr("Curve 2 segment 2"), m_curve2Segments.second); /* 9, 10 */ return toolTip; } diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp index 93f5bf21b..9c896b900 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.cpp @@ -40,30 +40,29 @@ #include #include #include -#include #include #include "../../../../undocommands/label/movelabel.h" #include "../../../../undocommands/label/showlabel.h" +#include "../../../vabstracttool.h" +#include "../../vdrawtool.h" #include "../ifc/exception/vexception.h" #include "../ifc/ifcdef.h" #include "../ifc/xml/vabstractpattern.h" +#include "../vabstractpoint.h" +#include "../vgeometry/vabstractcubicbezier.h" +#include "../vgeometry/vabstractcubicbezierpath.h" +#include "../vgeometry/varc.h" +#include "../vgeometry/vellipticalarc.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vgeometry/vabstractcubicbezierpath.h" -#include "../vgeometry/vabstractcubicbezier.h" #include "../vgeometry/vspline.h" #include "../vgeometry/vsplinepath.h" -#include "../vgeometry/vellipticalarc.h" -#include "../vgeometry/varc.h" #include "../vmisc/vabstractapplication.h" #include "../vpatterndb/vcontainer.h" -#include "../vwidgets/vgraphicssimpletextitem.h" -#include "../vwidgets/scalesceneitems.h" #include "../vwidgets/global.h" -#include "../../../vabstracttool.h" -#include "../../vdrawtool.h" -#include "../vabstractpoint.h" +#include "../vwidgets/scalesceneitems.h" +#include "../vwidgets/vgraphicssimpletextitem.h" #include "toolcut/vtoolcutsplinepath.h" QT_WARNING_PUSH @@ -84,8 +83,8 @@ QT_WARNING_POP */ VToolSinglePoint::VToolSinglePoint(VAbstractPattern *doc, VContainer *data, quint32 id, const QString ¬es, QGraphicsItem *parent) - : VAbstractPoint(doc, data, id, notes), - VScenePoint(parent) + : VAbstractPoint(doc, data, id, notes), + VScenePoint(VColorRole::PatternColor, parent) { connect(m_namePoint, &VGraphicsSimpleTextItem::ShowContextMenu, this, &VToolSinglePoint::contextMenuEvent); connect(m_namePoint, &VGraphicsSimpleTextItem::DeleteTool, this, &VToolSinglePoint::DeleteFromLabel); @@ -177,14 +176,15 @@ void VToolSinglePoint::mousePressEvent(QGraphicsSceneMouseEvent *event) VScenePoint::mousePressEvent(event); // Somehow clicking on notselectable object do not clean previous selections. - if (not (flags() & ItemIsSelectable) && scene()) + if (not(flags() & ItemIsSelectable) && scene()) { scene()->clearSelection(); } if (selectionType == SelectionType::ByMouseRelease) { - event->accept();// Special for not selectable item first need to call standard mousePressEvent then accept event + event + ->accept(); // Special for not selectable item first need to call standard mousePressEvent then accept event } else { @@ -297,16 +297,16 @@ void VToolSinglePoint::keyReleaseEvent(QKeyEvent *event) { DeleteToolWithConfirm(); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } break; default: break; } - VScenePoint::keyReleaseEvent ( event ); + VScenePoint::keyReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- @@ -393,10 +393,10 @@ void VToolSinglePoint::ToolSelectionType(const SelectionType &type) QT_WARNING_PUSH QT_WARNING_DISABLE_GCC("-Wswitch-default") auto VToolSinglePoint::InitSegments(GOType curveType, qreal segLength, const VPointF *p, quint32 curveId, - VContainer *data, const QString &alias1, - const QString &alias2) -> QPair + VContainer *data, const QString &alias1, const QString &alias2) + -> QPair { - switch(curveType) + switch (curveType) { case GOType::EllipticalArc: return InitArc(data, segLength, p, curveId, alias1, alias2); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.h index c09fa9ee3..9db6ba237 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolsinglepoint.h @@ -29,7 +29,6 @@ #ifndef VTOOLSINGLEPOINT_H #define VTOOLSINGLEPOINT_H - #include #include #include @@ -46,66 +45,64 @@ template class QSharedPointer; struct VToolSinglePointInitData : VDrawToolInitData { - VToolSinglePointInitData() - : VDrawToolInitData(), - name(), - mx(labelMX), - my(labelMY), - showLabel(true) - {} - - QString name; - qreal mx; - qreal my; - bool showLabel; + QString name{}; + qreal mx{labelMX}; + qreal my{labelMY}; + bool showLabel{true}; }; /** * @brief The VToolSinglePoint class parent for all tools what create points. */ -class VToolSinglePoint: public VAbstractPoint, public VScenePoint +class VToolSinglePoint : public VAbstractPoint, public VScenePoint { Q_OBJECT // NOLINT + public: VToolSinglePoint(VAbstractPattern *doc, VContainer *data, quint32 id, const QString ¬es, - QGraphicsItem * parent = nullptr); - virtual ~VToolSinglePoint() = default; + QGraphicsItem *parent = nullptr); + ~VToolSinglePoint() override = default; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::SinglePoint)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::SinglePoint) + }; auto name() const -> QString; - void setName(const QString &name); + void setName(const QString &name); void SetEnabled(bool enabled); - virtual void GroupVisibility(quint32 object, bool visible) override; - virtual void ChangeLabelPosition(quint32 id, const QPointF &pos) override; + void GroupVisibility(quint32 object, bool visible) override; + void ChangeLabelPosition(quint32 id, const QPointF &pos) override; + + auto IsLabelVisible(quint32 id) const -> bool override; + void SetLabelVisible(quint32 id, bool visible) override; - virtual auto IsLabelVisible(quint32 id) const -> bool override; - virtual void SetLabelVisible(quint32 id, bool visible) override; public slots: - void NameChangePosition(const QPointF &pos); - virtual void Disable(bool disable, const QString &namePP) override; - virtual void EnableToolMove(bool move) override; - void PointChoosed(); - void PointSelected(bool selected); - virtual void FullUpdateFromFile() override; - virtual void AllowHover(bool enabled) override; - virtual void AllowSelecting(bool enabled) override; - void AllowLabelHover(bool enabled); - void AllowLabelSelecting(bool enabled); - virtual void ToolSelectionType(const SelectionType &type) override; + void NameChangePosition(const QPointF &pos); + void Disable(bool disable, const QString &namePP) override; + void EnableToolMove(bool move) override; + void PointChoosed(); + void PointSelected(bool selected); + void FullUpdateFromFile() override; + void AllowHover(bool enabled) override; + void AllowSelecting(bool enabled) override; + void AllowLabelHover(bool enabled); + void AllowLabelSelecting(bool enabled); + void ToolSelectionType(const SelectionType &type) override; + protected: - virtual void UpdateNamePosition(quint32 id, const QPointF &pos) override; - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override; - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void keyReleaseEvent(QKeyEvent * event) override; - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual void ChangeLabelVisibility(quint32 id, bool visible) override; + void UpdateNamePosition(quint32 id, const QPointF &pos) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; + void keyReleaseEvent(QKeyEvent *event) override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + void ChangeLabelVisibility(quint32 id, bool visible) override; template static auto InitArc(VContainer *data, qreal segLength, const VPointF *p, quint32 curveId, const QString &alias1, @@ -119,9 +116,8 @@ private: //--------------------------------------------------------------------------------------------------------------------- template -inline auto VToolSinglePoint::InitArc(VContainer *data, qreal segLength, const VPointF *p, - quint32 curveId, const QString &alias1, - const QString &alias2) -> QPair +inline auto VToolSinglePoint::InitArc(VContainer *data, qreal segLength, const VPointF *p, quint32 curveId, + const QString &alias1, const QString &alias2) -> QPair { QSharedPointer a1; QSharedPointer a2; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/vabstractpoint.h b/src/libs/vtools/tools/drawTools/toolpoint/vabstractpoint.h index 456d9f8f6..ea4539cf3 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/vabstractpoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/vabstractpoint.h @@ -35,7 +35,6 @@ #include #include #include -#include #include #include "../../../visualization/visualization.h" diff --git a/src/libs/vtools/tools/drawTools/vdrawtool.cpp b/src/libs/vtools/tools/drawTools/vdrawtool.cpp index d2cb47d22..ef7728d6d 100644 --- a/src/libs/vtools/tools/drawTools/vdrawtool.cpp +++ b/src/libs/vtools/tools/drawTools/vdrawtool.cpp @@ -34,18 +34,17 @@ #include #include #include -#include #include -#include "../ifc/ifcdef.h" -#include "../ifc/xml/vdomdocument.h" -#include "../ifc/xml/vabstractpattern.h" -#include "../ifc/exception/vexceptionwrongid.h" #include "../../undocommands/addtocalc.h" #include "../../undocommands/savetooloptions.h" +#include "../ifc/exception/vexceptionwrongid.h" +#include "../ifc/ifcdef.h" +#include "../ifc/xml/vabstractpattern.h" +#include "../ifc/xml/vdomdocument.h" #include "../qmuparser/qmuparsererror.h" -#include "../vpatterndb/vcontainer.h" #include "../vabstracttool.h" +#include "../vpatterndb/vcontainer.h" template class QSharedPointer; @@ -57,10 +56,10 @@ template class QSharedPointer; * @param id object id in container. */ VDrawTool::VDrawTool(VAbstractPattern *doc, VContainer *data, quint32 id, const QString ¬es, QObject *parent) - : VInteractiveTool(doc, data, id, parent), - nameActivDraw(doc->GetNameActivPP()), - m_lineType(TypeLineLine), - m_notes(notes) + : VInteractiveTool(doc, data, id, parent), + nameActivDraw(doc->GetNameActivPP()), + m_lineType(TypeLineLine), + m_notes(notes) { connect(this->doc, &VAbstractPattern::ChangedActivPP, this, &VDrawTool::ChangedActivDraw); connect(this->doc, &VAbstractPattern::ChangedNameDraw, this, &VDrawTool::ChangedNameDraw); @@ -125,12 +124,12 @@ void VDrawTool::SaveDialogChange(const QString &undoText) //--------------------------------------------------------------------------------------------------------------------- void VDrawTool::ApplyToolOptions(const QList &oldDependencies, const QList &newDependencies, - const QDomElement &oldDomElement, const QDomElement &newDomElement) + const QDomElement &oldDomElement, const QDomElement &newDomElement) { if (newDependencies != oldDependencies || not VDomDocument::Compare(newDomElement, oldDomElement)) { - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, oldDependencies, - newDependencies, doc, m_id); + SaveToolOptions *saveOptions = + new SaveToolOptions(oldDomElement, newDomElement, oldDependencies, newDependencies, doc, m_id); connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); VAbstractApplication::VApp()->getUndoStack()->push(saveOptions); } @@ -159,8 +158,8 @@ void VDrawTool::SaveOption(QSharedPointer &obj) SaveOptions(newDomElement, obj); - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, QList(), - QList(), doc, m_id); + SaveToolOptions *saveOptions = + new SaveToolOptions(oldDomElement, newDomElement, QList(), QList(), doc, m_id); connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); VAbstractApplication::VApp()->getUndoStack()->push(saveOptions); } @@ -177,7 +176,7 @@ void VDrawTool::SaveOptions(QDomElement &tag, QSharedPointer &obj) doc->SetAttribute(tag, VDomDocument::AttrId, m_id); doc->SetAttributeOrRemoveIf(tag, AttrNotes, m_notes, - [](const QString ¬es) noexcept {return notes.isEmpty();}); + [](const QString ¬es) noexcept { return notes.isEmpty(); }); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/drawTools/vtoolline.cpp b/src/libs/vtools/tools/drawTools/vtoolline.cpp index 65bbe4e06..6484d212d 100644 --- a/src/libs/vtools/tools/drawTools/vtoolline.cpp +++ b/src/libs/vtools/tools/drawTools/vtoolline.cpp @@ -34,22 +34,22 @@ #include #include #include -#include #include #include #include "../../dialogs/tools/dialogline.h" #include "../../dialogs/tools/dialogtool.h" -#include "../../visualization/visualization.h" #include "../../visualization/line/vistoolline.h" +#include "../../visualization/visualization.h" #include "../ifc/exception/vexception.h" #include "../ifc/ifcdef.h" +#include "../vabstracttool.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vpatterndb/vcontainer.h" -#include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/global.h" -#include "../vabstracttool.h" +#include "../vwidgets/vmaingraphicsscene.h" #include "vdrawtool.h" template class QSharedPointer; @@ -61,18 +61,18 @@ template class QSharedPointer; * @param parent parent object. */ VToolLine::VToolLine(const VToolLineInitData &initData, QGraphicsItem *parent) - :VDrawTool(initData.doc, initData.data, initData.id, initData.notes), - VScaledLine(parent), - firstPoint(initData.firstPoint), - secondPoint(initData.secondPoint), - lineColor(initData.lineColor), - m_acceptHoverEvents(true) + : VDrawTool(initData.doc, initData.data, initData.id, initData.notes), + VScaledLine(VColorRole::CustomColor, parent), + firstPoint(initData.firstPoint), + secondPoint(initData.secondPoint), + lineColor(initData.lineColor), + m_acceptHoverEvents(true) { SetBoldLine(false); this->m_lineType = initData.typeLine; - //Line + // Line RefreshGeometry(); - this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus + this->setFlag(QGraphicsItem::ItemIsFocusable, true); // For keyboard input focus this->setAcceptHoverEvents(m_acceptHoverEvents); ToolCreation(initData.typeCreation); @@ -157,7 +157,7 @@ auto VToolLine::Create(VToolLineInitData initData) -> VToolLine * if (initData.parse == Document::FullParse) { VAbstractTool::AddRecord(initData.id, Tool::Line, initData.doc); - VToolLine *line = new VToolLine(initData); + auto *line = new VToolLine(initData); initData.scene->addItem(line); InitDrawToolConnections(initData.scene, line); connect(initData.scene, &VMainGraphicsScene::EnableLineItemSelection, line, &VToolLine::AllowSelecting); @@ -185,7 +185,7 @@ void VToolLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, { // Don't set pen width. Parent should take care of it. QPen lPen = pen(); - lPen.setColor(CorrectColor(this, lineColor)); + lPen.setColor(VSceneStylesheet::CorrectToolColor(this, VSceneStylesheet::CorrectToolColorForDarkTheme(lineColor))); lPen.setStyle(LineStyleToPenStyle(m_lineType)); setPen(lPen); @@ -254,10 +254,10 @@ void VToolLine::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 i { ContextMenu(event); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } } @@ -278,7 +278,7 @@ void VToolLine::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) void VToolLine::AddToFile() { QDomElement domElement = doc->createElement(getTagName()); - QSharedPointer obj = QSharedPointer (); + QSharedPointer obj = QSharedPointer(); SaveOptions(domElement, obj); AddToCalculation(domElement); } @@ -360,24 +360,23 @@ void VToolLine::keyReleaseEvent(QKeyEvent *event) { DeleteToolWithConfirm(); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e) - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } break; default: break; } - QGraphicsItem::keyReleaseEvent ( event ); + QGraphicsItem::keyReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolLine::SaveDialog(QDomElement &domElement, QList &oldDependencies, - QList &newDependencies) +void VToolLine::SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) { SCASSERT(not m_dialog.isNull()) const QPointer dialogTool = qobject_cast(m_dialog); @@ -393,7 +392,7 @@ void VToolLine::SaveDialog(QDomElement &domElement, QList &oldDependenc doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); doc->SetAttributeOrRemoveIf(domElement, AttrNotes, dialogTool->GetNotes(), - [](const QString ¬es) noexcept {return notes.isEmpty();}); + [](const QString ¬es) noexcept { return notes.isEmpty(); }); } //--------------------------------------------------------------------------------------------------------------------- @@ -446,10 +445,10 @@ auto VToolLine::MakeToolTip() const -> QString " %1: %2 %3 " " %4: %5° " "") - .arg(tr("Length")) - .arg(VAbstractValApplication::VApp()->fromPixel(line.length())) - .arg(UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true), tr("Angle")) - .arg(line.angle()); + .arg(tr("Length")) + .arg(VAbstractValApplication::VApp()->fromPixel(line.length())) + .arg(UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true), tr("Angle")) + .arg(line.angle()); return toolTip; } @@ -483,7 +482,7 @@ void VToolLine::SetLineType(const QString &value) { m_lineType = value; - QSharedPointer obj;//We don't have object for line in data container. Just will send an empty object. + QSharedPointer obj; // We don't have object for line in data container. Just will send an empty object. SaveOption(obj); } @@ -498,7 +497,7 @@ void VToolLine::SetLineColor(const QString &value) { lineColor = value; - QSharedPointer obj;//We don't have object for line in data container. Just will send an empty object. + QSharedPointer obj; // We don't have object for line in data container. Just will send an empty object. SaveOption(obj); } @@ -507,7 +506,7 @@ void VToolLine::SetNotes(const QString ¬es) { m_notes = notes; - QSharedPointer obj;//We don't have object for line in data container. Just will send an empty object. + QSharedPointer obj; // We don't have object for line in data container. Just will send an empty object. SaveOption(obj); } diff --git a/src/libs/vtools/tools/drawTools/vtoolline.h b/src/libs/vtools/tools/drawTools/vtoolline.h index 235bf5f97..94880b764 100644 --- a/src/libs/vtools/tools/drawTools/vtoolline.h +++ b/src/libs/vtools/tools/drawTools/vtoolline.h @@ -29,7 +29,6 @@ #ifndef VTOOLLINE_H #define VTOOLLINE_H - #include #include #include @@ -39,92 +38,91 @@ #include "../ifc/xml/vabstractpattern.h" #include "../vmisc/def.h" -#include "vdrawtool.h" #include "../vwidgets/scalesceneitems.h" +#include "vdrawtool.h" template class QSharedPointer; struct VToolLineInitData : VDrawToolInitData { - VToolLineInitData() - : VDrawToolInitData(), - firstPoint(NULL_ID), - secondPoint(NULL_ID), - typeLine(TypeLineLine), - lineColor(ColorBlack) - {} - - quint32 firstPoint; - quint32 secondPoint; - QString typeLine; - QString lineColor; + quint32 firstPoint{NULL_ID}; + quint32 secondPoint{NULL_ID}; + QString typeLine{TypeLineLine}; + QString lineColor{ColorBlack}; }; /** * @brief The VToolLine class tool for creation line. */ -class VToolLine: public VDrawTool, public VScaledLine +class VToolLine : public VDrawTool, public VScaledLine { Q_OBJECT // NOLINT + public: - virtual void SetDialog() override; + ~VToolLine() override = default; + + void SetDialog() override; static auto Create(const QPointer &dialog, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data) -> VToolLine *; static auto Create(VToolLineInitData initData) -> VToolLine *; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::Line)}; - virtual auto getTagName() const -> QString override; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::Line) + }; + auto getTagName() const -> QString override; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; auto FirstPointName() const -> QString; auto SecondPointName() const -> QString; auto GetLineColor() const -> QString; - void SetLineColor(const QString &value); + void SetLineColor(const QString &value); - virtual void SetNotes(const QString ¬es) override; + void SetNotes(const QString ¬es) override; - virtual void ShowVisualization(bool show) override; + void ShowVisualization(bool show) override; + + void SetLineType(const QString &value) override; + void GroupVisibility(quint32 object, bool visible) override; - virtual void SetLineType(const QString &value) override; - virtual void GroupVisibility(quint32 object, bool visible) override; public slots: - virtual void FullUpdateFromFile() override; - virtual void ShowTool(quint32 id, bool enable) override; - virtual void Disable(bool disable, const QString &namePP) override; - virtual void AllowHover(bool enabled) override; - virtual void AllowSelecting(bool enabled) override; + void FullUpdateFromFile() override; + void ShowTool(quint32 id, bool enable) override; + void Disable(bool disable, const QString &namePP) override; + void AllowHover(bool enabled) override; + void AllowSelecting(bool enabled) override; + protected slots: - virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) override; + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID) override; + protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) override; - virtual void AddToFile() override; - virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) override; - virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) override; - virtual void RemoveReferens() override; - virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void keyReleaseEvent(QKeyEvent * event) override; - virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, - QList &newDependencies) override; - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; - virtual void ReadToolAttributes(const QDomElement &domElement) override; - virtual void SetVisualization() override; - virtual auto MakeToolTip() const -> QString override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void AddToFile() override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + void RemoveReferens() override; + auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; + void keyReleaseEvent(QKeyEvent *event) override; + void SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) override; + void SaveOptions(QDomElement &tag, QSharedPointer &obj) override; + void ReadToolAttributes(const QDomElement &domElement) override; + void SetVisualization() override; + auto MakeToolTip() const -> QString override; private: Q_DISABLE_COPY_MOVE(VToolLine) // NOLINT /** @brief firstPoint id first line point. */ - quint32 firstPoint; + quint32 firstPoint; /** @brief secondPoint id second line point. */ - quint32 secondPoint; + quint32 secondPoint; /** @brief lineColor color of a line. */ - QString lineColor; + QString lineColor; bool m_acceptHoverEvents; diff --git a/src/libs/vtools/tools/nodeDetails/vabstractnode.cpp b/src/libs/vtools/tools/nodeDetails/vabstractnode.cpp index 0549de7a2..1202de16f 100644 --- a/src/libs/vtools/tools/nodeDetails/vabstractnode.cpp +++ b/src/libs/vtools/tools/nodeDetails/vabstractnode.cpp @@ -30,16 +30,15 @@ #include #include -#include +#include "../ifc/exception/vexceptionwrongid.h" #include "../ifc/ifcdef.h" #include "../ifc/xml/vabstractpattern.h" -#include "../ifc/exception/vexceptionwrongid.h" -#include "../vgeometry/vgobject.h" -#include "../vmisc/vabstractapplication.h" -#include "../vmisc/def.h" -#include "../vpatterndb/vcontainer.h" #include "../vabstracttool.h" +#include "../vgeometry/vgobject.h" +#include "../vmisc/def.h" +#include "../vmisc/vabstractapplication.h" +#include "../vpatterndb/vcontainer.h" const QString VAbstractNode::AttrIdTool = QStringLiteral("idTool"); @@ -55,12 +54,12 @@ const QString VAbstractNode::AttrIdTool = QStringLiteral("idTool"); */ VAbstractNode::VAbstractNode(VAbstractPattern *doc, VContainer *data, const quint32 &id, const quint32 &idNode, const QString &drawName, const quint32 &idTool, QObject *parent) - : VAbstractTool(doc, data, id, parent), - parentType(ParentType::Item), - idNode(idNode), - idTool(idTool), - m_drawName(drawName), - m_exluded(false) + : VAbstractTool(doc, data, id, parent), + parentType(ParentType::Item), + idNode(idNode), + idTool(idTool), + m_drawName(drawName), + m_exluded(false) { _referens = 0; } diff --git a/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp b/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp index 88c8bb5dc..50f140567 100644 --- a/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp +++ b/src/libs/vtools/tools/nodeDetails/vnodepoint.cpp @@ -40,25 +40,26 @@ #include #include #include -#include #include #include "../../../vgeometry/vpointf.h" #include "../../../vwidgets/vgraphicssimpletextitem.h" -#include "../ifc/xml/vdomdocument.h" +#include "../../undocommands/label/movelabel.h" +#include "../../undocommands/label/showlabel.h" #include "../ifc/ifcdef.h" +#include "../ifc/xml/vdomdocument.h" +#include "../vabstracttool.h" +#include "../vdatatool.h" +#include "../vmisc/theme/themeDef.h" #include "../vmisc/vabstractapplication.h" #include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vpiecenode.h" +#include "../vtoolseamallowance.h" +#include "../vwidgets/global.h" +#include "../vwidgets/scalesceneitems.h" #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" -#include "../vwidgets/global.h" -#include "../vabstracttool.h" -#include "../vdatatool.h" #include "vabstractnode.h" -#include "../../undocommands/label/movelabel.h" -#include "../../undocommands/label/showlabel.h" -#include "../vtoolseamallowance.h" const QString VNodePoint::ToolType = QStringLiteral("modeling"); @@ -102,7 +103,7 @@ enum class ContextMenuOption : int TurnPoint, LAST_ONE_DO_NOT_USE }; -} +} // namespace //--------------------------------------------------------------------------------------------------------------------- /** @@ -111,18 +112,18 @@ enum class ContextMenuOption : int * @param parent parent object. */ VNodePoint::VNodePoint(const VAbstractNodeInitData &initData, QObject *qoParent, QGraphicsItem *parent) - : VAbstractNode(initData.doc, initData.data, initData.id, initData.idObject, initData.drawName, initData.idTool, - qoParent), - VScenePoint(parent) + : VAbstractNode(initData.doc, initData.data, initData.id, initData.idObject, initData.drawName, initData.idTool, + qoParent), + VScenePoint(VColorRole::PiecePointColor, parent) { + m_namePoint->SetTextColor(VColorRole::PieceNodeLabelColor); + m_namePoint->SetTextHoverColor(VColorRole::PieceNodeLabelHoverColor); m_namePoint->SetShowParentTooltip(false); connect(m_namePoint, &VGraphicsSimpleTextItem::PointChoosed, this, &VNodePoint::PointChoosed); connect(m_namePoint, &VGraphicsSimpleTextItem::NameChangePosition, this, &VNodePoint::NameChangePosition); - connect(m_namePoint, &VGraphicsSimpleTextItem::ShowContextMenu, - this, [this](QGraphicsSceneContextMenuEvent *event) - { - contextMenuEvent(event); - }); + connect(m_namePoint, &VGraphicsSimpleTextItem::ShowContextMenu, this, + [this](QGraphicsSceneContextMenuEvent *event) { contextMenuEvent(event); }); + m_lineName->SetColorRole(VColorRole::PieceNodeLabelLineColor); RefreshPointGeometry(*VAbstractTool::data.GeometricObject(initData.id)); ToolCreation(initData.typeCreation); setCursor(Qt::ArrowCursor); @@ -138,8 +139,8 @@ void VNodePoint::Create(const VAbstractNodeInitData &initData) if (initData.parse == Document::FullParse) { VAbstractTool::AddRecord(initData.id, Tool::NodePoint, initData.doc); - //TODO Need create garbage collector and remove all nodes, what we don't use. - //Better check garbage before each saving file. Check only modeling tags. + // TODO Need create garbage collector and remove all nodes, what we don't use. + // Better check garbage before each saving file. Check only modeling tags. auto *point = new VNodePoint(initData); connect(initData.scene, &VMainGraphicsScene::EnableToolMove, point, &VNodePoint::EnableToolMove); @@ -150,16 +151,16 @@ void VNodePoint::Create(const VAbstractNodeInitData &initData) VAbstractPattern::AddTool(initData.id, point); if (initData.idTool != NULL_ID) { - //Some nodes we don't show on scene. Tool that create this nodes must free memory. + // Some nodes we don't show on scene. Tool that create this nodes must free memory. VDataTool *tool = VAbstractPattern::getTool(initData.idTool); SCASSERT(tool != nullptr) - point->setParent(tool);// Adopted by a tool + point->setParent(tool); // Adopted by a tool } else { // Try to prevent memory leak - initData.scene->addItem(point);// First adopted by scene - point->hide();// If no one will use node, it will stay hidden + initData.scene->addItem(point); // First adopted by scene + point->hide(); // If no one will use node, it will stay hidden point->SetParentType(ParentType::Scene); } } @@ -259,12 +260,12 @@ void VNodePoint::mousePressEvent(QGraphicsSceneMouseEvent *event) VScenePoint::mousePressEvent(event); // Somehow clicking on notselectable object do not clean previous selections. - if (not (flags() & ItemIsSelectable) && scene()) + if (not(flags() & ItemIsSelectable) && scene()) { scene()->clearSelection(); } - event->accept();// Special for not selectable item first need to call standard mousePressEvent then accept event + event->accept(); // Special for not selectable item first need to call standard mousePressEvent then accept event } //--------------------------------------------------------------------------------------------------------------------- @@ -452,8 +453,8 @@ void VNodePoint::InitPassmarkAngleTypeMenu(QMenu *menu, vidtype pieceId, QHashsetVisible(false); } - auto InitPassmarkAngleAction = [passmarkAngleMenu, passmarkAngleCurType](const QString &name, - PassmarkAngleType checkType) + auto InitPassmarkAngleAction = + [passmarkAngleMenu, passmarkAngleCurType](const QString &name, PassmarkAngleType checkType) { QAction *action = passmarkAngleMenu->addAction(name); action->setCheckable(true); @@ -468,20 +469,20 @@ void VNodePoint::InitPassmarkAngleTypeMenu(QMenu *menu, vidtype pieceId, QHash(ContextMenuOption::Intersection), InitPassmarkAngleAction(tr("Intersection"), PassmarkAngleType::Intersection)); - contextMenu.insert(static_cast(ContextMenuOption::IntersectionOnlyLeft), - InitPassmarkAngleAction(tr("Intersection (only left)"), - PassmarkAngleType::IntersectionOnlyLeft)); - contextMenu.insert(static_cast(ContextMenuOption::IntersectionOnlyRight), - InitPassmarkAngleAction(tr("Intersection (only right)"), - PassmarkAngleType::IntersectionOnlyRight)); + contextMenu.insert( + static_cast(ContextMenuOption::IntersectionOnlyLeft), + InitPassmarkAngleAction(tr("Intersection (only left)"), PassmarkAngleType::IntersectionOnlyLeft)); + contextMenu.insert( + static_cast(ContextMenuOption::IntersectionOnlyRight), + InitPassmarkAngleAction(tr("Intersection (only right)"), PassmarkAngleType::IntersectionOnlyRight)); contextMenu.insert(static_cast(ContextMenuOption::Intersection2), InitPassmarkAngleAction(tr("Intersection 2"), PassmarkAngleType::Intersection2)); - contextMenu.insert(static_cast(ContextMenuOption::Intersection2OnlyLeft), - InitPassmarkAngleAction(tr("Intersection 2 (only left)"), - PassmarkAngleType::Intersection2OnlyLeft)); - contextMenu.insert(static_cast(ContextMenuOption::Intersection2OnlyRight), - InitPassmarkAngleAction(tr("Intersection 2 (only right)"), - PassmarkAngleType::Intersection2OnlyRight)); + contextMenu.insert( + static_cast(ContextMenuOption::Intersection2OnlyLeft), + InitPassmarkAngleAction(tr("Intersection 2 (only left)"), PassmarkAngleType::Intersection2OnlyLeft)); + contextMenu.insert( + static_cast(ContextMenuOption::Intersection2OnlyRight), + InitPassmarkAngleAction(tr("Intersection 2 (only right)"), PassmarkAngleType::Intersection2OnlyRight)); } //--------------------------------------------------------------------------------------------------------------------- @@ -504,8 +505,8 @@ void VNodePoint::InitPassmarkLineTypeMenu(QMenu *menu, vidtype pieceId, QHashsetVisible(false); } - auto InitPassmarkLineTypeAction = [passmarkLineTypeMenu, passmarkLineCurType](const QString &name, - PassmarkLineType checkType) + auto InitPassmarkLineTypeAction = + [passmarkLineTypeMenu, passmarkLineCurType](const QString &name, PassmarkLineType checkType) { QAction *action = passmarkLineTypeMenu->addAction(name); action->setCheckable(true); @@ -590,14 +591,14 @@ void VNodePoint::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) QAction *selectedAction = menu.exec(event->screenPos()); ContextMenuOption selectedOption = static_cast( - contextMenu.key(selectedAction, static_cast(ContextMenuOption::NoSelection))); + contextMenu.key(selectedAction, static_cast(ContextMenuOption::NoSelection))); Q_STATIC_ASSERT_X(static_cast(ContextMenuOption::LAST_ONE_DO_NOT_USE) == 34, "Not all options were handled."); QT_WARNING_PUSH QT_WARNING_DISABLE_GCC("-Wswitch-default") - switch(selectedOption) + switch (selectedOption) { case ContextMenuOption::LAST_ONE_DO_NOT_USE: Q_UNREACHABLE(); @@ -624,15 +625,15 @@ void VNodePoint::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { emit Delete(); } - catch(const VExceptionToolWasDeleted &e) + catch (const VExceptionToolWasDeleted &e) { Q_UNUSED(e); - return;//Leave this method immediately!!! + return; // Leave this method immediately!!! } - return;//Leave this method immediately after call!!! + return; // Leave this method immediately after call!!! case ContextMenuOption::ShowLabel: VAbstractApplication::VApp()->getUndoStack()->push( - new ShowLabel(doc, m_id, selectedAction->isChecked())); + new ShowLabel(doc, m_id, selectedAction->isChecked())); break; case ContextMenuOption::Exclude: emit ToggleExcludeState(m_id); diff --git a/src/libs/vtools/tools/nodeDetails/vnodepoint.h b/src/libs/vtools/tools/nodeDetails/vnodepoint.h index 8192a088d..11203eab5 100644 --- a/src/libs/vtools/tools/nodeDetails/vnodepoint.h +++ b/src/libs/vtools/tools/nodeDetails/vnodepoint.h @@ -29,7 +29,6 @@ #ifndef VNODEPOINT_H #define VNODEPOINT_H - #include #include #include @@ -39,25 +38,31 @@ #include #include "../vmisc/def.h" -#include "vabstractnode.h" #include "../vwidgets/vscenepoint.h" +#include "vabstractnode.h" /** * @brief The VNodePoint class point detail node. */ -class VNodePoint: public VAbstractNode, public VScenePoint +class VNodePoint : public VAbstractNode, public VScenePoint { Q_OBJECT // NOLINT + public: + ~VNodePoint() override = default; + static void Create(const VAbstractNodeInitData &initData); static const QString ToolType; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Tool::NodePoint)}; - virtual auto getTagName() const -> QString override; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Tool::NodePoint) + }; + auto getTagName() const -> QString override; - virtual void ChangeLabelPosition(quint32 id, const QPointF &pos) override; - virtual void SetLabelVisible(quint32 id, bool visible) override; + void ChangeLabelPosition(quint32 id, const QPointF &pos) override; + void SetLabelVisible(quint32 id, bool visible) override; signals: void ShowOptions(); void ToggleInLayout(bool checked); @@ -72,27 +77,30 @@ signals: void TogglePassmarkLineType(quint32 id, PassmarkLineType type); void ResetPieceLabelTemplate(); public slots: - virtual void FullUpdateFromFile() override; - void NameChangePosition(const QPointF &pos); - void PointChoosed(); - void EnableToolMove(bool move); - virtual void AllowHover(bool enabled) override; - virtual void AllowSelecting(bool enabled) override; - void AllowLabelHover(bool enabled); - void AllowLabelSelecting(bool enabled); + void FullUpdateFromFile() override; + void NameChangePosition(const QPointF &pos); + void PointChoosed(); + void EnableToolMove(bool move); + void AllowHover(bool enabled) override; + void AllowSelecting(bool enabled) override; + void AllowLabelHover(bool enabled); + void AllowLabelSelecting(bool enabled); + protected: - virtual void AddToFile() override; - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override; - virtual void ShowNode() override; - virtual void HideNode() override; - virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void AddToFile() override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void ShowNode() override; + void HideNode() override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(VNodePoint) // NOLINT - VNodePoint(const VAbstractNodeInitData &initData, QObject *qoParent = nullptr, QGraphicsItem *parent = nullptr); + explicit VNodePoint(const VAbstractNodeInitData &initData, QObject *qoParent = nullptr, + QGraphicsItem *parent = nullptr); auto InitContextMenu(QMenu *menu, vidtype pieceId, quint32 referens) -> QHash; void InitPassmarkMenu(QMenu *menu, vidtype pieceId, QHash &contextMenu); diff --git a/src/libs/vtools/tools/nodeDetails/vtoolpiecepath.cpp b/src/libs/vtools/tools/nodeDetails/vtoolpiecepath.cpp index f8683e15a..bc8458fbf 100644 --- a/src/libs/vtools/tools/nodeDetails/vtoolpiecepath.cpp +++ b/src/libs/vtools/tools/nodeDetails/vtoolpiecepath.cpp @@ -28,11 +28,12 @@ #include "vtoolpiecepath.h" #include "../../dialogs/tools/piece/dialogpiecepath.h" -#include "../vpatterndb/vpiecepath.h" -#include "../vpatterndb/vpiecenode.h" #include "../../undocommands/savepieceoptions.h" -#include "../vtoolseamallowance.h" #include "../ifc/xml/vabstractpattern.h" +#include "../vmisc/theme/vscenestylesheet.h" +#include "../vpatterndb/vpiecenode.h" +#include "../vpatterndb/vpiecepath.h" +#include "../vtoolseamallowance.h" #include "../vwidgets/global.h" //--------------------------------------------------------------------------------------------------------------------- @@ -77,17 +78,17 @@ auto VToolPiecePath::Create(VToolPiecePathInitData initData) -> VToolPiecePath * if (initData.parse == Document::FullParse) { VAbstractTool::AddRecord(initData.id, Tool::PiecePath, initData.doc); - //TODO Need create garbage collector and remove all nodes, that we don't use. - //Better check garbage before each saving file. Check only modeling tags. + // TODO Need create garbage collector and remove all nodes, that we don't use. + // Better check garbage before each saving file. Check only modeling tags. VToolPiecePath *pathTool = new VToolPiecePath(initData); VAbstractPattern::AddTool(initData.id, pathTool); if (initData.idTool != NULL_ID) { - //Some nodes we don't show on scene. Tool that create this nodes must free memory. + // Some nodes we don't show on scene. Tool that create this nodes must free memory. VDataTool *tool = VAbstractPattern::getTool(initData.idTool); SCASSERT(tool != nullptr); - pathTool->setParent(tool);// Adopted by a tool + pathTool->setParent(tool); // Adopted by a tool } else { @@ -95,7 +96,7 @@ auto VToolPiecePath::Create(VToolPiecePathInitData initData) -> VToolPiecePath * { // Seam allowance tool already initializated and can't init the path SCASSERT(initData.idObject > NULL_ID); VToolSeamAllowance *saTool = - qobject_cast(VAbstractPattern::getTool(initData.idObject)); + qobject_cast(VAbstractPattern::getTool(initData.idObject)); SCASSERT(saTool != nullptr); pathTool->setParentItem(saTool); pathTool->SetParentType(ParentType::Item); @@ -103,8 +104,8 @@ auto VToolPiecePath::Create(VToolPiecePathInitData initData) -> VToolPiecePath * else { // Try to prevent memory leak - initData.scene->addItem(pathTool);// First adopted by scene - pathTool->hide();// If no one will use node, it will stay hidden + initData.scene->addItem(pathTool); // First adopted by scene + pathTool->hide(); // If no one will use node, it will stay hidden pathTool->SetParentType(ParentType::Scene); } } @@ -127,11 +128,12 @@ void VToolPiecePath::paint(QPainter *painter, const QStyleOptionGraphicsItem *op const qreal scale = SceneScale(scene()); if (scale > 1) { - width = qMax(1., width/scale); + width = qMax(1., width / scale); } QPen toolPen = pen(); toolPen.setWidthF(width); + toolPen.setColor(VSceneStylesheet::PatternPieceStyle().PieceColor()); setPen(toolPen); @@ -289,9 +291,9 @@ void VToolPiecePath::ToolCreation(const Source &typeCreation) //--------------------------------------------------------------------------------------------------------------------- VToolPiecePath::VToolPiecePath(const VToolPiecePathInitData &initData, QObject *qoParent, QGraphicsItem *parent) - :VAbstractNode(initData.doc, initData.data, initData.id, NULL_ID, initData.drawName, initData.idTool, qoParent), - QGraphicsPathItem(parent), - m_pieceId(initData.idObject) + : VAbstractNode(initData.doc, initData.data, initData.id, NULL_ID, initData.drawName, initData.idTool, qoParent), + QGraphicsPathItem(parent), + m_pieceId(initData.idObject) { RefreshGeometry(); ToolCreation(initData.typeCreation); diff --git a/src/libs/vtools/tools/toolsdef.cpp b/src/libs/vtools/tools/toolsdef.cpp index 549e21b6b..a8211127e 100644 --- a/src/libs/vtools/tools/toolsdef.cpp +++ b/src/libs/vtools/tools/toolsdef.cpp @@ -36,14 +36,14 @@ #include #include #include -#include #include +#include -#include "../vgeometry/vgobject.h" #include "../qmuparser/qmudef.h" +#include "../vgeometry/vgobject.h" +#include "../vmisc/vabstractvalapplication.h" #include "../vpatterndb/vcontainer.h" #include "../vpropertyexplorer/checkablemessagebox.h" -#include "../vmisc/vabstractvalapplication.h" //--------------------------------------------------------------------------------------------------------------------- auto SourceToObjects(const QVector &source) -> QVector @@ -51,7 +51,7 @@ auto SourceToObjects(const QVector &source) -> QVector QVector ids; ids.reserve(source.size()); - for (auto s: source) + for (auto s : source) { ids.append(s.id); } @@ -81,8 +81,7 @@ auto SourceAliasValid(const SourceItem &item, const QSharedPointer &ob obj->SetAliasSuffix(oldAlias); } - if (not alias.isEmpty() && originAlias != alias && - (not rx.match(alias).hasMatch() || not data->IsUnique(alias))) + if (not alias.isEmpty() && originAlias != alias && (not rx.match(alias).hasMatch() || not data->IsUnique(alias))) { return false; } @@ -93,8 +92,7 @@ auto SourceAliasValid(const SourceItem &item, const QSharedPointer &ob //--------------------------------------------------------------------------------------------------------------------- auto OriginAlias(quint32 id, const QVector &source, const QSharedPointer &obj) -> QString { - auto item = std::find_if(source.begin(), source.end(), - [id](const SourceItem &sItem) { return sItem.id == id; }); + auto item = std::find_if(source.begin(), source.end(), [id](const SourceItem &sItem) { return sItem.id == id; }); if (item != source.end()) { if (obj->getType() == GOType::Point) @@ -113,9 +111,9 @@ auto OriginAlias(quint32 id, const QVector &source, const QSharedPoi } //--------------------------------------------------------------------------------------------------------------------- -auto OperationLineStylesPics() -> QMap +auto OperationLineStylesPics(QColor backgroundColor, QColor textColor) -> QMap { - QMap map = LineStylesPics(); + QMap map = LineStylesPics(backgroundColor, textColor); map.insert(TypeLineDefault, QIcon()); return map; } @@ -133,7 +131,7 @@ auto ConfirmDeletion() -> int msgBox.setText(QObject::tr("Do you really want to delete?")); msgBox.setStandardButtons(QDialogButtonBox::Yes | QDialogButtonBox::No); msgBox.setDefaultButton(QDialogButtonBox::No); - msgBox.setIconPixmap(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion).pixmap(32, 32) ); + msgBox.setIconPixmap(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion).pixmap(32, 32)); int dialogResult = msgBox.exec(); diff --git a/src/libs/vtools/tools/toolsdef.h b/src/libs/vtools/tools/toolsdef.h index 9125a04e2..578929892 100644 --- a/src/libs/vtools/tools/toolsdef.h +++ b/src/libs/vtools/tools/toolsdef.h @@ -28,8 +28,8 @@ #ifndef TOOLSDEF_H #define TOOLSDEF_H -#include #include +#include #include "../ifc/ifcdef.h" @@ -58,7 +58,7 @@ auto OriginAlias(quint32 id, const QVector &source, const QSharedPoi auto SourceAliasValid(const SourceItem &item, const QSharedPointer &obj, const VContainer *data, const QString &originAlias) -> bool; -auto OperationLineStylesPics() -> QMap; +auto OperationLineStylesPics(QColor backgroundColor, QColor textColor) -> QMap; auto ConfirmDeletion() -> int; diff --git a/src/libs/vtools/tools/vabstracttool.h b/src/libs/vtools/tools/vabstracttool.h index 9f349c528..51723c542 100644 --- a/src/libs/vtools/tools/vabstracttool.h +++ b/src/libs/vtools/tools/vabstracttool.h @@ -34,7 +34,6 @@ #include #include #include -#include #include #include "../ifc/xml/vabstractpattern.h" diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp index e7a264105..759e041cb 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.cpp +++ b/src/libs/vtools/tools/vtoolseamallowance.cpp @@ -42,6 +42,7 @@ #include "../vgeometry/vellipticalarc.h" #include "../vgeometry/vplacelabelitem.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vpatterndb/calculator.h" #include "../vpatterndb/floatItemData/vpatternlabeldata.h" #include "../vpatterndb/floatItemData/vpiecelabeldata.h" @@ -53,6 +54,7 @@ #include "../vwidgets/vmaingraphicsview.h" #include "../vwidgets/vnobrushscalepathitem.h" #include "../vwidgets/vpiecegrainline.h" +#include "theme/themeDef.h" #include "toolsdef.h" #if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) #include "../vmisc/backport/qoverload.h" @@ -1015,6 +1017,7 @@ void VToolSeamAllowance::paint(QPainter *painter, const QStyleOptionGraphicsItem { QPen toolPen = pen(); toolPen.setWidthF(ScaleWidth(VAbstractApplication::VApp()->Settings()->WidthHairLine(), SceneScale(scene()))); + toolPen.setColor(VSceneStylesheet::PatternPieceStyle().PieceColor()); setPen(toolPen); m_seamAllowance->setPen(toolPen); @@ -1376,7 +1379,7 @@ VToolSeamAllowance::VToolSeamAllowance(const VToolSeamAllowanceInitData &initDat m_seamAllowance(new VNoBrushScalePathItem(this)), m_dataLabel(new VTextGraphicsItem(VTextGraphicsItem::ItemType::PieceLabel, this)), m_patternInfo(new VTextGraphicsItem(VTextGraphicsItem::ItemType::PatternLabel, this)), - m_grainLine(new VGrainlineItem(this)), + m_grainLine(new VGrainlineItem(VColorRole::PieceColor, this)), m_passmarks(new QGraphicsPathItem(this)), m_placeLabels(new QGraphicsPathItem(this)) { @@ -1470,7 +1473,7 @@ void VToolSeamAllowance::RefreshGeometry(bool updateChildren) not detail.IsSeamAllowance() || detail.IsSeamAllowanceBuiltIn()) { m_mainPath = QPainterPath(); - m_seamAllowance->setBrush(QBrush(Qt::Dense7Pattern)); + m_seamAllowance->setBrush(QBrush(VSceneStylesheet::PatternPieceStyle().PieceColor(), Qt::Dense7Pattern)); path = futurePath.result(); } else diff --git a/src/libs/vtools/tools/vtoolseamallowance.h b/src/libs/vtools/tools/vtoolseamallowance.h index 409567dca..e03d35b36 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.h +++ b/src/libs/vtools/tools/vtoolseamallowance.h @@ -29,8 +29,6 @@ #ifndef VTOOLSEAMALLOWANCE_H #define VTOOLSEAMALLOWANCE_H - - #include #include #include @@ -54,6 +52,7 @@ struct VToolSeamAllowanceInitData : VAbstractToolInitData class VToolSeamAllowance : public VInteractiveTool, public QGraphicsPathItem { Q_OBJECT // NOLINT + public: ~VToolSeamAllowance() override = default; diff --git a/src/libs/vtools/visualization/line/operation/visoperation.cpp b/src/libs/vtools/visualization/line/operation/visoperation.cpp index 3c2ebcb48..ad837afe6 100644 --- a/src/libs/vtools/visualization/line/operation/visoperation.cpp +++ b/src/libs/vtools/visualization/line/operation/visoperation.cpp @@ -39,10 +39,8 @@ //--------------------------------------------------------------------------------------------------------------------- VisOperation::VisOperation(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetColor(VColor::SupportColor2, Qt::darkGreen); - SetColor(VColor::SupportColor3, Qt::darkBlue); } //--------------------------------------------------------------------------------------------------------------------- @@ -66,20 +64,20 @@ void VisOperation::VisualMode(quint32 id) } //--------------------------------------------------------------------------------------------------------------------- -auto VisOperation::GetPoint(quint32 i, const QColor &color) -> VScaledEllipse * +auto VisOperation::GetPoint(quint32 i, VColorRole role) -> VScaledEllipse * { - return GetPointItem(m_points, i, color, this); + return GetPointItem(m_points, i, role, this); } //--------------------------------------------------------------------------------------------------------------------- -auto VisOperation::GetCurve(quint32 i, const QColor &color) -> VCurvePathItem * +auto VisOperation::GetCurve(quint32 i, VColorRole role) -> VCurvePathItem * { if (!m_curves.isEmpty() && static_cast(m_curves.size() - 1) >= i) { return m_curves.at(static_cast(i)); } - auto *curve = InitItem(color, this); + auto *curve = InitItem(role, this); m_curves.append(curve); return curve; } @@ -98,23 +96,22 @@ void VisOperation::RefreshFlippedObjects(quint32 originPointId, const QPointF &f // This check helps to find missed objects in the switch Q_STATIC_ASSERT_X(static_cast(GOType::Unknown) == 8, "Not all objects were handled."); - switch(static_cast(obj->getType())) + switch (static_cast(obj->getType())) { case GOType::Point: { const QSharedPointer p = GetData()->GeometricObject(id); ++iPoint; - VScaledEllipse *point = GetPoint(static_cast(iPoint), Color(VColor::SupportColor2)); - DrawPoint(point, static_cast(*p), Color(VColor::SupportColor2)); + VScaledEllipse *point = GetPoint(static_cast(iPoint), VColorRole::VisSupportColor2); + DrawPoint(point, static_cast(*p)); ++iPoint; - point = GetPoint(static_cast(iPoint), Color(VColor::SupportColor)); + point = GetPoint(static_cast(iPoint), VColorRole::VisSupportColor); if (originPointId != NULL_ID) { - DrawPoint(point, static_cast(p->Flip(QLineF(firstPoint, secondPoint))), - Color(VColor::SupportColor)); + DrawPoint(point, static_cast(p->Flip(QLineF(firstPoint, secondPoint)))); } break; } diff --git a/src/libs/vtools/visualization/line/operation/visoperation.h b/src/libs/vtools/visualization/line/operation/visoperation.h index bda3ff318..cfb31b12d 100644 --- a/src/libs/vtools/visualization/line/operation/visoperation.h +++ b/src/libs/vtools/visualization/line/operation/visoperation.h @@ -37,6 +37,7 @@ class VisOperation : public VisLine { Q_OBJECT // NOLINT + public: explicit VisOperation(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisOperation() override; @@ -44,12 +45,15 @@ public: void SetObjects(const QVector &objects); void VisualMode(quint32 id = NULL_ID) override; - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ToolRotation)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ToolRotation) + }; protected: - auto GetPoint(quint32 i, const QColor &color) -> VScaledEllipse *; - auto GetCurve(quint32 i, const QColor &color) -> VCurvePathItem *; + auto GetPoint(quint32 i, VColorRole role) -> VScaledEllipse *; + auto GetCurve(quint32 i, VColorRole role) -> VCurvePathItem *; template auto AddFlippedCurve(quint32 originPointId, const QPointF &firstPoint, const QPointF &secondPoint, quint32 id, @@ -58,6 +62,7 @@ protected: void RefreshFlippedObjects(quint32 originPointId, const QPointF &firstPoint, const QPointF &secondPoint); auto Objects() const -> const QVector &; + private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(VisOperation) // NOLINT @@ -76,17 +81,15 @@ auto VisOperation::AddFlippedCurve(quint32 originPointId, const QPointF &firstPo const QSharedPointer curve = GetData()->template GeometricObject(id); ++i; - VCurvePathItem *path = GetCurve(static_cast(i), Color(VColor::SupportColor2)); - DrawPath(path, curve->GetPath(), curve->DirectionArrows(), Color(VColor::SupportColor2), Qt::SolidLine, - Qt::RoundCap); + VCurvePathItem *path = GetCurve(static_cast(i), VColorRole::VisSupportColor2); + DrawPath(path, curve->GetPath(), curve->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); ++i; - path = GetCurve(static_cast(i), Color(VColor::SupportColor)); + path = GetCurve(static_cast(i), VColorRole::VisSupportColor); if (originPointId != NULL_ID) { const Item flipped = curve->Flip(QLineF(firstPoint, secondPoint)); - DrawPath(path, flipped.GetPath(), flipped.DirectionArrows(), Color(VColor::SupportColor), Qt::SolidLine, - Qt::RoundCap); + DrawPath(path, flipped.GetPath(), flipped.DirectionArrows(), Qt::SolidLine, Qt::RoundCap); } return i; diff --git a/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp b/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp index e8ae81f9e..0258a0ab9 100644 --- a/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp +++ b/src/libs/vtools/visualization/line/operation/vistoolflippingbyaxis.cpp @@ -31,9 +31,11 @@ //--------------------------------------------------------------------------------------------------------------------- VisToolFlippingByAxis::VisToolFlippingByAxis(const VContainer *data, QGraphicsItem *parent) - : VisOperation(data, parent) + : VisOperation(data, parent) { - m_point1 = InitPoint(Color(VColor::SupportColor2), this); + SetColorRole(VColorRole::VisSupportColor2); + + m_point1 = InitPoint(VColorRole::VisSupportColor2, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -50,7 +52,7 @@ void VisToolFlippingByAxis::RefreshGeometry() if (m_originPointId != NULL_ID) { firstPoint = static_cast(*GetData()->GeometricObject(m_originPointId)); - DrawPoint(m_point1, firstPoint, Color(VColor::SupportColor2)); + DrawPoint(m_point1, firstPoint); if (m_axisType == AxisType::VerticalAxis) { @@ -61,7 +63,7 @@ void VisToolFlippingByAxis::RefreshGeometry() secondPoint = QPointF(firstPoint.x() + 100, firstPoint.y()); } - DrawLine(this, Axis(firstPoint, secondPoint), Color(VColor::SupportColor2), Qt::DashLine); + DrawLine(this, Axis(firstPoint, secondPoint), Qt::DashLine); } RefreshFlippedObjects(m_originPointId, firstPoint, secondPoint); diff --git a/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp b/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp index 6701d6c9d..3985bb264 100644 --- a/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp +++ b/src/libs/vtools/visualization/line/operation/vistoolflippingbyline.cpp @@ -31,10 +31,12 @@ //--------------------------------------------------------------------------------------------------------------------- VisToolFlippingByLine::VisToolFlippingByLine(const VContainer *data, QGraphicsItem *parent) - : VisOperation(data, parent) + : VisOperation(data, parent) { - m_point1 = InitPoint(Color(VColor::SupportColor2), this); - m_point2 = InitPoint(Color(VColor::SupportColor2), this); + SetColorRole(VColorRole::VisSupportColor2); + + m_point1 = InitPoint(VColorRole::VisSupportColor2, this); + m_point2 = InitPoint(VColorRole::VisSupportColor2, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -51,7 +53,7 @@ void VisToolFlippingByLine::RefreshGeometry() if (m_lineP1Id != NULL_ID) { firstPoint = static_cast(*GetData()->GeometricObject(m_lineP1Id)); - DrawPoint(m_point1, firstPoint, Color(VColor::SupportColor2)); + DrawPoint(m_point1, firstPoint); if (m_lineP2Id == NULL_ID) { @@ -60,10 +62,10 @@ void VisToolFlippingByLine::RefreshGeometry() else { secondPoint = static_cast(*GetData()->GeometricObject(m_lineP2Id)); - DrawPoint(m_point2, secondPoint, Color(VColor::SupportColor2)); + DrawPoint(m_point2, secondPoint); } - DrawLine(this, QLineF(firstPoint, secondPoint), Color(VColor::SupportColor2), Qt::DashLine); + DrawLine(this, QLineF(firstPoint, secondPoint), Qt::DashLine); } RefreshFlippedObjects(m_lineP1Id, firstPoint, secondPoint); diff --git a/src/libs/vtools/visualization/line/operation/vistoolmove.cpp b/src/libs/vtools/visualization/line/operation/vistoolmove.cpp index 1ee4cf7fd..d99e99ceb 100644 --- a/src/libs/vtools/visualization/line/operation/vistoolmove.cpp +++ b/src/libs/vtools/visualization/line/operation/vistoolmove.cpp @@ -28,22 +28,19 @@ #include "vistoolmove.h" -#include #include #include #include #include #include #include -#include #include +#include #include -#include "../ifc/xml/vdomdocument.h" #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #include "../vmisc/diagnostic.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) -#include "../vmisc/vmodifierkey.h" #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" #include "../vgeometry/vcubicbezier.h" @@ -54,22 +51,23 @@ #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" #include "../vgeometry/vsplinepath.h" -#include "../vgeometry/varc.h" -#include "../vmisc/vabstractapplication.h" +#include "../vmisc/vmodifierkey.h" #include "../vpatterndb/vcontainer.h" -#include "visoperation.h" #include "../vwidgets/global.h" +#include "visoperation.h" //--------------------------------------------------------------------------------------------------------------------- VisToolMove::VisToolMove(const VContainer *data, QGraphicsItem *parent) - : VisOperation(data, parent) + : VisOperation(data, parent) { - m_pointOrigin = InitPoint(Color(VColor::SupportColor2), this); - m_pointRotationOrigin = InitPoint(Color(VColor::SupportColor2), this); - m_pointFinish = InitPoint(Color(VColor::SupportColor), this); - m_angleArc = InitItem(Color(VColor::SupportColor3), this); - m_rotationLine = InitItem(Color(VColor::SupportColor3), this); - m_xAxis = InitItem(Color(VColor::SupportColor3), this); + SetColorRole(VColorRole::VisSupportColor2); + + m_pointOrigin = InitPoint(VColorRole::VisSupportColor2, this); + m_pointRotationOrigin = InitPoint(VColorRole::VisSupportColor2, this); + m_pointFinish = InitPoint(VColorRole::VisSupportColor, this); + m_angleArc = InitItem(VColorRole::VisSupportColor3, this); + m_rotationLine = InitItem(VColorRole::VisSupportColor3, this); + m_xAxis = InitItem(VColorRole::VisSupportColor3, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -86,7 +84,7 @@ void VisToolMove::RefreshGeometry() const QVector originObjects = CreateOriginObjects(iPoint, iCurve); QPointF origin = GetOriginPoint(originObjects); - DrawPoint(m_pointOrigin, origin, Color(VColor::SupportColor2)); + DrawPoint(m_pointOrigin, origin); qreal tempAngle = 0; qreal tempLength = 0; @@ -117,7 +115,7 @@ void VisToolMove::RefreshGeometry() if (m_rotationOriginId != NULL_ID) { origin = GetData()->GeometricObject(m_rotationOriginId)->toQPointF(); - DrawPoint(m_pointRotationOrigin, origin, Color(VColor::SupportColor2)); + DrawPoint(m_pointRotationOrigin, origin); } else { @@ -137,11 +135,11 @@ void VisToolMove::RefreshGeometry() qreal cursorLength = rLine.length(); rLine.setP2(Ray(origin, rLine.angle())); - //Radius of point circle, but little bigger. Need handle with hover sizes. - qreal minL = ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5; + // Radius of point circle, but little bigger. Need handle with hover sizes. + qreal minL = ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5; if (cursorLength > minL) { - tempRoationAngle = rLine.angle(); + tempRoationAngle = rLine.angle(); } else { @@ -154,15 +152,15 @@ void VisToolMove::RefreshGeometry() tempRoationAngle = m_rotationAngle; } - DrawLine(m_rotationLine, rLine, Color(VColor::SupportColor3), Qt::DashLine); - DrawLine(m_xAxis, QLineF(origin, Ray(origin, 0)), Color(VColor::SupportColor3), Qt::DashLine); + DrawLine(m_rotationLine, rLine, Qt::DashLine); + DrawLine(m_xAxis, QLineF(origin, Ray(origin, 0)), Qt::DashLine); - VArc arc(VPointF(origin), - ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*2, 0, tempRoationAngle); - DrawPath(m_angleArc, arc.GetPath(), Color(VColor::SupportColor3), Qt::SolidLine, Qt::RoundCap); + VArc arc(VPointF(origin), ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 2, 0, + tempRoationAngle); + DrawPath(m_angleArc, arc.GetPath(), Qt::SolidLine, Qt::RoundCap); } - DrawLine(this, line, Color(VColor::SupportColor2), Qt::DashLine); - DrawPoint(m_pointFinish, line.p2(), Color(VColor::SupportColor)); + DrawLine(this, line, Qt::DashLine); + DrawPoint(m_pointFinish, line.p2()); static const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); if (qFuzzyIsNull(m_length)) @@ -225,15 +223,13 @@ void VisToolMove::SetLength(const QString &expression) } //--------------------------------------------------------------------------------------------------------------------- -template -auto VisToolMove::AddOriginCurve(quint32 id, int &i) -> QGraphicsPathItem * +template auto VisToolMove::AddOriginCurve(quint32 id, int &i) -> QGraphicsPathItem * { const QSharedPointer curve = GetData()->template GeometricObject(id); ++i; - VCurvePathItem *path = GetCurve(static_cast(i), Color(VColor::SupportColor2)); - DrawPath(path, curve->GetPath(), curve->DirectionArrows(), Color(VColor::SupportColor2), Qt::SolidLine, - Qt::RoundCap); + VCurvePathItem *path = GetCurve(static_cast(i), VColorRole::VisSupportColor2); + DrawPath(path, curve->GetPath(), curve->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); return path; } @@ -246,9 +242,9 @@ auto VisToolMove::AddMovedRotatedCurve(qreal angle, qreal length, quint32 id, in const QSharedPointer curve = GetData()->template GeometricObject(id); ++i; - VCurvePathItem *path = GetCurve(static_cast(i), Color(VColor::SupportColor)); + VCurvePathItem *path = GetCurve(static_cast(i), VColorRole::VisSupportColor); const Item moved = curve->Move(length, angle).Rotate(rotationOrigin, rotationAngle); - DrawPath(path, moved.GetPath(), moved.DirectionArrows(), Color(VColor::SupportColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(path, moved.GetPath(), moved.DirectionArrows(), Qt::SolidLine, Qt::RoundCap); return i; } @@ -262,11 +258,11 @@ auto VisToolMove::GetOriginPoint(const QVector &objects) -> QPo if (object) { QRectF childrenRect = object->childrenBoundingRect(); - //map to scene coordinate. + // map to scene coordinate. childrenRect.translate(object->scenePos()); QRectF itemRect = object->boundingRect(); - //map to scene coordinate. + // map to scene coordinate. itemRect.translate(object->scenePos()); boundingRect = boundingRect.united(itemRect); @@ -293,15 +289,15 @@ auto VisToolMove::CreateOriginObjects(int &iPoint, int &iCurve) -> QVector(GOType::Unknown) == 8, "Not all objects were handled."); - switch(static_cast(obj->getType())) + switch (static_cast(obj->getType())) { case GOType::Point: { const QSharedPointer p = GetData()->GeometricObject(id); ++iPoint; - VScaledEllipse *point = GetPoint(static_cast(iPoint), Color(VColor::SupportColor2)); - DrawPoint(point, static_cast(*p), Color(VColor::SupportColor2)); + VScaledEllipse *point = GetPoint(static_cast(iPoint), VColorRole::VisSupportColor2); + DrawPoint(point, static_cast(*p)); originObjects.append(point); break; @@ -350,16 +346,15 @@ void VisToolMove::CreateMovedRotatedObjects(int &iPoint, int &iCurve, qreal leng // This check helps to find missed objects in the switch Q_STATIC_ASSERT_X(static_cast(GOType::Unknown) == 8, "Not all objects was handled."); - switch(static_cast(obj->getType())) + switch (static_cast(obj->getType())) { case GOType::Point: { const QSharedPointer p = GetData()->GeometricObject(id); ++iPoint; - VScaledEllipse *point = GetPoint(static_cast(iPoint), Color(VColor::SupportColor)); - DrawPoint(point, static_cast(p->Move(length, angle).Rotate(rotationOrigin, rotationAngle)), - Color(VColor::SupportColor)); + VScaledEllipse *point = GetPoint(static_cast(iPoint), VColorRole::VisSupportColor); + DrawPoint(point, static_cast(p->Move(length, angle).Rotate(rotationOrigin, rotationAngle))); break; } case GOType::Arc: @@ -378,8 +373,8 @@ void VisToolMove::CreateMovedRotatedObjects(int &iPoint, int &iCurve, qreal leng iCurve = AddMovedRotatedCurve(angle, length, id, iCurve, rotationAngle, rotationOrigin); break; case GOType::CubicBezierPath: - iCurve = AddMovedRotatedCurve(angle, length, id, iCurve, rotationAngle, - rotationOrigin); + iCurve = + AddMovedRotatedCurve(angle, length, id, iCurve, rotationAngle, rotationOrigin); break; case GOType::Unknown: case GOType::PlaceLabel: diff --git a/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp b/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp index f30d783a6..470b70579 100644 --- a/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp +++ b/src/libs/vtools/visualization/line/operation/vistoolrotation.cpp @@ -28,21 +28,19 @@ #include "vistoolrotation.h" -#include #include #include #include #include #include #include -#include #include +#include #include #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #include "../vmisc/diagnostic.h" #endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) -#include "../vmisc/vmodifierkey.h" #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" #include "../vgeometry/vcubicbezier.h" @@ -53,17 +51,20 @@ #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" #include "../vgeometry/vsplinepath.h" +#include "../vmisc/vmodifierkey.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/global.h" #include "visoperation.h" //--------------------------------------------------------------------------------------------------------------------- VisToolRotation::VisToolRotation(const VContainer *data, QGraphicsItem *parent) - : VisOperation(data, parent) + : VisOperation(data, parent) { - m_point = InitPoint(Color(VColor::SupportColor2), this); - m_angleArc = InitItem(Color(VColor::SupportColor2), this); - m_xAxis = InitItem(Color(VColor::SupportColor2), this); + SetColorRole(VColorRole::VisSupportColor2); + + m_point = InitPoint(VColorRole::VisSupportColor2, this); + m_angleArc = InitItem(VColorRole::VisSupportColor2, this); + m_xAxis = InitItem(VColorRole::VisSupportColor2, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -84,7 +85,7 @@ void VisToolRotation::RefreshGeometry() if (m_originPointId != NULL_ID) { origin = GetData()->GeometricObject(m_originPointId); - DrawPoint(m_point, static_cast(*origin), Color(VColor::SupportColor2)); + DrawPoint(m_point, static_cast(*origin)); QLineF rLine; if (VFuzzyComparePossibleNulls(m_angle, INT_MIN)) @@ -105,12 +106,12 @@ void VisToolRotation::RefreshGeometry() tempAngle = m_angle; } - DrawLine(this, rLine, Color(VColor::SupportColor2), Qt::DashLine); - DrawLine(m_xAxis, QLineF(static_cast(*origin), Ray(static_cast(*origin), 0)), - Color(VColor::SupportColor2), Qt::DashLine); + DrawLine(this, rLine, Qt::DashLine); + DrawLine(m_xAxis, QLineF(static_cast(*origin), Ray(static_cast(*origin), 0)), Qt::DashLine); - VArc arc(*origin, ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*2, 0, tempAngle); - DrawPath(m_angleArc, arc.GetPath(), Color(VColor::SupportColor2), Qt::SolidLine, Qt::RoundCap); + VArc arc(*origin, ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 2, 0, + tempAngle); + DrawPath(m_angleArc, arc.GetPath(), Qt::SolidLine, Qt::RoundCap); SetToolTip(tr("Rotating angle = %1°, %2 - sticking angle, " "Mouse click - finish creation") @@ -126,23 +127,22 @@ void VisToolRotation::RefreshGeometry() // This check helps to find missed objects in the switch Q_STATIC_ASSERT_X(static_cast(GOType::Unknown) == 8, "Not all objects was handled."); - switch(static_cast(obj->getType())) + switch (static_cast(obj->getType())) { case GOType::Point: { const QSharedPointer p = GetData()->GeometricObject(id); ++iPoint; - VScaledEllipse *point = GetPoint(static_cast(iPoint), Color(VColor::SupportColor2)); - DrawPoint(point, static_cast(*p), Color(VColor::SupportColor2)); + VScaledEllipse *point = GetPoint(static_cast(iPoint), VColorRole::VisSupportColor2); + DrawPoint(point, static_cast(*p)); ++iPoint; - point = GetPoint(static_cast(iPoint), Color(VColor::SupportColor)); + point = GetPoint(static_cast(iPoint), VColorRole::VisSupportColor); if (m_originPointId != NULL_ID) { - DrawPoint(point, static_cast(p->Rotate(static_cast(*origin), tempAngle)), - Color(VColor::SupportColor)); + DrawPoint(point, static_cast(p->Rotate(static_cast(*origin), tempAngle))); } break; } @@ -199,23 +199,20 @@ void VisToolRotation::SetAngle(const QString &expression) } //--------------------------------------------------------------------------------------------------------------------- -template -auto VisToolRotation::AddCurve(qreal angle, const QPointF &origin, quint32 id, int i) -> int +template auto VisToolRotation::AddCurve(qreal angle, const QPointF &origin, quint32 id, int i) -> int { const QSharedPointer curve = GetData()->template GeometricObject(id); ++i; - VCurvePathItem *path = GetCurve(static_cast(i), Color(VColor::SupportColor2)); - DrawPath(path, curve->GetPath(), curve->DirectionArrows(), Color(VColor::SupportColor2), Qt::SolidLine, - Qt::RoundCap); + VCurvePathItem *path = GetCurve(static_cast(i), VColorRole::VisSupportColor2); + DrawPath(path, curve->GetPath(), curve->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); ++i; - path = GetCurve(static_cast(i), Color(VColor::SupportColor)); + path = GetCurve(static_cast(i), VColorRole::VisSupportColor); if (m_originPointId != NULL_ID) { const Item rotated = curve->Rotate(origin, angle); - DrawPath(path, rotated.GetPath(), rotated.DirectionArrows(), Color(VColor::SupportColor), Qt::SolidLine, - Qt::RoundCap); + DrawPath(path, rotated.GetPath(), rotated.DirectionArrows(), Qt::SolidLine, Qt::RoundCap); } return i; diff --git a/src/libs/vtools/visualization/line/visline.cpp b/src/libs/vtools/visualization/line/visline.cpp index a0719581d..04d817f42 100644 --- a/src/libs/vtools/visualization/line/visline.cpp +++ b/src/libs/vtools/visualization/line/visline.cpp @@ -35,13 +35,15 @@ #include #include "../vgeometry/vgobject.h" +#include "../vmisc/theme/themeDef.h" #include "../vpatterndb/vcontainer.h" //--------------------------------------------------------------------------------------------------------------------- VisLine::VisLine(const VContainer *data, QGraphicsItem *parent) - :Visualization(data), VScaledLine(parent) + : Visualization(data), + VScaledLine(VColorRole::VisMainColor, parent) { - this->setZValue(1);// Show on top of a real tool + this->setZValue(1); // Show on top of a real tool VisLine::InitPen(); } @@ -51,10 +53,10 @@ auto VisLine::CorrectAngle(const qreal &angle) -> qreal qreal ang = angle; if (angle > 360) { - ang = angle - 360.0 * qFloor(angle/360); + ang = angle - 360.0 * qFloor(angle / 360); } - switch (qFloor((qAbs(ang)+22.5)/45)) + switch (qFloor((qAbs(ang) + 22.5) / 45)) { case 1: // <67.5 return 45; @@ -70,7 +72,7 @@ auto VisLine::CorrectAngle(const qreal &angle) -> qreal return 270; case 7: // <337.5 return 315; - case 0: // <22.5 + case 0: // <22.5 default: // <360 return 0; } @@ -83,12 +85,12 @@ auto VisLine::Ray(const QPointF &firstPoint, const qreal &angle) const -> QPoint { QLineF line = QLineF(firstPoint, ScenePos()); line.setAngle(angle); - return line.p2();// We can't find ray because item doesn't have scene. We will return cursor position on scene. + return line.p2(); // We can't find ray because item doesn't have scene. We will return cursor position on scene. } QRectF scRect = this->scene()->sceneRect(); - //Limit size of the scene rect. Axis that has same size as scene rect cause scene size growth. + // Limit size of the scene rect. Axis that has same size as scene rect cause scene size growth. QLineF line1 = QLineF(scRect.topLeft(), scRect.bottomRight()); line1.setLength(2); @@ -115,7 +117,7 @@ auto VisLine::Ray(const QPointF &firstPoint) const -> QPointF //--------------------------------------------------------------------------------------------------------------------- auto VisLine::Axis(const QPointF &p, const qreal &angle) const -> QLineF { - return {Ray(p, angle+180), Ray(p, angle)}; + return {Ray(p, angle + 180), Ray(p, angle)}; } //--------------------------------------------------------------------------------------------------------------------- @@ -129,9 +131,7 @@ auto VisLine::Axis(const QPointF &p1, const QPointF &p2) const -> QLineF void VisLine::InitPen() { QPen visPen = pen(); - visPen.setColor(Color(VColor::MainColor)); visPen.setStyle(LineStyle()); - setPen(visPen); } @@ -142,13 +142,12 @@ void VisLine::AddOnScene() } //--------------------------------------------------------------------------------------------------------------------- -void VisLine::DrawRay(VScaledLine *lineItem, const QPointF &p, const QPointF &pTangent, const QColor &color, - Qt::PenStyle style) +void VisLine::DrawRay(VScaledLine *lineItem, const QPointF &p, const QPointF &pTangent, Qt::PenStyle style) { - SCASSERT (lineItem != nullptr) + SCASSERT(lineItem != nullptr) const qreal angle = QLineF(p, pTangent).angle(); const QPointF endRay = Ray(p, angle); const QLineF tangent = VGObject::BuildLine(p, QLineF(p, endRay).length(), angle); - DrawLine(lineItem, tangent, color, style); + DrawLine(lineItem, tangent, style); } diff --git a/src/libs/vtools/visualization/line/visline.h b/src/libs/vtools/visualization/line/visline.h index f879ed785..f49272c19 100644 --- a/src/libs/vtools/visualization/line/visline.h +++ b/src/libs/vtools/visualization/line/visline.h @@ -29,7 +29,6 @@ #ifndef VISLINE_H #define VISLINE_H - #include #include #include @@ -38,24 +37,28 @@ #include #include #include -#include #include -#include "../vtools/visualization/visualization.h" #include "../vmisc/def.h" +#include "../vtools/visualization/visualization.h" #include "../vwidgets/scalesceneitems.h" -class VisLine: public Visualization, public VScaledLine +class VisLine : public Visualization, public VScaledLine { Q_OBJECT // NOLINT + public: explicit VisLine(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisLine() override = default; - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::Line)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::Line) + }; static auto CorrectAngle(const qreal &angle) -> qreal; + protected: auto Ray(const QPointF &firstPoint, const qreal &angle) const -> QPointF; auto Ray(const QPointF &firstPoint) const -> QPointF; @@ -65,8 +68,8 @@ protected: void InitPen() override; void AddOnScene() override; - void DrawRay(VScaledLine *lineItem, const QPointF &p, const QPointF &pTangent, const QColor &color, - Qt::PenStyle style); + void DrawRay(VScaledLine *lineItem, const QPointF &p, const QPointF &pTangent, Qt::PenStyle style); + private: Q_DISABLE_COPY_MOVE(VisLine) // NOLINT }; diff --git a/src/libs/vtools/visualization/line/vistoolalongline.cpp b/src/libs/vtools/visualization/line/vistoolalongline.cpp index 8837bccf8..002f1580a 100644 --- a/src/libs/vtools/visualization/line/vistoolalongline.cpp +++ b/src/libs/vtools/visualization/line/vistoolalongline.cpp @@ -33,27 +33,25 @@ #include #include #include -#include #include #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolAlongLine::VisToolAlongLine(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); - this->setZValue(2);// Show on top real tool + setZValue(2); // Show on top real tool - m_lineP1 = InitPoint(Color(VColor::SupportColor), this); - m_lineP2 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_line = InitItem(Color(VColor::SupportColor), this); - m_point = InitPoint(Color(VColor::MainColor), this); + m_lineP1 = InitPoint(VColorRole::VisSupportColor, this); + m_lineP2 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_line = InitItem(VColorRole::VisSupportColor, this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -68,37 +66,37 @@ void VisToolAlongLine::RefreshGeometry() if (m_point1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_point1Id); - DrawPoint(m_lineP1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_lineP1, static_cast(*first)); if (m_point2Id <= NULL_ID) { - QLineF cursorLine (static_cast(*first), ScenePos()); - DrawLine(m_line, cursorLine, Color(VColor::SupportColor)); + QLineF cursorLine(static_cast(*first), ScenePos()); + DrawLine(m_line, cursorLine); if (m_midPointMode) { - cursorLine.setLength(cursorLine.length()/2.0); - DrawPoint(m_point, cursorLine.p2(), Color(VColor::MainColor)); + cursorLine.setLength(cursorLine.length() / 2.0); + DrawPoint(m_point, cursorLine.p2()); } } else { const QSharedPointer second = GetData()->GeometricObject(m_point2Id); - DrawPoint(m_lineP2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_lineP2, static_cast(*second)); QLineF baseLine(static_cast(*first), static_cast(*second)); - DrawLine(m_line, baseLine, Color(VColor::SupportColor)); + DrawLine(m_line, baseLine); if (not qFuzzyIsNull(m_length)) { QLineF mainLine = VGObject::BuildLine(static_cast(*first), m_length, m_line->line().angle()); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, mainLine.p2()); } else if (GetMode() == Mode::Creation) { - QLineF cursorLine (static_cast(*first), ScenePos()); + QLineF cursorLine(static_cast(*first), ScenePos()); qreal len = cursorLine.length(); qreal angleTo = baseLine.angleTo(cursorLine); @@ -108,9 +106,9 @@ void VisToolAlongLine::RefreshGeometry() } QLineF mainLine = VGObject::BuildLine(static_cast(*first), len, m_line->line().angle()); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, mainLine.p2()); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " diff --git a/src/libs/vtools/visualization/line/vistoolbisector.cpp b/src/libs/vtools/visualization/line/vistoolbisector.cpp index c63138b15..fb8198601 100644 --- a/src/libs/vtools/visualization/line/vistoolbisector.cpp +++ b/src/libs/vtools/visualization/line/vistoolbisector.cpp @@ -37,23 +37,23 @@ #include "../../tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolBisector::VisToolBisector(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - m_line1P1 = InitPoint(Color(VColor::SupportColor), this); - m_line1P2 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_line1 = InitItem(Color(VColor::SupportColor), this); + m_line1P1 = InitPoint(VColorRole::VisSupportColor, this); + m_line1P2 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_line1 = InitItem(VColorRole::VisSupportColor, this); - m_line2P2 = InitPoint(Color(VColor::SupportColor), this); - m_line2 = InitItem(Color(VColor::SupportColor), this); + m_line2P2 = InitPoint(VColorRole::VisSupportColor, this); + m_line2 = InitItem(VColorRole::VisSupportColor, this); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -68,50 +68,46 @@ void VisToolBisector::RefreshGeometry() if (m_point1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_point1Id); - DrawPoint(m_line1P1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_line1P1, static_cast(*first)); if (m_point2Id <= NULL_ID) { - DrawLine(m_line1, QLineF(static_cast(*first), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_line1, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_point2Id); - DrawPoint(m_line1P2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_line1P2, static_cast(*second)); - DrawLine(m_line1, QLineF(static_cast(*first), static_cast(*second)), - Color(VColor::SupportColor)); + DrawLine(m_line1, QLineF(static_cast(*first), static_cast(*second))); if (m_point3Id <= NULL_ID) { - DrawLine(m_line2, QLineF(static_cast(*second), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_line2, QLineF(static_cast(*second), ScenePos())); } else { const QSharedPointer third = GetData()->GeometricObject(m_point3Id); - DrawPoint(m_line2P2, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_line2P2, static_cast(*third)); - DrawLine(m_line2, QLineF(static_cast(*second), static_cast(*third)), - Color(VColor::SupportColor)); + DrawLine(m_line2, QLineF(static_cast(*second), static_cast(*third))); if (not qFuzzyIsNull(m_length)) { - qreal angle = VToolBisector::BisectorAngle(static_cast(*first), - static_cast(*second), - static_cast(*third)); + qreal angle = VToolBisector::BisectorAngle( + static_cast(*first), static_cast(*second), static_cast(*third)); QLineF mainLine = VGObject::BuildLine(static_cast(*second), m_length, angle); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, mainLine.p2()); } else if (GetMode() == Mode::Creation) { - QLineF cursorLine (static_cast(*second), ScenePos()); + QLineF cursorLine(static_cast(*second), ScenePos()); QLineF baseLine(static_cast(*second), static_cast(*third)); - qreal angle = VToolBisector::BisectorAngle(static_cast(*first), - static_cast(*second), - static_cast(*third)); + qreal angle = VToolBisector::BisectorAngle( + static_cast(*first), static_cast(*second), static_cast(*third)); baseLine.setAngle(angle); @@ -124,9 +120,9 @@ void VisToolBisector::RefreshGeometry() QLineF mainLine = VGObject::BuildLine(static_cast(*second), len, angle); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, mainLine.p2()); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " @@ -136,14 +132,12 @@ void VisToolBisector::RefreshGeometry() } else { - qreal angle = VToolBisector::BisectorAngle(static_cast(*first), - static_cast(*second), - static_cast(*third)); + qreal angle = VToolBisector::BisectorAngle( + static_cast(*first), static_cast(*second), static_cast(*third)); QPointF endRay = Ray(static_cast(*second), angle); - QLineF mainLine = VGObject::BuildLine(static_cast(*second), - QLineF(static_cast(*second), endRay).length(), - angle); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + QLineF mainLine = VGObject::BuildLine( + static_cast(*second), QLineF(static_cast(*second), endRay).length(), angle); + DrawLine(this, mainLine, LineStyle()); } } } diff --git a/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp b/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp index 652e2ce22..c8b4a71bf 100644 --- a/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp +++ b/src/libs/vtools/visualization/line/vistoolcurveintersectaxis.cpp @@ -35,28 +35,25 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.h" #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCurveIntersectAxis::VisToolCurveIntersectAxis(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); - - m_visCurve = InitItem(Qt::darkGreen, this); - m_basePoint = InitPoint(Color(VColor::SupportColor), this); - m_baseLine = InitItem(Color(VColor::SupportColor), this); - m_axisLine = InitItem(Color(VColor::SupportColor), this); //-V656 - m_point = InitPoint(Color(VColor::MainColor), this); + m_visCurve = InitItem(VColorRole::VisSupportColor2, this); + m_basePoint = InitPoint(VColorRole::VisSupportColor, this); + m_baseLine = InitItem(VColorRole::VisSupportColor, this); + m_axisLine = InitItem(VColorRole::VisSupportColor, this); //-V656 + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -65,8 +62,7 @@ void VisToolCurveIntersectAxis::RefreshGeometry() if (m_curveId > NULL_ID) { const QSharedPointer curve = GetData()->GeometricObject(m_curveId); - DrawPath(m_visCurve, curve->GetPath(), curve->DirectionArrows(), Color(VColor::SupportColor), Qt::SolidLine, - Qt::RoundCap); + DrawPath(m_visCurve, curve->GetPath(), curve->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); if (m_axisPointId > NULL_ID) { @@ -80,15 +76,15 @@ void VisToolCurveIntersectAxis::RefreshGeometry() { axis = Axis(static_cast(*first), m_angle); } - DrawPoint(m_basePoint, static_cast(*first), Color(VColor::MainColor)); - DrawLine(m_axisLine, axis, Color(VColor::SupportColor), Qt::DashLine); + DrawPoint(m_basePoint, static_cast(*first)); + DrawLine(m_axisLine, axis, Qt::DashLine); QPointF p; VToolCurveIntersectAxis::FindPoint(static_cast(*first), axis.angle(), curve->GetPoints(), &p); QLineF axis_line(static_cast(*first), p); - DrawLine(this, axis_line, Color(VColor::MainColor), LineStyle()); + DrawLine(this, axis_line, LineStyle()); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); SetToolTip(tr("Intersection curve and axis: angle = %1°; %2 - " "sticking angle, %3 - finish creation") diff --git a/src/libs/vtools/visualization/line/vistoolendline.cpp b/src/libs/vtools/visualization/line/vistoolendline.cpp index a46353ed0..04cbfdf18 100644 --- a/src/libs/vtools/visualization/line/vistoolendline.cpp +++ b/src/libs/vtools/visualization/line/vistoolendline.cpp @@ -33,26 +33,22 @@ #include #include #include -#include #include #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vmisc/vabstractapplication.h" -#include "../vmisc/vcommonsettings.h" +#include "../visualization.h" #include "../vmisc/vmodifierkey.h" #include "../vpatterndb/vcontainer.h" -#include "../visualization.h" #include "visline.h" -#include "../vpatterndb/vtranslatevars.h" //--------------------------------------------------------------------------------------------------------------------- VisToolEndLine::VisToolEndLine(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); + SetColorRole(VColorRole::VisMainColor); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -76,15 +72,15 @@ void VisToolEndLine::RefreshGeometry() } else { - DrawPoint(m_point, static_cast(*first), Color(VColor::MainColor)); + DrawPoint(m_point, static_cast(*first)); } } else { line = VGObject::BuildLine(static_cast(*first), m_length, m_angle); - DrawPoint(m_point, line.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, line.p2()); } - DrawLine(this, line, Color(VColor::MainColor), LineStyle()); + DrawLine(this, line, LineStyle()); static const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Point at distance and angle: angle = %1°, length = %2%3; " "%4 - sticking angle, %5 - finish creation") diff --git a/src/libs/vtools/visualization/line/vistoolheight.cpp b/src/libs/vtools/visualization/line/vistoolheight.cpp index 12a1af460..0e956ca39 100644 --- a/src/libs/vtools/visualization/line/vistoolheight.cpp +++ b/src/libs/vtools/visualization/line/vistoolheight.cpp @@ -32,27 +32,26 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/compatibility.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolHeight::VisToolHeight(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - m_basePoint = InitPoint(Color(VColor::SupportColor), this); - m_lineP1 = InitPoint(Color(VColor::SupportColor), this); - m_lineP2 = InitPoint(Color(VColor::SupportColor), this); - m_line = InitItem(Color(VColor::SupportColor), this); - m_lineIntersection = InitItem(Color(VColor::SupportColor), this); //-V656 + m_basePoint = InitPoint(VColorRole::VisSupportColor, this); + m_lineP1 = InitPoint(VColorRole::VisSupportColor, this); + m_lineP2 = InitPoint(VColorRole::VisSupportColor, this); + m_line = InitItem(VColorRole::VisSupportColor, this); + m_lineIntersection = InitItem(VColorRole::VisSupportColor, this); //-V656 - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -61,38 +60,38 @@ void VisToolHeight::RefreshGeometry() if (m_basePointId > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_basePointId); - DrawPoint(m_basePoint, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_basePoint, static_cast(*first)); if (m_lineP1Id <= NULL_ID) { - DrawLine(this, QLineF(static_cast(*first), ScenePos()), Color(VColor::MainColor)); + DrawLine(this, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_lineP1Id); - DrawPoint(m_lineP1, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_lineP1, static_cast(*second)); QLineF base_line; if (m_lineP2Id <= NULL_ID) { base_line = QLineF(static_cast(*second), ScenePos()); - DrawLine(m_line, base_line, Color(VColor::SupportColor)); + DrawLine(m_line, base_line); } else { const QSharedPointer third = GetData()->GeometricObject(m_lineP2Id); - DrawPoint(m_lineP2, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_lineP2, static_cast(*third)); base_line = QLineF(static_cast(*second), static_cast(*third)); } - DrawLine(m_line, base_line, Color(VColor::SupportColor)); + DrawLine(m_line, base_line); QPointF height = VToolHeight::FindPoint(base_line, static_cast(*first)); - DrawPoint(m_point, height, Color(VColor::MainColor)); + DrawPoint(m_point, height); QLineF height_line(static_cast(*first), height); - DrawLine(this, height_line, Color(VColor::MainColor), LineStyle()); + DrawLine(this, height_line, LineStyle()); ShowIntersection(height_line, base_line); } @@ -115,8 +114,7 @@ void VisToolHeight::ShowIntersection(const QLineF &height_line, const QLineF &ba if (intersect == QLineF::UnboundedIntersection) { m_lineIntersection->setVisible(true); - DrawLine(m_lineIntersection, QLineF(base_line.p1(), height_line.p2()), Color(VColor::SupportColor), - Qt::DashLine); + DrawLine(m_lineIntersection, QLineF(base_line.p1(), height_line.p2()), Qt::DashLine); } else if (intersect == QLineF::BoundedIntersection) { diff --git a/src/libs/vtools/visualization/line/vistoolline.cpp b/src/libs/vtools/visualization/line/vistoolline.cpp index 2ad6b9a6b..e4eae8b23 100644 --- a/src/libs/vtools/visualization/line/vistoolline.cpp +++ b/src/libs/vtools/visualization/line/vistoolline.cpp @@ -35,15 +35,14 @@ #include #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vpatterndb/vcontainer.h" #include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolLine::VisToolLine(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); } //--------------------------------------------------------------------------------------------------------------------- @@ -60,7 +59,7 @@ void VisToolLine::RefreshGeometry() const QSharedPointer second = GetData()->GeometricObject(m_point2Id); line = QLineF(static_cast(*first), static_cast(*second)); } - DrawLine(this, line, Color(VColor::MainColor), LineStyle()); + DrawLine(this, line, LineStyle()); } //--------------------------------------------------------------------------------------------------------------------- @@ -71,12 +70,11 @@ void VisToolLine::VisualMode(quint32 id) } //--------------------------------------------------------------------------------------------------------------------- -void VisToolLine::DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style) +void VisToolLine::DrawLine(VScaledLine *lineItem, const QLineF &line, Qt::PenStyle style) { - SCASSERT (lineItem != nullptr) + SCASSERT(lineItem != nullptr) QPen visPen = lineItem->pen(); - visPen.setColor(color); visPen.setStyle(style); lineItem->setPen(visPen); diff --git a/src/libs/vtools/visualization/line/vistoolline.h b/src/libs/vtools/visualization/line/vistoolline.h index 28857390b..2346c9cc1 100644 --- a/src/libs/vtools/visualization/line/vistoolline.h +++ b/src/libs/vtools/visualization/line/vistoolline.h @@ -29,14 +29,12 @@ #ifndef VGRAPHICSLINEITEM_H #define VGRAPHICSLINEITEM_H - #include #include #include #include #include #include -#include #include #include "../vmisc/def.h" @@ -45,6 +43,7 @@ class VisToolLine : public VisLine { Q_OBJECT // NOLINT + public: explicit VisToolLine(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisToolLine() override = default; @@ -55,11 +54,15 @@ public: void SetPoint1Id(quint32 value); void SetPoint2Id(quint32 value); - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ToolLine)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ToolLine) + }; + protected: - void DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, - Qt::PenStyle style = Qt::SolidLine) override; + void DrawLine(VScaledLine *lineItem, const QLineF &line, Qt::PenStyle style = Qt::SolidLine) override; + private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(VisToolLine) // NOLINT diff --git a/src/libs/vtools/visualization/line/vistoollineintersect.cpp b/src/libs/vtools/visualization/line/vistoollineintersect.cpp index fca638b2f..3f14e90d9 100644 --- a/src/libs/vtools/visualization/line/vistoollineintersect.cpp +++ b/src/libs/vtools/visualization/line/vistoollineintersect.cpp @@ -36,23 +36,25 @@ #include #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/compatibility.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolLineIntersect::VisToolLineIntersect(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - m_line1P1 = InitPoint(Color(VColor::SupportColor), this); - m_line1P2 = InitPoint(Color(VColor::SupportColor), this); - m_line1 = InitItem(Color(VColor::SupportColor), this); + SetColorRole(VColorRole::VisSupportColor); - m_line2P1 = InitPoint(Color(VColor::SupportColor), this); - m_line2P2 = InitPoint(Color(VColor::SupportColor), this); + m_line1P1 = InitPoint(VColorRole::VisSupportColor, this); + m_line1P2 = InitPoint(VColorRole::VisSupportColor, this); + m_line1 = InitItem(VColorRole::VisSupportColor, this); - m_point = InitPoint(Color(VColor::MainColor), this); + m_line2P1 = InitPoint(VColorRole::VisSupportColor, this); + m_line2P2 = InitPoint(VColorRole::VisSupportColor, this); + + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -61,29 +63,27 @@ void VisToolLineIntersect::RefreshGeometry() if (m_line1P1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_line1P1Id); - DrawPoint(m_line1P1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_line1P1, static_cast(*first)); if (m_line1P2Id <= NULL_ID) { - DrawLine(m_line1, QLineF(static_cast(*first), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_line1, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_line1P2Id); - DrawPoint(m_line1P2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_line1P2, static_cast(*second)); - DrawLine(m_line1, QLineF(static_cast(*first), static_cast(*second)), - Color(VColor::SupportColor)); + DrawLine(m_line1, QLineF(static_cast(*first), static_cast(*second))); if (m_line2P1Id > NULL_ID) { const QSharedPointer third = GetData()->GeometricObject(m_line2P1Id); - DrawPoint(m_line2P1, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_line2P1, static_cast(*third)); if (m_line2P2Id <= NULL_ID) { - DrawLine(this, QLineF(static_cast(*third), ScenePos()), - Color(VColor::SupportColor)); + DrawLine(this, QLineF(static_cast(*third), ScenePos())); QLineF l1(static_cast(*first), static_cast(*second)); QLineF l2(static_cast(*third), ScenePos()); @@ -92,16 +92,15 @@ void VisToolLineIntersect::RefreshGeometry() if (intersect == QLineF::UnboundedIntersection || intersect == QLineF::BoundedIntersection) { - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); } } else { const QSharedPointer forth = GetData()->GeometricObject(m_line2P2Id); - DrawPoint(m_line2P2, static_cast(*forth), Color(VColor::SupportColor)); + DrawPoint(m_line2P2, static_cast(*forth)); - DrawLine(this, QLineF(static_cast(*third), static_cast(*forth)), - Color(VColor::SupportColor)); + DrawLine(this, QLineF(static_cast(*third), static_cast(*forth))); QLineF l1(static_cast(*first), static_cast(*second)); QLineF l2(static_cast(*third), static_cast(*forth)); @@ -110,7 +109,7 @@ void VisToolLineIntersect::RefreshGeometry() if (intersect == QLineF::UnboundedIntersection || intersect == QLineF::BoundedIntersection) { - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); } } } diff --git a/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp b/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp index b0d1d96c8..620d3171a 100644 --- a/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp +++ b/src/libs/vtools/visualization/line/vistoollineintersectaxis.cpp @@ -33,30 +33,27 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" -#include "../vmisc/vmodifierkey.h" #include "../vmisc/compatibility.h" +#include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolLineIntersectAxis::VisToolLineIntersectAxis(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); - - m_lineP1 = InitPoint(Color(VColor::SupportColor), this); - m_lineP2 = InitPoint(Color(VColor::SupportColor), this); - m_basePoint = InitPoint(Color(VColor::SupportColor), this); - m_baseLine = InitItem(Color(VColor::SupportColor), this); - m_axisLine = InitItem(Color(VColor::SupportColor), this); - m_lineIntersection = InitItem(Color(VColor::SupportColor), this); - m_point = InitPoint(Color(VColor::MainColor), this); + m_lineP1 = InitPoint(VColorRole::VisSupportColor, this); + m_lineP2 = InitPoint(VColorRole::VisSupportColor, this); + m_basePoint = InitPoint(VColorRole::VisSupportColor, this); + m_baseLine = InitItem(VColorRole::VisSupportColor, this); + m_axisLine = InitItem(VColorRole::VisSupportColor, this); + m_lineIntersection = InitItem(VColorRole::VisSupportColor, this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -65,25 +62,25 @@ void VisToolLineIntersectAxis::RefreshGeometry() if (m_point1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_point1Id); - DrawPoint(m_lineP1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_lineP1, static_cast(*first)); if (m_point2Id <= NULL_ID) { - DrawLine(m_baseLine, QLineF(static_cast(*first), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_baseLine, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_point2Id); - DrawPoint(m_lineP2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_lineP2, static_cast(*second)); const QLineF base_line(static_cast(*first), static_cast(*second)); - DrawLine(m_baseLine, base_line, Color(VColor::SupportColor)); + DrawLine(m_baseLine, base_line); if (m_axisPointId > NULL_ID) { QLineF axis; const QSharedPointer third = GetData()->GeometricObject(m_axisPointId); - DrawPoint(m_basePoint, static_cast(*third), Color(VColor::MainColor)); + DrawPoint(m_basePoint, static_cast(*third)); if (VFuzzyComparePossibleNulls(m_angle, -1)) { @@ -98,25 +95,25 @@ void VisToolLineIntersectAxis::RefreshGeometry() axis = Axis(static_cast(*third), m_angle); } - DrawLine(m_axisLine, axis, Color(VColor::SupportColor), Qt::DashLine); + DrawLine(m_axisLine, axis, Qt::DashLine); QPointF p; VToolLineIntersectAxis::FindPoint(axis, base_line, &p); QLineF axis_line(static_cast(*third), p); if (not axis_line.isNull()) { - DrawLine(this, axis_line, Color(VColor::MainColor), LineStyle()); + DrawLine(this, axis_line, LineStyle()); } - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); ShowIntersection(axis_line, base_line); if (GetMode() == Mode::Creation) { - SetToolTip(tr("Intersection line and axis: angle = %1°; %2 - " - "sticking angle, %3 - finish creation") - .arg(AngleToUser(this->line().angle()), VModifierKey::Shift(), - VModifierKey::EnterKey())); + SetToolTip( + tr("Intersection line and axis: angle = %1°; %2 - " + "sticking angle, %3 - finish creation") + .arg(AngleToUser(this->line().angle()), VModifierKey::Shift(), VModifierKey::EnterKey())); } } } @@ -151,7 +148,7 @@ void VisToolLineIntersectAxis::ShowIntersection(const QLineF &axis_line, const Q if (intersect == QLineF::UnboundedIntersection) { m_lineIntersection->setVisible(true); - DrawLine(m_lineIntersection, QLineF(base_line.p1(), axis_line.p2()), Color(VColor::SupportColor), Qt::DashLine); + DrawLine(m_lineIntersection, QLineF(base_line.p1(), axis_line.p2()), Qt::DashLine); } else if (intersect == QLineF::BoundedIntersection || intersect == QLineF::NoIntersection) { diff --git a/src/libs/vtools/visualization/line/vistoolnormal.cpp b/src/libs/vtools/visualization/line/vistoolnormal.cpp index e53a93ef9..b85b96b86 100644 --- a/src/libs/vtools/visualization/line/vistoolnormal.cpp +++ b/src/libs/vtools/visualization/line/vistoolnormal.cpp @@ -33,27 +33,24 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolNormal::VisToolNormal(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); + m_lineP1 = InitPoint(VColorRole::VisSupportColor, this); + m_lineP2 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_line = InitItem(VColorRole::VisSupportColor, this); - m_lineP1 = InitPoint(Color(VColor::SupportColor), this); - m_lineP2 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_line = InitItem(Color(VColor::SupportColor), this); - - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -62,37 +59,37 @@ void VisToolNormal::RefreshGeometry() if (m_object1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_object1Id); - DrawPoint(m_lineP1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_lineP1, static_cast(*first)); if (m_object2Id <= NULL_ID) { QLineF line_mouse(static_cast(*first), ScenePos()); - DrawLine(m_line, line_mouse, Color(VColor::SupportColor)); + DrawLine(m_line, line_mouse); QLineF normal = line_mouse.normalVector(); QPointF endRay = Ray(normal.p1(), normal.angle()); - DrawLine(this, QLineF(normal.p1(), endRay), Color(VColor::MainColor)); + DrawLine(this, QLineF(normal.p1(), endRay)); } else { const QSharedPointer second = GetData()->GeometricObject(m_object2Id); - DrawPoint(m_lineP2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_lineP2, static_cast(*second)); QLineF line_mouse(static_cast(*first), static_cast(*second)); - DrawLine(m_line, line_mouse, Color(VColor::SupportColor)); + DrawLine(m_line, line_mouse); if (not qFuzzyIsNull(m_length)) { QPointF fPoint = VToolNormal::FindPoint(static_cast(*first), static_cast(*second), m_length, m_angle); QLineF mainLine = QLineF(static_cast(*first), fPoint); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, mainLine.p2()); } else if (GetMode() == Mode::Creation) { - QLineF cursorLine (static_cast(*first), ScenePos()); + QLineF cursorLine(static_cast(*first), ScenePos()); QLineF normal = line_mouse.normalVector(); qreal len = cursorLine.length(); @@ -102,12 +99,12 @@ void VisToolNormal::RefreshGeometry() len *= -1; } - QPointF fPoint = VToolNormal::FindPoint(static_cast(*first), static_cast(*second), - len, m_angle); + QPointF fPoint = + VToolNormal::FindPoint(static_cast(*first), static_cast(*second), len, m_angle); QLineF mainLine = QLineF(static_cast(*first), fPoint); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); + DrawPoint(m_point, mainLine.p2()); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " @@ -119,7 +116,7 @@ void VisToolNormal::RefreshGeometry() { QLineF normal = line_mouse.normalVector(); QPointF endRay = Ray(normal.p1(), normal.angle()); - DrawLine(this, QLineF(normal.p1(), endRay), Color(VColor::MainColor)); + DrawLine(this, QLineF(normal.p1(), endRay)); } } } diff --git a/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp b/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp index 8d3a1d32f..c101a57be 100644 --- a/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp +++ b/src/libs/vtools/visualization/line/vistoolpointfromarcandtangent.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h" @@ -41,37 +40,39 @@ #include "../vgeometry/varc.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vpatterndb/vcontainer.h" #include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointFromArcAndTangent::VisToolPointFromArcAndTangent(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - m_arcPath = InitItem(Qt::darkGreen, this); - m_point = InitPoint(Color(VColor::MainColor), this); - m_tangent = InitPoint(Color(VColor::SupportColor), this); + SetColorRole(VColorRole::VisSupportColor); + + m_arcPath = InitItem(VColorRole::VisSupportColor2, this); + m_point = InitPoint(VColorRole::VisMainColor, this); + m_tangent = InitPoint(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- void VisToolPointFromArcAndTangent::RefreshGeometry() { - if (m_pointId > NULL_ID)// tangent point + if (m_pointId > NULL_ID) // tangent point { const QSharedPointer tan = GetData()->GeometricObject(m_pointId); - DrawPoint(m_tangent, static_cast(*tan), Color(VColor::SupportColor)); + DrawPoint(m_tangent, static_cast(*tan)); - if (m_arcId > NULL_ID)// circle center + if (m_arcId > NULL_ID) // circle center { const QSharedPointer arc = GetData()->GeometricObject(m_arcId); - DrawPath(m_arcPath, arc->GetPath(), arc->DirectionArrows(), Qt::darkGreen, Qt::SolidLine, Qt::RoundCap); + DrawPath(m_arcPath, arc->GetPath(), arc->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); FindRays(static_cast(*tan), arc.data()); QPointF fPoint; VToolPointFromArcAndTangent::FindPoint(static_cast(*tan), arc.data(), m_crossPoint, &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); } } } @@ -89,17 +90,17 @@ void VisToolPointFromArcAndTangent::FindRays(const QPointF &p, const VArc *arc) QPointF p1, p2; const QPointF center = static_cast(arc->GetCenter()); const qreal radius = arc->GetRadius(); - const int res = VGObject::ContactPoints (p, center, radius, p1, p2); + const int res = VGObject::ContactPoints(p, center, radius, p1, p2); - switch(res) + switch (res) { case 2: { QLineF r1Arc(center, p1); - r1Arc.setLength(radius+10); + r1Arc.setLength(radius + 10); QLineF r2Arc(center, p2); - r2Arc.setLength(radius+10); + r2Arc.setLength(radius + 10); int localRes = 0; bool flagP1 = false; @@ -115,14 +116,13 @@ void VisToolPointFromArcAndTangent::FindRays(const QPointF &p, const VArc *arc) ++localRes; } - switch(localRes) + switch (localRes) { case 2: - DrawRay(this, p, m_crossPoint == CrossCirclesPoint::FirstPoint ? p1 : p2, - Color(VColor::SupportColor), Qt::DashLine); + DrawRay(this, p, m_crossPoint == CrossCirclesPoint::FirstPoint ? p1 : p2, Qt::DashLine); break; case 1: - DrawRay(this, p, flagP1 ? p1 : p2, Color(VColor::SupportColor), Qt::DashLine); + DrawRay(this, p, flagP1 ? p1 : p2, Qt::DashLine); break; case 0: default: @@ -133,7 +133,7 @@ void VisToolPointFromArcAndTangent::FindRays(const QPointF &p, const VArc *arc) break; } case 1: - DrawRay(this, p, p1, Color(VColor::SupportColor), Qt::DashLine); + DrawRay(this, p, p1, Qt::DashLine); break; case 3: case 0: diff --git a/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp b/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp index 822bd9422..19cf8a2a0 100644 --- a/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp +++ b/src/libs/vtools/visualization/line/vistoolpointfromcircleandtangent.cpp @@ -31,69 +31,70 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" -#include "../vwidgets/global.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/global.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointFromCircleAndTangent::VisToolPointFromCircleAndTangent(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - m_cPath = InitItem(Qt::darkGreen, this); + SetColorRole(VColorRole::VisSupportColor); + + m_cPath = InitItem(VColorRole::VisSupportColor2, this); m_cPath->SetPointMode(false); - m_point = InitPoint(Color(VColor::MainColor), this); - m_tangent = InitPoint(Color(VColor::SupportColor), this); - m_cCenter = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_tangent2 = InitItem(Color(VColor::SupportColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); + m_tangent = InitPoint(VColorRole::VisSupportColor, this); + m_cCenter = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_tangent2 = InitItem(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- void VisToolPointFromCircleAndTangent::RefreshGeometry() { - if (m_pointId > NULL_ID)// tangent point + if (m_pointId > NULL_ID) // tangent point { const QSharedPointer tan = GetData()->GeometricObject(m_pointId); - DrawPoint(m_tangent, static_cast(*tan), Color(VColor::SupportColor)); + DrawPoint(m_tangent, static_cast(*tan)); - if (m_centerId > NULL_ID)// circle center + if (m_centerId > NULL_ID) // circle center { const QSharedPointer center = GetData()->GeometricObject(m_centerId); - DrawPoint(m_cCenter, static_cast(*center), Color(VColor::SupportColor)); + DrawPoint(m_cCenter, static_cast(*center)); if (m_cRadius > 0) { m_cPath->setRect(PointRect(m_cRadius)); - DrawPoint(m_cPath, static_cast(*center), Qt::darkGreen, Qt::DashLine); + DrawPoint(m_cPath, static_cast(*center), Qt::DashLine); FindRays(static_cast(*tan), static_cast(*center), m_cRadius); QPointF fPoint; VToolPointFromCircleAndTangent::FindPoint(static_cast(*tan), static_cast(*center), m_cRadius, m_crossPoint, &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); } else if (GetMode() == Mode::Creation) { - QLineF cursorLine (static_cast(*center), ScenePos()); + QLineF cursorLine(static_cast(*center), ScenePos()); qreal len = cursorLine.length(); m_cPath->setRect(PointRect(len)); - DrawPoint(m_cPath, static_cast(*center), Qt::darkGreen, Qt::DashLine); + DrawPoint(m_cPath, static_cast(*center), Qt::DashLine); FindRays(static_cast(*tan), static_cast(*center), len); QPointF fPoint; VToolPointFromCircleAndTangent::FindPoint(static_cast(*tan), static_cast(*center), len, m_crossPoint, &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Radius = %1%2; " @@ -122,16 +123,16 @@ void VisToolPointFromCircleAndTangent::SetCRadius(const QString &value) void VisToolPointFromCircleAndTangent::FindRays(const QPointF &p, const QPointF ¢er, qreal radius) { QPointF p1, p2; - const int res = VGObject::ContactPoints (p, center, radius, p1, p2); + const int res = VGObject::ContactPoints(p, center, radius, p1, p2); - switch(res) + switch (res) { case 2: - DrawRay(this, p, p1, Color(VColor::SupportColor), Qt::DashLine); - DrawRay(m_tangent2, p, p2, Color(VColor::SupportColor), Qt::DashLine); + DrawRay(this, p, p1, Qt::DashLine); + DrawRay(m_tangent2, p, p2, Qt::DashLine); break; case 1: - DrawRay(this, p, p1, Color(VColor::SupportColor), Qt::DashLine); + DrawRay(this, p, p1, Qt::DashLine); m_tangent2->setVisible(false); break; default: diff --git a/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp b/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp index b4fc89ab9..aca05e87c 100644 --- a/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp +++ b/src/libs/vtools/visualization/line/vistoolpointofcontact.cpp @@ -32,28 +32,29 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" -#include "../vwidgets/global.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/global.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointOfContact::VisToolPointOfContact(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - m_arcPoint = InitPoint(Color(VColor::SupportColor), this); - m_lineP1 = InitPoint(Color(VColor::SupportColor), this); - m_lineP2 = InitPoint(Color(VColor::SupportColor), this); - m_circle = InitItem(Color(VColor::SupportColor), this); + SetColorRole(VColorRole::VisSupportColor); + + m_arcPoint = InitPoint(VColorRole::VisSupportColor, this); + m_lineP1 = InitPoint(VColorRole::VisSupportColor, this); + m_lineP2 = InitPoint(VColorRole::VisSupportColor, this); + m_circle = InitItem(VColorRole::VisSupportColor, this); m_circle->SetPointMode(false); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -62,46 +63,45 @@ void VisToolPointOfContact::RefreshGeometry() if (m_lineP1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_lineP1Id); - DrawPoint(m_lineP1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_lineP1, static_cast(*first)); if (m_lineP2Id <= NULL_ID) { - DrawLine(this, QLineF(static_cast(*first), ScenePos()), Color(VColor::SupportColor)); + DrawLine(this, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_lineP2Id); - DrawPoint(m_lineP2, static_cast(*second), Color(VColor::SupportColor)); - DrawLine(this, QLineF(static_cast(*first), static_cast(*second)), - Color(VColor::SupportColor)); + DrawPoint(m_lineP2, static_cast(*second)); + DrawLine(this, QLineF(static_cast(*first), static_cast(*second))); if (m_radiusId > NULL_ID) { const QSharedPointer third = GetData()->GeometricObject(m_radiusId); - DrawPoint(m_arcPoint, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_arcPoint, static_cast(*third)); if (not qFuzzyIsNull(m_radius)) { QPointF fPoint; VToolPointOfContact::FindPoint(m_radius, static_cast(*third), static_cast(*first), static_cast(*second), &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); m_circle->setRect(PointRect(m_radius)); - DrawPoint(m_circle, static_cast(*third), Color(VColor::SupportColor), Qt::DashLine); + DrawPoint(m_circle, static_cast(*third), Qt::DashLine); } else if (GetMode() == Mode::Creation) { - QLineF cursorLine (static_cast(*third), ScenePos()); + QLineF cursorLine(static_cast(*third), ScenePos()); qreal radius = cursorLine.length(); QPointF fPoint; VToolPointOfContact::FindPoint(radius, static_cast(*third), static_cast(*first), static_cast(*second), &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); m_circle->setRect(PointRect(radius)); - DrawPoint(m_circle, static_cast(*third), Color(VColor::SupportColor), Qt::DashLine); + DrawPoint(m_circle, static_cast(*third), Qt::DashLine); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Radius = %1%2; " diff --git a/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp b/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp index ab0194e05..92cc1550f 100644 --- a/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp +++ b/src/libs/vtools/visualization/line/vistoolpointofintersection.cpp @@ -33,24 +33,25 @@ #include #include #include -#include #include #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/compatibility.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointOfIntersection::VisToolPointOfIntersection(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - m_axisP1 = InitPoint(Color(VColor::SupportColor), this); - m_axisP2 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_axis2 = InitItem(Color(VColor::SupportColor), this); + SetColorRole(VColorRole::VisSupportColor); - m_point = InitPoint(Color(VColor::MainColor), this); + m_axisP1 = InitPoint(VColorRole::VisSupportColor, this); + m_axisP2 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_axis2 = InitItem(VColorRole::VisSupportColor, this); + + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -60,30 +61,30 @@ void VisToolPointOfIntersection::RefreshGeometry() if (m_point1Id <= NULL_ID) { axisL1 = Axis(ScenePos(), 90); - DrawLine(this, axisL1, Color(VColor::SupportColor), Qt::DashLine); + DrawLine(this, axisL1, Qt::DashLine); } else { const QSharedPointer first = GetData()->GeometricObject(m_point1Id); - DrawPoint(m_axisP1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_axisP1, static_cast(*first)); axisL1 = Axis(static_cast(*first), 90); - DrawLine(this, axisL1, Color(VColor::SupportColor), Qt::DashLine); + DrawLine(this, axisL1, Qt::DashLine); QLineF axisL2; if (m_point2Id <= NULL_ID) { axisL2 = Axis(ScenePos(), 180); - ShowIntersection(axisL1, axisL2, Color(VColor::SupportColor)); + ShowIntersection(axisL1, axisL2); } else { const QSharedPointer second = GetData()->GeometricObject(m_point2Id); - DrawPoint(m_axisP2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_axisP2, static_cast(*second)); axisL2 = Axis(static_cast(*second), 180); - ShowIntersection(axisL1, axisL2, Color(VColor::MainColor)); + ShowIntersection(axisL1, axisL2); } - DrawLine(m_axis2, axisL2, Color(VColor::SupportColor), Qt::DashLine); + DrawLine(m_axis2, axisL2, Qt::DashLine); } } @@ -95,7 +96,7 @@ void VisToolPointOfIntersection::VisualMode(quint32 id) } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfIntersection::ShowIntersection(const QLineF &axis1, const QLineF &axis2, const QColor &color) +void VisToolPointOfIntersection::ShowIntersection(const QLineF &axis1, const QLineF &axis2) { QPointF p; QLineF::IntersectType intersect = Intersects(axis1, axis2, &p); @@ -103,7 +104,7 @@ void VisToolPointOfIntersection::ShowIntersection(const QLineF &axis1, const QLi if (intersect == QLineF::UnboundedIntersection || intersect == QLineF::BoundedIntersection) { m_point->setVisible(true); - DrawPoint(m_point, p, color); + DrawPoint(m_point, p); } else { diff --git a/src/libs/vtools/visualization/line/vistoolpointofintersection.h b/src/libs/vtools/visualization/line/vistoolpointofintersection.h index f567141a4..743933d37 100644 --- a/src/libs/vtools/visualization/line/vistoolpointofintersection.h +++ b/src/libs/vtools/visualization/line/vistoolpointofintersection.h @@ -66,7 +66,7 @@ private: VScaledEllipse *m_axisP2{nullptr}; VScaledLine *m_axis2{nullptr};//axis1 is class themself - void ShowIntersection(const QLineF &axis1, const QLineF &axis2, const QColor &color); + void ShowIntersection(const QLineF &axis1, const QLineF &axis2); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp b/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp index d6e75970d..4fcf631f3 100644 --- a/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp +++ b/src/libs/vtools/visualization/line/vistoolpointofintersectionarcs.cpp @@ -34,28 +34,27 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.h" +#include "../line/visline.h" #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "../line/visline.h" +#include "../vpatterndb/vcontainer.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointOfIntersectionArcs::VisToolPointOfIntersectionArcs(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { this->setPen(QPen(Qt::NoPen)); // don't use parent this time - m_arc1Path = InitItem(Qt::darkGreen, this); + m_arc1Path = InitItem(VColorRole::VisSupportColor2, this); m_arc1Path->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_arc2Path = InitItem(Qt::darkRed, this); + m_arc2Path = InitItem(VColorRole::VisSupportColor4, this); m_arc2Path->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); m_point->setZValue(2); m_point->setFlag(QGraphicsItem::ItemStacksBehindParent, false); } @@ -66,16 +65,16 @@ void VisToolPointOfIntersectionArcs::RefreshGeometry() if (m_arc1Id > NULL_ID) { const QSharedPointer arc1 = GetData()->GeometricObject(m_arc1Id); - DrawPath(m_arc1Path, arc1->GetPath(), arc1->DirectionArrows(), Qt::darkGreen, Qt::SolidLine, Qt::RoundCap); + DrawPath(m_arc1Path, arc1->GetPath(), arc1->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); if (m_arc2Id > NULL_ID) { const QSharedPointer arc2 = GetData()->GeometricObject(m_arc2Id); - DrawPath(m_arc2Path, arc2->GetPath(), arc2->DirectionArrows(), Qt::darkRed, Qt::SolidLine, Qt::RoundCap); + DrawPath(m_arc2Path, arc2->GetPath(), arc2->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); QPointF fPoint; VToolPointOfIntersectionArcs::FindPoint(arc1.data(), arc2.data(), m_crossPoint, &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + DrawPoint(m_point, fPoint); } } } diff --git a/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp b/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp index 842183756..d76beee68 100644 --- a/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp +++ b/src/libs/vtools/visualization/line/vistoolpointofintersectioncircles.cpp @@ -32,34 +32,33 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.h" #include "../vgeometry/vpointf.h" +#include "../visualization.h" +#include "../vmisc/vmodifierkey.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/global.h" -#include "../visualization.h" #include "visline.h" -#include "../vmisc/vmodifierkey.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointOfIntersectionCircles::VisToolPointOfIntersectionCircles(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { this->setPen(QPen(Qt::NoPen)); // don't use parent this time - m_c1Path = InitItem(Qt::darkGreen, this); + m_c1Path = InitItem(VColorRole::VisSupportColor2, this); m_c1Path->SetPointMode(false); - m_c2Path = InitItem(Qt::darkRed, this); + m_c2Path = InitItem(VColorRole::VisSupportColor4, this); m_c2Path->SetPointMode(false); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); m_point->setZValue(1); - m_c1Center = InitPoint(Color(VColor::SupportColor), this); - m_c2Center = InitPoint(Color(VColor::SupportColor), this); //-V656 + m_c1Center = InitPoint(VColorRole::VisSupportColor, this); + m_c2Center = InitPoint(VColorRole::VisSupportColor, this); //-V656 } //--------------------------------------------------------------------------------------------------------------------- @@ -68,42 +67,42 @@ void VisToolPointOfIntersectionCircles::RefreshGeometry() if (m_circle1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_circle1Id); - DrawPoint(m_c1Center, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_c1Center, static_cast(*first)); if (m_c1Radius > 0) { m_c1Path->setRect(PointRect(m_c1Radius)); - DrawPoint(m_c1Path, static_cast(*first), Qt::darkGreen, Qt::DashLine); + DrawPoint(m_c1Path, static_cast(*first), Qt::DashLine); if (m_circle2Id > NULL_ID) { const QSharedPointer second = GetData()->GeometricObject(m_circle2Id); - DrawPoint(m_c2Center, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_c2Center, static_cast(*second)); if (m_c2Radius > 0) { m_c2Path->setRect(PointRect(m_c2Radius)); - DrawPoint(m_c2Path, static_cast(*second), Qt::darkRed, Qt::DashLine); + DrawPoint(m_c2Path, static_cast(*second), Qt::DashLine); QPointF fPoint; VToolPointOfIntersectionCircles::FindPoint(static_cast(*first), - static_cast(*second), - m_c1Radius, m_c2Radius, m_crossPoint, &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + static_cast(*second), m_c1Radius, m_c2Radius, + m_crossPoint, &fPoint); + DrawPoint(m_point, fPoint); } else if (GetMode() == Mode::Creation) { - QLineF radiusLine (static_cast(*second), ScenePos()); + QLineF radiusLine(static_cast(*second), ScenePos()); const qreal length = radiusLine.length(); m_c2Path->setRect(PointRect(length)); - DrawPoint(m_c2Path, static_cast(*second), Qt::darkRed, Qt::DashLine); + DrawPoint(m_c2Path, static_cast(*second), Qt::DashLine); QPointF fPoint; VToolPointOfIntersectionCircles::FindPoint(static_cast(*first), - static_cast(*second), - m_c1Radius, length, m_crossPoint, &fPoint); - DrawPoint(m_point, fPoint, Color(VColor::MainColor)); + static_cast(*second), m_c1Radius, length, + m_crossPoint, &fPoint); + DrawPoint(m_point, fPoint); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Radius = %1%2; " @@ -115,11 +114,11 @@ void VisToolPointOfIntersectionCircles::RefreshGeometry() } else if (GetMode() == Mode::Creation && VAbstractValApplication::VApp()->Settings()->IsInteractiveTools()) { - QLineF radiusLine (static_cast(*first), ScenePos()); + QLineF radiusLine(static_cast(*first), ScenePos()); const qreal length = radiusLine.length(); m_c1Path->setRect(PointRect(length)); - DrawPoint(m_c1Path, static_cast(*first), Qt::darkGreen, Qt::DashLine); + DrawPoint(m_c1Path, static_cast(*first), Qt::DashLine); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Radius = %1%2; " diff --git a/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp b/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp index e5c505f4a..682be1c37 100644 --- a/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp +++ b/src/libs/vtools/visualization/line/vistoolshoulderpoint.cpp @@ -32,30 +32,29 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.h" #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "visline.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolShoulderPoint::VisToolShoulderPoint(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - m_line1P1 = InitPoint(Color(VColor::SupportColor), this); - m_line1P2 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_line1 = InitItem(Color(VColor::SupportColor), this); + m_line1P1 = InitPoint(VColorRole::VisSupportColor, this); + m_line1P2 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_line1 = InitItem(VColorRole::VisSupportColor, this); - m_line2P2 = InitPoint(Color(VColor::SupportColor), this); - m_line2 = InitItem(Color(VColor::SupportColor), this); - m_line3 = InitItem(Color(VColor::SupportColor), this); //-V656 + m_line2P2 = InitPoint(VColorRole::VisSupportColor, this); + m_line2 = InitItem(VColorRole::VisSupportColor, this); + m_line3 = InitItem(VColorRole::VisSupportColor, this); //-V656 - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -64,58 +63,53 @@ void VisToolShoulderPoint::RefreshGeometry() if (m_point3Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_point3Id); - DrawPoint(m_line1P1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_line1P1, static_cast(*first)); if (m_lineP1Id <= NULL_ID) { - DrawLine(m_line1, QLineF(static_cast(*first), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_line1, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_lineP1Id); - DrawPoint(m_line1P2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_line1P2, static_cast(*second)); - DrawLine(m_line1, QLineF(static_cast(*first), static_cast(*second)), - Color(VColor::SupportColor)); + DrawLine(m_line1, QLineF(static_cast(*first), static_cast(*second))); if (m_lineP2Id <= NULL_ID) { - DrawLine(m_line2, QLineF(static_cast(*second), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_line2, QLineF(static_cast(*second), ScenePos())); } else { const QSharedPointer third = GetData()->GeometricObject(m_lineP2Id); - DrawPoint(m_line2P2, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_line2P2, static_cast(*third)); - DrawLine(m_line2, QLineF(static_cast(*second), static_cast(*third)), - Color(VColor::SupportColor)); + DrawLine(m_line2, QLineF(static_cast(*second), static_cast(*third))); if (not qFuzzyIsNull(m_length)) { - QPointF fPoint = VToolShoulderPoint::FindPoint(static_cast(*second), - static_cast(*third), - static_cast(*first), m_length); + QPointF fPoint = + VToolShoulderPoint::FindPoint(static_cast(*second), static_cast(*third), + static_cast(*first), m_length); QLineF mainLine = QLineF(static_cast(*second), fPoint); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); - DrawLine(m_line3, QLineF(static_cast(*first), mainLine.p2()), Color(VColor::SupportColor), - Qt::DashLine); + DrawPoint(m_point, mainLine.p2()); + DrawLine(m_line3, QLineF(static_cast(*first), mainLine.p2()), Qt::DashLine); } else if (GetMode() == Mode::Creation) { - QLineF cursorLine (static_cast(*first), ScenePos()); + QLineF cursorLine(static_cast(*first), ScenePos()); qreal len = cursorLine.length(); - QPointF fPoint = VToolShoulderPoint::FindPoint(static_cast(*second), - static_cast(*third), - static_cast(*first), len); + QPointF fPoint = VToolShoulderPoint::FindPoint( + static_cast(*second), static_cast(*third), static_cast(*first), len); QLineF mainLine = QLineF(static_cast(*second), fPoint); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + DrawLine(this, mainLine, LineStyle()); - DrawPoint(m_point, mainLine.p2(), Color(VColor::MainColor)); - DrawLine(m_line3, QLineF(static_cast(*first), mainLine.p2()), Color(VColor::SupportColor), - Qt::DashLine); + DrawPoint(m_point, mainLine.p2()); + DrawLine(m_line3, QLineF(static_cast(*first), mainLine.p2()), Qt::DashLine); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " @@ -127,10 +121,9 @@ void VisToolShoulderPoint::RefreshGeometry() { qreal angle = QLineF(static_cast(*second), static_cast(*third)).angle(); QPointF endRay = Ray(static_cast(*second), angle); - QLineF mainLine = VGObject::BuildLine(static_cast(*second), - QLineF(static_cast(*second), endRay).length(), - angle); - DrawLine(this, mainLine, Color(VColor::MainColor), LineStyle()); + QLineF mainLine = VGObject::BuildLine( + static_cast(*second), QLineF(static_cast(*second), endRay).length(), angle); + DrawLine(this, mainLine, LineStyle()); } } } diff --git a/src/libs/vtools/visualization/line/vistoolspecialpoint.cpp b/src/libs/vtools/visualization/line/vistoolspecialpoint.cpp index 4e964bf01..19e30e1ef 100644 --- a/src/libs/vtools/visualization/line/vistoolspecialpoint.cpp +++ b/src/libs/vtools/visualization/line/vistoolspecialpoint.cpp @@ -27,19 +27,18 @@ *************************************************************************/ #include "vistoolspecialpoint.h" -#include "../vwidgets/vsimplepoint.h" #include "../vgeometry/vpointf.h" #include "../vpatterndb/vcontainer.h" +#include "../vwidgets/vsimplepoint.h" //--------------------------------------------------------------------------------------------------------------------- VisToolSpecialPoint::VisToolSpecialPoint(const VContainer *data, QGraphicsItem *parent) - : VisLine(data, parent) + : VisLine(data, parent) { - SetMainColor(Qt::red); - this->setZValue(2);// Show on top real tool - this->setPen(QPen(Qt::NoPen)); + setZValue(2); // Show on top real tool + setPen(QPen(Qt::NoPen)); - m_point = new VSimplePoint(NULL_ID, Color(VColor::MainColor)); + m_point = new VSimplePoint(NULL_ID, VColorRole::VisMainColor); m_point->SetPointHighlight(true); m_point->setParentItem(this); m_point->SetVisualizationMode(true); @@ -70,4 +69,3 @@ void VisToolSpecialPoint::VisualMode(quint32 id) m_pointId = id; StartVisualMode(); } - diff --git a/src/libs/vtools/visualization/line/vistooltriangle.cpp b/src/libs/vtools/visualization/line/vistooltriangle.cpp index 7f538efbf..1f86ecfc3 100644 --- a/src/libs/vtools/visualization/line/vistooltriangle.cpp +++ b/src/libs/vtools/visualization/line/vistooltriangle.cpp @@ -34,28 +34,30 @@ #include #include #include -#include #include +#include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vpatterndb/vcontainer.h" #include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolTriangle::VisToolTriangle(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - m_axisP1 = InitPoint(Color(VColor::SupportColor), this); - m_axisP2 = InitPoint(Color(VColor::SupportColor), this); - m_axis = InitItem(Color(VColor::SupportColor), this); - m_hypotenuseP1 = InitPoint(Color(VColor::SupportColor), this); - m_hypotenuseP2 = InitPoint(Color(VColor::SupportColor), this); - m_foot1 = InitItem(Color(VColor::SupportColor), this); - m_foot2 = InitItem(Color(VColor::SupportColor), this); //-V656 + SetColorRole(VColorRole::VisSupportColor); - m_point = InitPoint(Color(VColor::MainColor), this); + m_axisP1 = InitPoint(VColorRole::VisSupportColor, this); + m_axisP2 = InitPoint(VColorRole::VisSupportColor, this); + m_axis = InitItem(VColorRole::VisSupportColor, this); + m_hypotenuseP1 = InitPoint(VColorRole::VisSupportColor, this); + m_hypotenuseP2 = InitPoint(VColorRole::VisSupportColor, this); + m_foot1 = InitItem(VColorRole::VisSupportColor, this); + m_foot2 = InitItem(VColorRole::VisSupportColor, this); //-V656 + + m_point = InitPoint(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -64,56 +66,50 @@ void VisToolTriangle::RefreshGeometry() if (m_object1Id > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_object1Id); - DrawPoint(m_axisP1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_axisP1, static_cast(*first)); if (m_object2Id <= NULL_ID) { - DrawAimedAxis(m_axis, QLineF(static_cast(*first), ScenePos()), Color(VColor::SupportColor)); + DrawAimedAxis(m_axis, QLineF(static_cast(*first), ScenePos())); } else { const QSharedPointer second = GetData()->GeometricObject(m_object2Id); - DrawPoint(m_axisP2, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_axisP2, static_cast(*second)); - DrawAimedAxis(m_axis, QLineF(static_cast(*first), static_cast(*second)), - Color(VColor::SupportColor)); + DrawAimedAxis(m_axis, QLineF(static_cast(*first), static_cast(*second))); if (m_hypotenuseP1Id > NULL_ID) { const QSharedPointer third = GetData()->GeometricObject(m_hypotenuseP1Id); - DrawPoint(m_hypotenuseP1, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_hypotenuseP1, static_cast(*third)); if (m_hypotenuseP2Id <= NULL_ID) { - DrawLine(this, QLineF(static_cast(*third), ScenePos()), Color(VColor::SupportColor), - Qt::DashLine); + DrawLine(this, QLineF(static_cast(*third), ScenePos()), Qt::DashLine); QPointF trPoint; VToolTriangle::FindPoint(static_cast(*first), static_cast(*second), static_cast(*third), ScenePos(), &trPoint); - DrawPoint(m_point, trPoint, Color(VColor::MainColor)); + DrawPoint(m_point, trPoint); - DrawLine(m_foot1, QLineF(static_cast(*third), trPoint), Color(VColor::SupportColor), - Qt::DashLine); - DrawLine(m_foot2, QLineF(ScenePos(), trPoint), Color(VColor::SupportColor), Qt::DashLine); + DrawLine(m_foot1, QLineF(static_cast(*third), trPoint), Qt::DashLine); + DrawLine(m_foot2, QLineF(ScenePos(), trPoint), Qt::DashLine); } else { const QSharedPointer forth = GetData()->GeometricObject(m_hypotenuseP2Id); - DrawPoint(m_hypotenuseP2, static_cast(*forth), Color(VColor::SupportColor)); + DrawPoint(m_hypotenuseP2, static_cast(*forth)); - DrawLine(this, QLineF(static_cast(*third), static_cast(*forth)), - Color(VColor::SupportColor), Qt::DashLine); + DrawLine(this, QLineF(static_cast(*third), static_cast(*forth)), Qt::DashLine); QPointF trPoint; VToolTriangle::FindPoint(static_cast(*first), static_cast(*second), static_cast(*third), static_cast(*forth), &trPoint); - DrawPoint(m_point, trPoint, Color(VColor::MainColor)); + DrawPoint(m_point, trPoint); - DrawLine(m_foot1, QLineF(static_cast(*third), trPoint), Color(VColor::SupportColor), - Qt::DashLine); - DrawLine(m_foot2, QLineF(static_cast(*forth), trPoint), Color(VColor::SupportColor), - Qt::DashLine); + DrawLine(m_foot1, QLineF(static_cast(*third), trPoint), Qt::DashLine); + DrawLine(m_foot2, QLineF(static_cast(*forth), trPoint), Qt::DashLine); } } } @@ -128,13 +124,11 @@ void VisToolTriangle::VisualMode(quint32 id) } //--------------------------------------------------------------------------------------------------------------------- -void VisToolTriangle::DrawAimedAxis(VCurvePathItem *item, const QLineF &line, const QColor &color, - Qt::PenStyle style) +void VisToolTriangle::DrawAimedAxis(VCurvePathItem *item, const QLineF &line, Qt::PenStyle style) { - SCASSERT (item != nullptr) + SCASSERT(item != nullptr) QPen visPen = item->pen(); - visPen.setColor(color); visPen.setStyle(style); item->setPen(visPen); @@ -156,11 +150,11 @@ void VisToolTriangle::DrawAimedAxis(VCurvePathItem *item, const QLineF &line, co axis.setAngle(line.angle()); axis.setLength(arrow_step); - int steps = qFloor(line.length()/arrow_step); - for (int i=0; isetPath(path); item->setVisible(true); @@ -172,7 +166,7 @@ void VisToolTriangle::DrawArrow(const QLineF &axis, QPainterPath &path, const qr QLineF arrowPart1; arrowPart1.setP1(axis.p2()); arrowPart1.setLength(arrow_size); - arrowPart1.setAngle(axis.angle()+180+35); + arrowPart1.setAngle(axis.angle() + 180 + 35); path.moveTo(arrowPart1.p1()); path.lineTo(arrowPart1.p2()); @@ -180,7 +174,7 @@ void VisToolTriangle::DrawArrow(const QLineF &axis, QPainterPath &path, const qr QLineF arrowPart2; arrowPart2.setP1(axis.p2()); arrowPart2.setLength(arrow_size); - arrowPart2.setAngle(axis.angle()+180-35); + arrowPart2.setAngle(axis.angle() + 180 - 35); path.moveTo(arrowPart2.p1()); path.lineTo(arrowPart2.p2()); diff --git a/src/libs/vtools/visualization/line/vistooltriangle.h b/src/libs/vtools/visualization/line/vistooltriangle.h index bb66270b8..2e248265f 100644 --- a/src/libs/vtools/visualization/line/vistooltriangle.h +++ b/src/libs/vtools/visualization/line/vistooltriangle.h @@ -29,14 +29,12 @@ #ifndef VISTOOLTRIANGLE_H #define VISTOOLTRIANGLE_H - #include #include #include #include #include #include -#include #include #include "../vmisc/def.h" @@ -45,6 +43,7 @@ class VisToolTriangle : public VisLine { Q_OBJECT // NOLINT + public: explicit VisToolTriangle(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisToolTriangle() override = default; @@ -57,26 +56,29 @@ public: void SetHypotenuseP1Id(quint32 value); void SetHypotenuseP2Id(quint32 value); - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ToolTriangle)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ToolTriangle) + }; + private: // cppcheck-suppress unknownMacro Q_DISABLE_COPY_MOVE(VisToolTriangle) // NOLINT - quint32 m_object1Id{NULL_ID};//axis first point - quint32 m_object2Id{NULL_ID};//axis second point - quint32 m_hypotenuseP1Id{NULL_ID}; - quint32 m_hypotenuseP2Id{NULL_ID}; + quint32 m_object1Id{NULL_ID}; // axis first point + quint32 m_object2Id{NULL_ID}; // axis second point + quint32 m_hypotenuseP1Id{NULL_ID}; + quint32 m_hypotenuseP2Id{NULL_ID}; VScaledEllipse *m_point{nullptr}; VScaledEllipse *m_axisP1{nullptr}; VScaledEllipse *m_axisP2{nullptr}; VCurvePathItem *m_axis{nullptr}; VScaledEllipse *m_hypotenuseP1{nullptr}; VScaledEllipse *m_hypotenuseP2{nullptr}; - VScaledLine *m_foot1{nullptr}; - VScaledLine *m_foot2{nullptr}; + VScaledLine *m_foot1{nullptr}; + VScaledLine *m_foot2{nullptr}; - static void DrawAimedAxis(VCurvePathItem *item, const QLineF &line, const QColor &color, - Qt::PenStyle style = Qt::SolidLine); + static void DrawAimedAxis(VCurvePathItem *item, const QLineF &line, Qt::PenStyle style = Qt::SolidLine); static void DrawArrow(const QLineF &axis, QPainterPath &path, const qreal &arrow_size); }; diff --git a/src/libs/vtools/visualization/line/vistooltruedarts.cpp b/src/libs/vtools/visualization/line/vistooltruedarts.cpp index df48395d2..7607eca9f 100644 --- a/src/libs/vtools/visualization/line/vistooltruedarts.cpp +++ b/src/libs/vtools/visualization/line/vistooltruedarts.cpp @@ -32,32 +32,33 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vpatterndb/vcontainer.h" #include "visline.h" //--------------------------------------------------------------------------------------------------------------------- VisToolTrueDarts::VisToolTrueDarts(const VContainer *data, QGraphicsItem *parent) - :VisLine(data, parent) + : VisLine(data, parent) { - m_baseLineP1 = InitPoint(Color(VColor::SupportColor), this); - m_baseLineP2 = InitPoint(Color(VColor::SupportColor), this); - m_dartP1 = InitPoint(Color(VColor::SupportColor), this); - m_dartP2 = InitPoint(Color(VColor::SupportColor), this); - m_dartP3 = InitPoint(Color(VColor::SupportColor), this); + SetColorRole(VColorRole::VisSupportColor); - m_lineblP1P1 = InitItem(Color(VColor::SupportColor), this); - m_lineblP2P2 = InitItem(Color(VColor::SupportColor), this); - m_p1d2 = InitItem(Color(VColor::SupportColor), this); - m_d2p2 = InitItem(Color(VColor::SupportColor), this); + m_baseLineP1 = InitPoint(VColorRole::VisSupportColor, this); + m_baseLineP2 = InitPoint(VColorRole::VisSupportColor, this); + m_dartP1 = InitPoint(VColorRole::VisSupportColor, this); + m_dartP2 = InitPoint(VColorRole::VisSupportColor, this); + m_dartP3 = InitPoint(VColorRole::VisSupportColor, this); - m_point1 = InitPoint(Color(VColor::MainColor), this); - m_point2 = InitPoint(Color(VColor::MainColor), this); //-V656 + m_lineblP1P1 = InitItem(VColorRole::VisSupportColor, this); + m_lineblP2P2 = InitItem(VColorRole::VisSupportColor, this); + m_p1d2 = InitItem(VColorRole::VisSupportColor, this); + m_d2p2 = InitItem(VColorRole::VisSupportColor, this); + + m_point1 = InitPoint(VColorRole::VisMainColor, this); + m_point2 = InitPoint(VColorRole::VisMainColor, this); //-V656 } //--------------------------------------------------------------------------------------------------------------------- @@ -66,46 +67,42 @@ void VisToolTrueDarts::RefreshGeometry() if (m_baseLineP1Id > NULL_ID) { const QSharedPointer blP1 = GetData()->GeometricObject(m_baseLineP1Id); - DrawPoint(m_baseLineP1, static_cast(*blP1), Color(VColor::SupportColor)); + DrawPoint(m_baseLineP1, static_cast(*blP1)); if (m_baseLineP2Id <= NULL_ID) { - DrawLine(this, QLineF(static_cast(*blP1), ScenePos()), Color(VColor::SupportColor), Qt::DashLine); + DrawLine(this, QLineF(static_cast(*blP1), ScenePos()), Qt::DashLine); } else { const QSharedPointer blP2 = GetData()->GeometricObject(m_baseLineP2Id); - DrawPoint(m_baseLineP2, static_cast(*blP2), Color(VColor::SupportColor)); - DrawLine(this, QLineF(static_cast(*blP1), static_cast(*blP2)), - Color(VColor::SupportColor), Qt::DashLine); + DrawPoint(m_baseLineP2, static_cast(*blP2)); + DrawLine(this, QLineF(static_cast(*blP1), static_cast(*blP2)), Qt::DashLine); if (m_dartP1Id > NULL_ID) { const QSharedPointer d1 = GetData()->GeometricObject(m_dartP1Id); - DrawPoint(m_dartP1, static_cast(*d1), Color(VColor::SupportColor)); + DrawPoint(m_dartP1, static_cast(*d1)); if (m_dartP2Id <= NULL_ID) { - DrawLine(m_p1d2, QLineF(static_cast(*d1), ScenePos()), - Color(VColor::SupportColor)); + DrawLine(m_p1d2, QLineF(static_cast(*d1), ScenePos())); } else { const QSharedPointer d2 = GetData()->GeometricObject(m_dartP2Id); - DrawPoint(m_dartP2, static_cast(*d2), Color(VColor::SupportColor)); - DrawLine(m_p1d2, QLineF(static_cast(*d1), static_cast(*d2)), - Color(VColor::SupportColor)); + DrawPoint(m_dartP2, static_cast(*d2)); + DrawLine(m_p1d2, QLineF(static_cast(*d1), static_cast(*d2))); if (m_dartP3Id <= NULL_ID) { - DrawLine(m_d2p2, QLineF(static_cast(*d2), ScenePos()), Color(VColor::SupportColor)); + DrawLine(m_d2p2, QLineF(static_cast(*d2), ScenePos())); } else { const QSharedPointer d3 = GetData()->GeometricObject(m_dartP3Id); - DrawPoint(m_dartP3, static_cast(*d3), Color(VColor::SupportColor)); - DrawLine(m_d2p2, QLineF(static_cast(*d2), static_cast(*d3)), - Color(VColor::SupportColor)); + DrawPoint(m_dartP3, static_cast(*d3)); + DrawLine(m_d2p2, QLineF(static_cast(*d2), static_cast(*d3))); QPointF p1; QPointF p2; @@ -113,13 +110,13 @@ void VisToolTrueDarts::RefreshGeometry() static_cast(*d1), static_cast(*d2), static_cast(*d3), p1, p2); - DrawLine(m_lineblP1P1, QLineF(static_cast(*blP1), p1), Color(VColor::SupportColor)); - DrawLine(m_lineblP2P2, QLineF(static_cast(*blP2), p2), Color(VColor::SupportColor)); - DrawLine(m_p1d2, QLineF(p1, static_cast(*d2)), Color(VColor::SupportColor)); - DrawLine(m_d2p2, QLineF(static_cast(*d2), p2), Color(VColor::SupportColor)); + DrawLine(m_lineblP1P1, QLineF(static_cast(*blP1), p1)); + DrawLine(m_lineblP2P2, QLineF(static_cast(*blP2), p2)); + DrawLine(m_p1d2, QLineF(p1, static_cast(*d2))); + DrawLine(m_d2p2, QLineF(static_cast(*d2), p2)); - DrawPoint(m_point1, p1, Color(VColor::MainColor)); - DrawPoint(m_point2, p2, Color(VColor::MainColor)); + DrawPoint(m_point1, p1); + DrawPoint(m_point2, p2); } } } diff --git a/src/libs/vtools/visualization/path/vispath.cpp b/src/libs/vtools/visualization/path/vispath.cpp index df85a2635..4d611cd21 100644 --- a/src/libs/vtools/visualization/path/vispath.cpp +++ b/src/libs/vtools/visualization/path/vispath.cpp @@ -30,16 +30,16 @@ #include -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vpatterndb/vcontainer.h" #include "../vwidgets/vsimplepoint.h" //--------------------------------------------------------------------------------------------------------------------- VisPath::VisPath(const VContainer *data, QGraphicsItem *parent) - : Visualization(data), - VCurvePathItem(parent) + : Visualization(data), + VCurvePathItem(VColorRole::VisMainColor, parent) { - setZValue(1);// Show on top real tool + setZValue(1); // Show on top real tool VisPath::InitPen(); } @@ -47,9 +47,7 @@ VisPath::VisPath(const VContainer *data, QGraphicsItem *parent) void VisPath::InitPen() { QPen visPen = pen(); - visPen.setColor(Color(VColor::MainColor)); visPen.setStyle(LineStyle()); - setPen(visPen); } @@ -60,14 +58,14 @@ void VisPath::AddOnScene() } //--------------------------------------------------------------------------------------------------------------------- -auto VisPath::GetPoint(QVector &points, quint32 i, const QColor &color) -> VSimplePoint * +auto VisPath::GetPoint(QVector &points, quint32 i, VColorRole role) -> VSimplePoint * { if (not points.isEmpty() && static_cast(points.size() - 1) >= i) { return points.at(static_cast(i)); } - auto *point = new VSimplePoint(NULL_ID, color); + auto *point = new VSimplePoint(NULL_ID, role); point->SetPointHighlight(true); point->setParentItem(this); point->SetVisualizationMode(true); diff --git a/src/libs/vtools/visualization/path/vispath.h b/src/libs/vtools/visualization/path/vispath.h index e7c12ceab..b1d1b6804 100644 --- a/src/libs/vtools/visualization/path/vispath.h +++ b/src/libs/vtools/visualization/path/vispath.h @@ -29,7 +29,6 @@ #ifndef VISPATH_H #define VISPATH_H - #include #include #include @@ -45,21 +44,27 @@ class VSimplePoint; class VisPath : public Visualization, public VCurvePathItem { Q_OBJECT // NOLINT + public: explicit VisPath(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisPath() override = default; void SetApproximationScale(qreal approximationScale); - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::Path)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::Path) + }; + protected: void InitPen() override; void AddOnScene() override; - auto GetPoint(QVector &points, quint32 i, const QColor &color) -> VSimplePoint *; + auto GetPoint(QVector &points, quint32 i, VColorRole role) -> VSimplePoint *; auto ApproximationScale() const -> qreal; + private: Q_DISABLE_COPY_MOVE(VisPath) // NOLINT diff --git a/src/libs/vtools/visualization/path/vispiecespecialpoints.cpp b/src/libs/vtools/visualization/path/vispiecespecialpoints.cpp index ae0916562..f53dc0ebc 100644 --- a/src/libs/vtools/visualization/path/vispiecespecialpoints.cpp +++ b/src/libs/vtools/visualization/path/vispiecespecialpoints.cpp @@ -27,9 +27,9 @@ *************************************************************************/ #include "vispiecespecialpoints.h" -#include "../vwidgets/vsimplepoint.h" #include "../vgeometry/vpointf.h" #include "../vpatterndb/vcontainer.h" +#include "../vwidgets/vsimplepoint.h" namespace { @@ -42,15 +42,13 @@ auto RectPath(const QRectF &rect) -> QPainterPath } return path; } -} // namespace +} // namespace //--------------------------------------------------------------------------------------------------------------------- VisPieceSpecialPoints::VisPieceSpecialPoints(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) + : VisPath(data, parent) { - SetColor(VColor::SupportColor2, Qt::darkGreen); - - m_rectItem = InitItem(Color(VColor::SupportColor2), this); + m_rectItem = InitItem(VColorRole::VisSupportColor2, this); m_rectItem->SetWidth(VAbstractApplication::VApp()->Settings()->WidthHairLine()); } @@ -61,7 +59,7 @@ void VisPieceSpecialPoints::RefreshGeometry() for (int i = 0; i < m_spoints.size(); ++i) { - VSimplePoint *point = GetPoint(static_cast(i), Color(VColor::SupportColor)); + VSimplePoint *point = GetPoint(static_cast(i), VColorRole::VisSupportColor); // Keep first, you can hide only objects those have shape point->RefreshPointGeometry(*GetData()->GeometricObject(m_spoints.at(i))); point->SetOnlyPoint(false); @@ -69,7 +67,7 @@ void VisPieceSpecialPoints::RefreshGeometry() if (m_showRect) { - DrawPath(m_rectItem, RectPath(m_placeLabelRect), Color(VColor::SupportColor2), Qt::SolidLine, Qt::RoundCap); + DrawPath(m_rectItem, RectPath(m_placeLabelRect), Qt::SolidLine, Qt::RoundCap); } } } @@ -82,9 +80,9 @@ void VisPieceSpecialPoints::VisualMode(quint32 id) } //--------------------------------------------------------------------------------------------------------------------- -auto VisPieceSpecialPoints::GetPoint(quint32 i, const QColor &color) -> VSimplePoint * +auto VisPieceSpecialPoints::GetPoint(quint32 i, VColorRole role) -> VSimplePoint * { - return VisPath::GetPoint(m_points, i, color); + return VisPath::GetPoint(m_points, i, role); } //--------------------------------------------------------------------------------------------------------------------- @@ -98,4 +96,3 @@ void VisPieceSpecialPoints::HideAllItems() } } } - diff --git a/src/libs/vtools/visualization/path/vispiecespecialpoints.h b/src/libs/vtools/visualization/path/vispiecespecialpoints.h index a1c80fe66..5ee4dfe5a 100644 --- a/src/libs/vtools/visualization/path/vispiecespecialpoints.h +++ b/src/libs/vtools/visualization/path/vispiecespecialpoints.h @@ -57,7 +57,7 @@ private: QRectF m_placeLabelRect{}; VCurvePathItem *m_rectItem{nullptr}; - auto GetPoint(quint32 i, const QColor &color) -> VSimplePoint *; + auto GetPoint(quint32 i, VColorRole role) -> VSimplePoint *; void HideAllItems(); }; diff --git a/src/libs/vtools/visualization/path/vistoolarc.cpp b/src/libs/vtools/visualization/path/vistoolarc.cpp index d55299cfe..f0023f8ec 100644 --- a/src/libs/vtools/visualization/path/vistoolarc.cpp +++ b/src/libs/vtools/visualization/path/vistoolarc.cpp @@ -31,28 +31,26 @@ #include #include #include -#include -#include #include +#include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" +#include "../vgeometry/vgeometrydef.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" #include "../vmisc/def.h" -#include "qnamespace.h" -#include "../vgeometry/vgeometrydef.h" -#include "vispath.h" -#include "../vwidgets/scalesceneitems.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/scalesceneitems.h" +#include "vispath.h" //--------------------------------------------------------------------------------------------------------------------- VisToolArc::VisToolArc(const VContainer *data, QGraphicsItem *parent) - :VisPath(data, parent) + : VisPath(data, parent) { - m_arcCenter = InitPoint(Color(VColor::MainColor), this); - m_f1Point = InitPoint(Color(VColor::SupportColor), this); + m_arcCenter = InitPoint(VColorRole::VisSupportColor, this); + m_f1Point = InitPoint(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -63,7 +61,7 @@ void VisToolArc::RefreshGeometry() m_f1Point->setVisible(false); const QSharedPointer first = GetData()->GeometricObject(m_centerId); - DrawPoint(m_arcCenter, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_arcCenter, static_cast(*first)); if (GetMode() == Mode::Creation) { @@ -85,28 +83,27 @@ void VisToolArc::RefreshGeometry() if (qFuzzyIsNull(m_radius)) { - VArc arc = VArc (*first, r.length(), r.angle(), r.angle()); + VArc arc = VArc(*first, r.length(), r.angle(), r.angle()); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), QVector(), Color(VColor::SupportColor), Qt::DashLine, - Qt::RoundCap); + DrawPath(this, arc.GetPath(), QVector(), Qt::DashLine, Qt::RoundCap); SetToolTip(tr("Arc: radius = %1%2; " "Mouse click - finish selecting the radius, " - "%3 - skip").arg(LengthToUser(r.length()), prefix, VModifierKey::EnterKey())); + "%3 - skip") + .arg(LengthToUser(r.length()), prefix, VModifierKey::EnterKey())); } else if (m_f1 < 0) { qreal f1Angle = Angle(); - VArc arc = VArc (*first, m_radius, f1Angle, f1Angle); + VArc arc = VArc(*first, m_radius, f1Angle, f1Angle); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), QVector(), Color(VColor::SupportColor), Qt::DashLine, - Qt::RoundCap); + DrawPath(this, arc.GetPath(), QVector(), Qt::DashLine, Qt::RoundCap); QLineF f1Line = r; f1Line.setLength(m_radius); f1Line.setAngle(f1Angle); - DrawPoint(m_f1Point, f1Line.p2(), Color(VColor::SupportColor)); + DrawPoint(m_f1Point, f1Line.p2()); SetToolTip(tr("Arc: radius = %1%2, first angle = %3°; " "Mouse click - finish selecting the first angle, " @@ -118,10 +115,9 @@ void VisToolArc::RefreshGeometry() else if (m_f1 >= 0) { qreal f2Angle = StickyEnd(Angle()); - VArc arc = VArc (*first, m_radius, m_f1, f2Angle); + VArc arc = VArc(*first, m_radius, m_f1, f2Angle); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), arc.DirectionArrows(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, arc.GetPath(), arc.DirectionArrows(), LineStyle(), Qt::RoundCap); SetToolTip(tr("Arc: radius = %1%2, first angle = %3°, second angle = %4°; " "Mouse click - finish creating, " @@ -136,15 +132,13 @@ void VisToolArc::RefreshGeometry() { if (not qFuzzyIsNull(m_radius) && m_f1 >= 0 && m_f2 >= 0) { - VArc arc = VArc (*first, m_radius, m_f1, m_f2); + VArc arc = VArc(*first, m_radius, m_f1, m_f2); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), arc.DirectionArrows(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, arc.GetPath(), arc.DirectionArrows(), LineStyle(), Qt::RoundCap); } else { - DrawPath(this, QPainterPath(), QVector(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, QPainterPath(), QVector(), LineStyle(), Qt::RoundCap); } } } diff --git a/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp b/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp index bd3c9234c..6deaeadf8 100644 --- a/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp +++ b/src/libs/vtools/visualization/path/vistoolarcwithlength.cpp @@ -31,25 +31,24 @@ #include #include #include -#include -#include #include +#include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" #include "../vwidgets/scalesceneitems.h" #include "vispath.h" -#include "../vmisc/vmodifierkey.h" //--------------------------------------------------------------------------------------------------------------------- VisToolArcWithLength::VisToolArcWithLength(const VContainer *data, QGraphicsItem *parent) - :VisPath(data, parent) + : VisPath(data, parent) { - m_arcCenter = InitPoint(Color(VColor::MainColor), this); - m_f1Point = InitPoint(Color(VColor::SupportColor), this); + m_arcCenter = InitPoint(VColorRole::VisSupportColor, this); + m_f1Point = InitPoint(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -60,7 +59,7 @@ void VisToolArcWithLength::RefreshGeometry() m_f1Point->setVisible(false); const QSharedPointer first = GetData()->GeometricObject(m_centerId); - DrawPoint(m_arcCenter, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_arcCenter, static_cast(*first)); if (GetMode() == Mode::Creation) { @@ -82,28 +81,27 @@ void VisToolArcWithLength::RefreshGeometry() if (qFuzzyIsNull(m_radius)) { - VArc arc = VArc (*first, r.length(), r.angle(), r.angle()); + VArc arc = VArc(*first, r.length(), r.angle(), r.angle()); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), QVector(), Color(VColor::SupportColor), Qt::DashLine, - Qt::RoundCap); + DrawPath(this, arc.GetPath(), QVector(), Qt::DashLine, Qt::RoundCap); SetToolTip(tr("Arc: radius = %1%2; " "Mouse click - finish selecting the radius, " - "%3 - skip").arg(LengthToUser(r.length()), prefix, VModifierKey::EnterKey())); + "%3 - skip") + .arg(LengthToUser(r.length()), prefix, VModifierKey::EnterKey())); } else if (m_f1 < 0) { qreal f1Angle = Angle(); - VArc arc = VArc (*first, m_radius, f1Angle, f1Angle); + VArc arc = VArc(*first, m_radius, f1Angle, f1Angle); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), QVector(), Color(VColor::SupportColor), Qt::DashLine, - Qt::RoundCap); + DrawPath(this, arc.GetPath(), QVector(), Qt::DashLine, Qt::RoundCap); QLineF f1Line = r; f1Line.setLength(m_radius); f1Line.setAngle(f1Angle); - DrawPoint(m_f1Point, f1Line.p2(), Color(VColor::SupportColor)); + DrawPoint(m_f1Point, f1Line.p2()); SetToolTip(tr("Arc: radius = %1%2, first angle = %3°; " "Mouse click - finish selecting the first angle, " @@ -114,10 +112,9 @@ void VisToolArcWithLength::RefreshGeometry() } else if (m_f1 >= 0) { - VArc arc = VArc (*first, m_radius, m_f1, r.angle()); + VArc arc = VArc(*first, m_radius, m_f1, r.angle()); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), arc.DirectionArrows(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, arc.GetPath(), arc.DirectionArrows(), LineStyle(), Qt::RoundCap); SetToolTip(tr("Arc: radius = %1%2, first angle = %3°, arc length = %4%2; " "Mouse click - finish creating, " @@ -130,15 +127,13 @@ void VisToolArcWithLength::RefreshGeometry() { if (not qFuzzyIsNull(m_radius) && m_f1 >= 0 && not qFuzzyIsNull(m_length)) { - VArc arc = VArc (m_length, *first, m_radius, m_f1); + VArc arc = VArc(m_length, *first, m_radius, m_f1); arc.SetApproximationScale(ApproximationScale()); - DrawPath(this, arc.GetPath(), arc.DirectionArrows(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, arc.GetPath(), arc.DirectionArrows(), LineStyle(), Qt::RoundCap); } else { - DrawPath(this, QPainterPath(), QVector(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, QPainterPath(), QVector(), LineStyle(), Qt::RoundCap); } } } @@ -175,8 +170,8 @@ auto VisToolArcWithLength::CorrectAngle(qreal angle) -> qreal qreal ang = angle; if (angle > 360) { - ang = angle - 360.0 * qFloor(angle/360); + ang = angle - 360.0 * qFloor(angle / 360); } - return (qFloor(qAbs(ang)/5.)) * 5; + return (qFloor(qAbs(ang) / 5.)) * 5; } diff --git a/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp b/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp index b033eebfc..f7f7bc984 100644 --- a/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp +++ b/src/libs/vtools/visualization/path/vistoolcubicbezier.cpp @@ -33,28 +33,27 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/vcubicbezier.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "vispath.h" +#include "../vpatterndb/vcontainer.h" #include "../vwidgets/scalesceneitems.h" +#include "vispath.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCubicBezier::VisToolCubicBezier(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) + : VisPath(data, parent) { - m_helpLine1 = InitItem(Color(VColor::MainColor), this); - m_helpLine2 = InitItem(Color(VColor::MainColor), this); + m_helpLine1 = InitItem(VColorRole::VisMainColor, this); + m_helpLine2 = InitItem(VColorRole::VisMainColor, this); - m_point1 = InitPoint(Color(VColor::SupportColor), this); - m_point2 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_point3 = InitPoint(Color(VColor::SupportColor), this); //-V656 - m_point4 = InitPoint(Color(VColor::SupportColor), this); //-V656 + m_point1 = InitPoint(VColorRole::VisSupportColor, this); + m_point2 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_point3 = InitPoint(VColorRole::VisSupportColor, this); //-V656 + m_point4 = InitPoint(VColorRole::VisSupportColor, this); //-V656 } //--------------------------------------------------------------------------------------------------------------------- @@ -67,46 +66,42 @@ void VisToolCubicBezier::RefreshGeometry() if (m_point2Id <= NULL_ID) { - DrawLine(m_helpLine1, QLineF(static_cast(*first), ScenePos()), Color(VColor::MainColor), - Qt::DashLine); + DrawLine(m_helpLine1, QLineF(static_cast(*first), ScenePos()), Qt::DashLine); } else { const auto second = GetData()->GeometricObject(m_point2Id); - DrawPoint(m_point2, static_cast(*second), Color(VColor::SupportColor)); - DrawLine(m_helpLine1, QLineF(static_cast(*first), static_cast(*second)), - Color(VColor::MainColor), Qt::DashLine); + DrawPoint(m_point2, static_cast(*second)); + DrawLine(m_helpLine1, QLineF(static_cast(*first), static_cast(*second)), Qt::DashLine); if (m_point3Id <= NULL_ID) { VCubicBezier spline(*first, *second, VPointF(ScenePos()), VPointF(ScenePos())); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, spline.GetPath(), LineStyle(), Qt::RoundCap); } else { const auto third = GetData()->GeometricObject(m_point3Id); - DrawPoint(m_point3, static_cast(*third), Color(VColor::SupportColor)); + DrawPoint(m_point3, static_cast(*third)); if (m_point4Id <= NULL_ID) { - VCubicBezier spline(*first, *second, *third, VPointF(ScenePos())); + VCubicBezier spline(*first, *second, *third, VPointF(ScenePos())); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); - DrawLine(m_helpLine2, QLineF(static_cast(*third), ScenePos()), Color(VColor::MainColor), - Qt::DashLine); + DrawPath(this, spline.GetPath(), LineStyle(), Qt::RoundCap); + DrawLine(m_helpLine2, QLineF(static_cast(*third), ScenePos()), Qt::DashLine); } else { const auto fourth = GetData()->GeometricObject(m_point4Id); - DrawPoint(m_point4, static_cast(*fourth), Color(VColor::SupportColor)); + DrawPoint(m_point4, static_cast(*fourth)); DrawLine(m_helpLine2, QLineF(static_cast(*fourth), static_cast(*third)), - Color(VColor::MainColor), Qt::DashLine); + Qt::DashLine); - VCubicBezier spline(*first, *second, *third, *fourth); + VCubicBezier spline(*first, *second, *third, *fourth); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), spline.DirectionArrows(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, spline.GetPath(), spline.DirectionArrows(), LineStyle(), Qt::RoundCap); } } } diff --git a/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp b/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp index 00a5e63dc..b05e5f0de 100644 --- a/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp +++ b/src/libs/vtools/visualization/path/vistoolcubicbezierpath.cpp @@ -33,26 +33,26 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" #include "../visualization.h" -#include "vispath.h" -#include "../vwidgets/scalesceneitems.h" -#include "../vmisc/vmodifierkey.h" #include "../vmisc/compatibility.h" +#include "../vmisc/vmodifierkey.h" +#include "../vwidgets/scalesceneitems.h" +#include "theme/themeDef.h" +#include "vispath.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCubicBezierPath::VisToolCubicBezierPath(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) + : VisPath(data, parent) { - helpLine1 = InitItem(Color(VColor::MainColor), this); - helpLine2 = InitItem(Color(VColor::MainColor), this); + helpLine1 = InitItem(VColorRole::VisMainColor, this); + helpLine2 = InitItem(VColorRole::VisMainColor, this); - newCurveSegment = InitItem(Color(VColor::MainColor), this); + newCurveSegment = InitItem(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -73,47 +73,50 @@ void VisToolCubicBezierPath::RefreshGeometry() for (vsizetype i = 0; i < size; ++i) { - VScaledEllipse *point = this->GetPoint(mainPoints, static_cast(i), 1/*zValue*/); - DrawPoint(point, static_cast(pathPoints.at(i)), Color(VColor::SupportColor)); + VScaledEllipse *point = + this->GetPoint(mainPoints, static_cast(i), VColorRole::VisSupportColor, 1 /*zValue*/); + DrawPoint(point, static_cast(pathPoints.at(i))); } if (GetMode() == Mode::Creation) { if (countSubSpl < 1) { - Creating(pathPoints, size-1); + Creating(pathPoints, size - 1); } else { const vsizetype last = VCubicBezierPath::SubSplOffset(countSubSpl) + 3; - Creating(pathPoints, size-1-last); + Creating(pathPoints, size - 1 - last); } } if (countSubSpl >= 1) { - DrawPath(this, path.GetPath(), path.DirectionArrows(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, path.GetPath(), path.DirectionArrows(), LineStyle(), Qt::RoundCap); - for (vsizetype i = 1; i<=countSubSpl; ++i) + for (vsizetype i = 1; i <= countSubSpl; ++i) { const vsizetype preLastPoint = (countSubSpl - 1) * 2; const vsizetype lastPoint = preLastPoint + 1; const VSpline spl = path.GetSpline(i); - VScaledLine *ctrlLine1 = this->GetLine(static_cast(preLastPoint)); + VScaledLine *ctrlLine1 = this->GetLine(static_cast(preLastPoint), VColorRole::VisMainColor); DrawLine(ctrlLine1, QLineF(static_cast(spl.GetP1()), static_cast(spl.GetP2())), - Color(VColor::MainColor), Qt::DashLine); + Qt::DashLine); - VScaledEllipse *p2 = this->GetPoint(ctrlPoints, static_cast(preLastPoint)); - DrawPoint(p2, static_cast(spl.GetP2()), Qt::green); + VScaledEllipse *p2 = + this->GetPoint(ctrlPoints, static_cast(preLastPoint), VColorRole::VisSupportColor2); + DrawPoint(p2, static_cast(spl.GetP2())); - VScaledLine *ctrlLine2 = this->GetLine(static_cast(lastPoint)); + VScaledLine *ctrlLine2 = this->GetLine(static_cast(lastPoint), VColorRole::VisMainColor); DrawLine(ctrlLine2, QLineF(static_cast(spl.GetP4()), static_cast(spl.GetP3())), - Color(VColor::MainColor), Qt::DashLine); + Qt::DashLine); - VScaledEllipse *p3 = this->GetPoint(ctrlPoints, static_cast(lastPoint)); - DrawPoint(p3, static_cast(spl.GetP3()), Qt::green); + VScaledEllipse *p3 = + this->GetPoint(ctrlPoints, static_cast(lastPoint), VColorRole::VisSupportColor2); + DrawPoint(p3, static_cast(spl.GetP3())); } } @@ -137,27 +140,28 @@ void VisToolCubicBezierPath::SetPath(const VCubicBezierPath &value) } //--------------------------------------------------------------------------------------------------------------------- -auto VisToolCubicBezierPath::GetPoint(QVector &points, quint32 i, qreal z) -> VScaledEllipse * +auto VisToolCubicBezierPath::GetPoint(QVector &points, quint32 i, VColorRole role, qreal z) + -> VScaledEllipse * { if (not points.isEmpty() && static_cast(points.size() - 1) >= i) { return points.at(static_cast(i)); } - auto *point = InitPoint(Color(VColor::SupportColor), this, z); + auto *point = InitPoint(role, this, z); points.append(point); return point; } //--------------------------------------------------------------------------------------------------------------------- -auto VisToolCubicBezierPath::GetLine(quint32 i) -> VScaledLine * +auto VisToolCubicBezierPath::GetLine(quint32 i, VColorRole role) -> VScaledLine * { if (static_cast(lines.size() - 1) >= i && not lines.isEmpty()) { return lines.at(static_cast(i)); } - auto *line = InitItem(Color(VColor::MainColor), this); + auto *line = InitItem(role, this); lines.append(line); return line; } @@ -166,7 +170,7 @@ auto VisToolCubicBezierPath::GetLine(quint32 i) -> VScaledLine * void VisToolCubicBezierPath::Creating(const QVector &pathPoints, vsizetype pointsLeft) { const vsizetype size = pathPoints.size(); - if (pathPoints.isEmpty() || size+1 < pointsLeft) + if (pathPoints.isEmpty() || size + 1 < pointsLeft) { return; } @@ -175,10 +179,10 @@ void VisToolCubicBezierPath::Creating(const QVector &pathPoints, vsizet const vsizetype subSplCount = VCubicBezierPath::CountSubSpl(size); if (subSplCount >= 1) { - subSplPoints = VCubicBezierPath::SubSplPointsCount(subSplCount)-1; + subSplPoints = VCubicBezierPath::SubSplPointsCount(subSplCount) - 1; } - switch(pointsLeft) + switch (pointsLeft) { case 0: { @@ -186,75 +190,77 @@ void VisToolCubicBezierPath::Creating(const QVector &pathPoints, vsizet if (pathPoints.size() >= 4) { QLineF p1p2(static_cast(p1), ScenePos()); - QLineF prP3p1(static_cast(pathPoints.at(size-2)), static_cast(p1)); + QLineF prP3p1(static_cast(pathPoints.at(size - 2)), static_cast(p1)); p1p2.setAngle(prP3p1.angle()); const QPointF p2 = p1p2.p2(); VSpline spline(p1, p2, ScenePos(), VPointF(ScenePos())); - DrawPath(newCurveSegment, spline.GetPath(), Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), Qt::SolidLine, Qt::RoundCap); - DrawLine(helpLine1, p1p2, Color(VColor::MainColor), Qt::DashLine); + DrawLine(helpLine1, p1p2, Qt::DashLine); const vsizetype preLastPoint = subSplCount * 2; - VScaledEllipse *p2Ctrl = this->GetPoint(ctrlPoints, static_cast(preLastPoint)); - DrawPoint(p2Ctrl, p2, Qt::green); + VScaledEllipse *p2Ctrl = + this->GetPoint(ctrlPoints, static_cast(preLastPoint), VColorRole::VisSupportColor2); + DrawPoint(p2Ctrl, p2); } else { - DrawLine(helpLine1, QLineF(static_cast(p1), ScenePos()), Color(VColor::MainColor), - Qt::DashLine); + DrawLine(helpLine1, QLineF(static_cast(p1), ScenePos()), Qt::DashLine); } break; } case 1: { - const VPointF& p1 = pathPoints.at(subSplPoints + pointsLeft-1); + const VPointF &p1 = pathPoints.at(subSplPoints + pointsLeft - 1); auto p2 = static_cast(pathPoints.at(subSplPoints + pointsLeft)); if (subSplCount >= 1) { QLineF p1p2(static_cast(p1), p2); - QLineF prP3p1(static_cast(pathPoints.at(subSplPoints + pointsLeft-2)), + QLineF prP3p1(static_cast(pathPoints.at(subSplPoints + pointsLeft - 2)), static_cast(p1)); p1p2.setAngle(prP3p1.angle()); p2 = p1p2.p2(); } - DrawLine(helpLine1, QLineF(static_cast(p1), p2), Color(VColor::MainColor), Qt::DashLine); + DrawLine(helpLine1, QLineF(static_cast(p1), p2), Qt::DashLine); VSpline spline(p1, p2, ScenePos(), VPointF(ScenePos())); - DrawPath(newCurveSegment, spline.GetPath(), Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), Qt::SolidLine, Qt::RoundCap); const vsizetype preLastPoint = subSplCount * 2; - VScaledEllipse *p2Ctrl = this->GetPoint(ctrlPoints, static_cast(preLastPoint)); - DrawPoint(p2Ctrl, p2, Qt::green); + VScaledEllipse *p2Ctrl = + this->GetPoint(ctrlPoints, static_cast(preLastPoint), VColorRole::VisSupportColor2); + DrawPoint(p2Ctrl, p2); break; } case 2: { - const VPointF& p1 = pathPoints.at(subSplPoints + pointsLeft-2); - auto p2 = static_cast(pathPoints.at(subSplPoints + pointsLeft-1)); + const VPointF &p1 = pathPoints.at(subSplPoints + pointsLeft - 2); + auto p2 = static_cast(pathPoints.at(subSplPoints + pointsLeft - 1)); const QPointF p3 = static_cast(pathPoints.at(subSplPoints + pointsLeft)); if (subSplCount >= 1) { QLineF p1p2(static_cast(p1), p2); - QLineF prP3p1(static_cast(pathPoints.at(subSplPoints + pointsLeft-3)), + QLineF prP3p1(static_cast(pathPoints.at(subSplPoints + pointsLeft - 3)), static_cast(p1)); p1p2.setAngle(prP3p1.angle()); p2 = p1p2.p2(); } - DrawLine(helpLine1, QLineF(static_cast(p1), p2), Color(VColor::MainColor), Qt::DashLine); - DrawLine(helpLine2, QLineF(p3, ScenePos()), Color(VColor::MainColor), Qt::DashLine); + DrawLine(helpLine1, QLineF(static_cast(p1), p2), Qt::DashLine); + DrawLine(helpLine2, QLineF(p3, ScenePos()), Qt::DashLine); VSpline spline(p1, p2, p3, VPointF(ScenePos())); - DrawPath(newCurveSegment, spline.GetPath(), Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(newCurveSegment, spline.GetPath(), Qt::SolidLine, Qt::RoundCap); const vsizetype preLastPoint = subSplCount * 2; - VScaledEllipse *p2Ctrl = this->GetPoint(ctrlPoints, static_cast(preLastPoint)); - DrawPoint(p2Ctrl, p2, Qt::green); + VScaledEllipse *p2Ctrl = + this->GetPoint(ctrlPoints, static_cast(preLastPoint), VColorRole::VisSupportColor2); + DrawPoint(p2Ctrl, p2); break; } default: @@ -277,7 +283,8 @@ void VisToolCubicBezierPath::RefreshToolTip() else if (size - VCubicBezierPath::SubSplPointsCount(countSubSpl) == 0) { SetToolTip(tr("Curved path: select seven or more points, " - "%1 - finish creation").arg(VModifierKey::EnterKey())); + "%1 - finish creation") + .arg(VModifierKey::EnterKey())); } else { diff --git a/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h b/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h index fa7e6d9cd..2af8b3ce4 100644 --- a/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h +++ b/src/libs/vtools/visualization/path/vistoolcubicbezierpath.h @@ -29,7 +29,6 @@ #ifndef VISTOOLCUBICBEZIERPATH_H #define VISTOOLCUBICBEZIERPATH_H - #include #include #include @@ -44,6 +43,7 @@ class VisToolCubicBezierPath : public VisPath { Q_OBJECT // NOLINT + public: explicit VisToolCubicBezierPath(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisToolCubicBezierPath() override; @@ -54,21 +54,25 @@ public: void SetPath(const VCubicBezierPath &value); auto GetPath() const -> VCubicBezierPath; - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ToolCubicBezierPath)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ToolCubicBezierPath) + }; + private: Q_DISABLE_COPY_MOVE(VisToolCubicBezierPath) // NOLINT - QVector mainPoints{}; - QVector ctrlPoints{}; - QVector lines{}; - VCurvePathItem *newCurveSegment{nullptr}; - VCubicBezierPath path{}; - VScaledLine *helpLine1{nullptr}; - VScaledLine *helpLine2{nullptr}; + QVector mainPoints{}; + QVector ctrlPoints{}; + QVector lines{}; + VCurvePathItem *newCurveSegment{nullptr}; + VCubicBezierPath path{}; + VScaledLine *helpLine1{nullptr}; + VScaledLine *helpLine2{nullptr}; - auto GetPoint(QVector &points, quint32 i, qreal z = 0) -> VScaledEllipse *; - auto GetLine(quint32 i) -> VScaledLine *; - void Creating(const QVector &pathPoints , vsizetype pointsLeft); + auto GetPoint(QVector &points, quint32 i, VColorRole role, qreal z = 0) -> VScaledEllipse *; + auto GetLine(quint32 i, VColorRole role) -> VScaledLine *; + void Creating(const QVector &pathPoints, vsizetype pointsLeft); void RefreshToolTip(); }; diff --git a/src/libs/vtools/visualization/path/vistoolcutarc.cpp b/src/libs/vtools/visualization/path/vistoolcutarc.cpp index b5ec6f498..ccba07d62 100644 --- a/src/libs/vtools/visualization/path/vistoolcutarc.cpp +++ b/src/libs/vtools/visualization/path/vistoolcutarc.cpp @@ -33,27 +33,29 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/varc.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "vispath.h" -#include "../vwidgets/scalesceneitems.h" +#include "../vmisc/theme/themeDef.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/scalesceneitems.h" +#include "vispath.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCutArc::VisToolCutArc(const VContainer *data, QGraphicsItem *parent) - :VisPath(data, parent) + : VisPath(data, parent) { - m_arc1 = InitItem(Qt::darkGreen, this); + SetColorRole(VColorRole::VisSupportColor); + + m_arc1 = InitItem(VColorRole::VisSupportColor2, this); m_arc1->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_arc2 = InitItem(Qt::darkRed, this); + m_arc2 = InitItem(VColorRole::VisSupportColor4, this); m_arc2->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); m_point->setZValue(2); m_point->setFlag(QGraphicsItem::ItemStacksBehindParent, false); } @@ -64,29 +66,30 @@ void VisToolCutArc::RefreshGeometry() if (m_arcId > NULL_ID) { const QSharedPointer arc = GetData()->GeometricObject(m_arcId); - DrawPath(this, arc->GetPath(), arc->DirectionArrows(), Color(VColor::SupportColor), LineStyle(), Qt::RoundCap); + DrawPath(this, arc->GetPath(), arc->DirectionArrows(), LineStyle(), Qt::RoundCap); if (not qFuzzyIsNull(m_length)) { VArc ar1; VArc ar2; QPointF p = arc->CutArc(m_length, ar1, ar2, QString()); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); - DrawPath(m_arc1, ar1.GetPath(), ar1.DirectionArrows(), Qt::darkGreen, LineStyle(), Qt::RoundCap); - DrawPath(m_arc2, ar2.GetPath(), ar2.DirectionArrows(), Qt::darkRed, LineStyle(), Qt::RoundCap); + DrawPath(m_arc1, ar1.GetPath(), ar1.DirectionArrows(), LineStyle(), Qt::RoundCap); + DrawPath(m_arc2, ar2.GetPath(), ar2.DirectionArrows(), LineStyle(), Qt::RoundCap); } else if (GetMode() == Mode::Creation) { QPointF p = arc->ClosestPoint(ScenePos()); qreal length = arc->GetLengthByPoint(p); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " "Mouse click - finish selecting the length, " - "%3 - skip").arg(LengthToUser(length), prefix, VModifierKey::EnterKey())); + "%3 - skip") + .arg(LengthToUser(length), prefix, VModifierKey::EnterKey())); } } } diff --git a/src/libs/vtools/visualization/path/vistoolcutspline.cpp b/src/libs/vtools/visualization/path/vistoolcutspline.cpp index b21a79719..9c1dea321 100644 --- a/src/libs/vtools/visualization/path/vistoolcutspline.cpp +++ b/src/libs/vtools/visualization/path/vistoolcutspline.cpp @@ -33,29 +33,30 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcubicbezier.h" #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" -#include "vispath.h" -#include "../vwidgets/scalesceneitems.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/scalesceneitems.h" +#include "vispath.h" //--------------------------------------------------------------------------------------------------------------------- VisToolCutSpline::VisToolCutSpline(const VContainer *data, QGraphicsItem *parent) - :VisPath(data, parent) + : VisPath(data, parent) { - m_spl1 = InitItem(Qt::darkGreen, this); + SetColorRole(VColorRole::VisSupportColor); + + m_spl1 = InitItem(VColorRole::VisSupportColor2, this); m_spl1->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_spl2 = InitItem(Qt::darkRed, this); + m_spl2 = InitItem(VColorRole::VisSupportColor4, this); m_spl2->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); m_point->setZValue(2); m_point->setFlag(QGraphicsItem::ItemStacksBehindParent, false); } @@ -66,7 +67,7 @@ void VisToolCutSpline::RefreshGeometry() if (m_splineId > NULL_ID) { const auto spl = GetData()->GeometricObject(m_splineId); - DrawPath(this, spl->GetPath(), spl->DirectionArrows(), Color(VColor::SupportColor), LineStyle(), Qt::RoundCap); + DrawPath(this, spl->GetPath(), spl->DirectionArrows(), LineStyle(), Qt::RoundCap); if (not qFuzzyIsNull(m_length)) { @@ -81,22 +82,23 @@ void VisToolCutSpline::RefreshGeometry() VSpline sp2 = VSpline(VPointF(p), spl2p2, spl2p3, spl->GetP4()); sp2.SetApproximationScale(spl->GetApproximationScale()); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); - DrawPath(m_spl1, sp1.GetPath(), sp1.DirectionArrows(), Qt::darkGreen, LineStyle(), Qt::RoundCap); - DrawPath(m_spl2, sp2.GetPath(), sp2.DirectionArrows(), Qt::darkRed, LineStyle(), Qt::RoundCap); + DrawPath(m_spl1, sp1.GetPath(), sp1.DirectionArrows(), LineStyle(), Qt::RoundCap); + DrawPath(m_spl2, sp2.GetPath(), sp2.DirectionArrows(), LineStyle(), Qt::RoundCap); } else if (GetMode() == Mode::Creation) { QPointF p = spl->ClosestPoint(ScenePos()); qreal length = spl->GetLengthByPoint(p); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " "Mouse click - finish selecting the length, " - "%3 - skip").arg(LengthToUser(length), prefix, VModifierKey::EnterKey())); + "%3 - skip") + .arg(LengthToUser(length), prefix, VModifierKey::EnterKey())); } } } diff --git a/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp b/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp index 5abad7d03..d64e1885e 100644 --- a/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp +++ b/src/libs/vtools/visualization/path/vistoolcutsplinepath.cpp @@ -48,12 +48,14 @@ VisToolCutSplinePath::VisToolCutSplinePath(const VContainer *data, QGraphicsItem *parent) : VisPath(data, parent) { - m_splPath1 = InitItem(Qt::darkGreen, this); + SetColorRole(VColorRole::VisSupportColor); + + m_splPath1 = InitItem(VColorRole::VisSupportColor2, this); m_splPath1->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_splPath2 = InitItem(Qt::darkRed, this); + m_splPath2 = InitItem(VColorRole::VisSupportColor4, this); m_splPath2->setFlag(QGraphicsItem::ItemStacksBehindParent, false); - m_point = InitPoint(Color(VColor::MainColor), this); + m_point = InitPoint(VColorRole::VisMainColor, this); m_point->setZValue(2); m_point->setFlag(QGraphicsItem::ItemStacksBehindParent, false); } @@ -64,8 +66,7 @@ void VisToolCutSplinePath::RefreshGeometry() if (m_splinePathId > NULL_ID) { const auto splPath = GetData()->GeometricObject(m_splinePathId); - DrawPath(this, splPath->GetPath(), splPath->DirectionArrows(), Color(VColor::SupportColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, splPath->GetPath(), splPath->DirectionArrows(), LineStyle(), Qt::RoundCap); if (not qFuzzyIsNull(m_length)) { @@ -76,13 +77,11 @@ void VisToolCutSplinePath::RefreshGeometry() SCASSERT(spPath1 != nullptr) SCASSERT(spPath2 != nullptr) - DrawPoint(m_point, static_cast(*p), Color(VColor::MainColor)); + DrawPoint(m_point, static_cast(*p)); delete p; - DrawPath(m_splPath1, spPath1->GetPath(), spPath1->DirectionArrows(), Qt::darkGreen, LineStyle(), - Qt::RoundCap); - DrawPath(m_splPath2, spPath2->GetPath(), spPath2->DirectionArrows(), Qt::darkRed, LineStyle(), - Qt::RoundCap); + DrawPath(m_splPath1, spPath1->GetPath(), spPath1->DirectionArrows(), LineStyle(), Qt::RoundCap); + DrawPath(m_splPath2, spPath2->GetPath(), spPath2->DirectionArrows(), LineStyle(), Qt::RoundCap); delete spPath1; delete spPath2; @@ -92,7 +91,7 @@ void VisToolCutSplinePath::RefreshGeometry() QPointF p = splPath->ClosestPoint(ScenePos()); qreal length = splPath->GetLengthByPoint(p); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); SetToolTip(tr("Length = %1%2; " diff --git a/src/libs/vtools/visualization/path/vistoolduplicatedetail.cpp b/src/libs/vtools/visualization/path/vistoolduplicatedetail.cpp index 70bb48e59..bd590e759 100644 --- a/src/libs/vtools/visualization/path/vistoolduplicatedetail.cpp +++ b/src/libs/vtools/visualization/path/vistoolduplicatedetail.cpp @@ -30,8 +30,9 @@ //--------------------------------------------------------------------------------------------------------------------- VisToolDuplicateDetail::VisToolDuplicateDetail(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) -{} + : VisPath(data, parent) +{ +} //--------------------------------------------------------------------------------------------------------------------- void VisToolDuplicateDetail::RefreshGeometry() @@ -51,7 +52,7 @@ void VisToolDuplicateDetail::RefreshGeometry() setPos(m_diff); } - DrawPath(this, PiecePath(piece), Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(this, PiecePath(piece), Qt::SolidLine, Qt::RoundCap); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp b/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp index f27968e99..007bb894e 100644 --- a/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp +++ b/src/libs/vtools/visualization/path/vistoolellipticalarc.cpp @@ -29,17 +29,16 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/vellipticalarc.h" #include "../vgeometry/vpointf.h" -#include "../vpatterndb/vcontainer.h" #include "../visualization.h" +#include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" #include "../vwidgets/scalesceneitems.h" #include "vispath.h" -#include "../vmisc/vmodifierkey.h" namespace { @@ -54,16 +53,16 @@ auto Angle(const QLineF &radius) -> qreal return radius.angle(); } -} // namespace +} // namespace //--------------------------------------------------------------------------------------------------------------------- VisToolEllipticalArc::VisToolEllipticalArc(const VContainer *data, QGraphicsItem *parent) - :VisPath(data, parent) + : VisPath(data, parent) { - m_arcCenter = InitPoint(Color(VColor::MainColor), this); - m_radius1Line = InitItem(Color(VColor::SupportColor), this); - m_radius2Line = InitItem(Color(VColor::SupportColor), this); - m_f1Point = InitPoint(Color(VColor::SupportColor), this); + m_arcCenter = InitPoint(VColorRole::VisSupportColor, this); + m_radius1Line = InitItem(VColorRole::VisSupportColor, this); + m_radius2Line = InitItem(VColorRole::VisSupportColor, this); + m_f1Point = InitPoint(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -72,10 +71,10 @@ void VisToolEllipticalArc::RefreshGeometry() if (m_centerId > NULL_ID) { const QSharedPointer first = GetData()->GeometricObject(m_centerId); - DrawPoint(m_arcCenter, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_arcCenter, static_cast(*first)); static const QString prefix = UnitsToStr(VAbstractValApplication::VApp()->patternUnits(), true); - QLineF radius (static_cast(*first), ScenePos()); + QLineF radius(static_cast(*first), ScenePos()); auto center = static_cast(*first); if (GetMode() == Mode::Creation) @@ -86,7 +85,8 @@ void VisToolEllipticalArc::RefreshGeometry() SetToolTip(tr("Elliptical arc: radius1 = %1%2; " "Mouse click - finish selecting the first radius, " - "%3 - skip").arg(LengthToUser(radius.length()), prefix, VModifierKey::EnterKey())); + "%3 - skip") + .arg(LengthToUser(radius.length()), prefix, VModifierKey::EnterKey())); } else if (qFuzzyIsNull(m_radius2)) { @@ -99,12 +99,12 @@ void VisToolEllipticalArc::RefreshGeometry() DrawRadius2Line(center, radius.length()); DrawElArc(*first, m_radius1, radius.length(), 0, 0); - SetToolTip(tr("Elliptical arc: radius1 = %1%2, " - "radius2 = %3%2; " - "Mouse click - finish selecting the second radius, " - "%4 - skip") - .arg(LengthToUser(m_radius1), prefix, LengthToUser(radius.length()), - VModifierKey::EnterKey())); + SetToolTip( + tr("Elliptical arc: radius1 = %1%2, " + "radius2 = %3%2; " + "Mouse click - finish selecting the second radius, " + "%4 - skip") + .arg(LengthToUser(m_radius1), prefix, LengthToUser(radius.length()), VModifierKey::EnterKey())); } else if (m_f1 < 0) { @@ -114,15 +114,15 @@ void VisToolEllipticalArc::RefreshGeometry() qreal f1Angle = Angle(radius); VEllipticalArc elArc = DrawElArc(*first, m_radius1, m_radius2, f1Angle, f1Angle); - DrawPoint(m_f1Point, elArc.GetP1(), Color(VColor::SupportColor)); + DrawPoint(m_f1Point, elArc.GetP1()); SetToolTip(tr("Elliptical arc: radius1 = %1%2, " "radius2 = %3%2, angle1 = %4°; " "Mouse click - finish selecting the second radius, " "%5 - sticking angle, " "%6 - skip") - .arg(LengthToUser(m_radius1), prefix, LengthToUser(m_radius2), - AngleToUser(f1Angle), VModifierKey::Shift(), VModifierKey::EnterKey())); + .arg(LengthToUser(m_radius1), prefix, LengthToUser(m_radius2), AngleToUser(f1Angle), + VModifierKey::Shift(), VModifierKey::EnterKey())); } else if (m_f2 < 0) { @@ -132,16 +132,15 @@ void VisToolEllipticalArc::RefreshGeometry() const qreal f2Angle = Angle(radius); VEllipticalArc elArc = DrawElArc(*first, m_radius1, m_radius2, m_f1, f2Angle); - DrawPoint(m_f1Point, elArc.GetP1(), Color(VColor::SupportColor)); + DrawPoint(m_f1Point, elArc.GetP1()); SetToolTip(tr("Elliptical arc: radius1 = %1%2, " "radius2 = %3%2, angle1 = %4°, angle2 = %5°; " "Mouse click - finish selecting the second radius, " "%6 - sticking angle, " "%7 - skip") - .arg(LengthToUser(m_radius1), prefix, LengthToUser(m_radius2), - AngleToUser(m_f1), AngleToUser(f2Angle), VModifierKey::Shift(), - VModifierKey::EnterKey())); + .arg(LengthToUser(m_radius1), prefix, LengthToUser(m_radius2), AngleToUser(m_f1), + AngleToUser(f2Angle), VModifierKey::Shift(), VModifierKey::EnterKey())); } else if (VFuzzyComparePossibleNulls(m_rotationAngle, INT_MAX)) { @@ -156,16 +155,16 @@ void VisToolEllipticalArc::RefreshGeometry() DrawRadius2Line(center, m_radius2, rotationAngle); VEllipticalArc elArc = DrawElArc(*first, m_radius1, m_radius2, m_f1, m_f2, rotationAngle); - DrawPoint(m_f1Point, elArc.GetP1(), Color(VColor::SupportColor)); + DrawPoint(m_f1Point, elArc.GetP1()); SetToolTip(tr("Elliptical arc: radius1 = %1%2, " "radius2 = %3%2, angle1 = %4°, angle2 = %5°, rotation = %6°; " "Mouse click - finish selecting the second radius, " "%7 - sticking angle, " "%8 - skip") - .arg(LengthToUser(m_radius1), prefix, LengthToUser(radius.length()), - AngleToUser(m_f1), AngleToUser(m_f2), AngleToUser(rotationAngle), - VModifierKey::Shift(), VModifierKey::EnterKey())); + .arg(LengthToUser(m_radius1), prefix, LengthToUser(radius.length()), AngleToUser(m_f1), + AngleToUser(m_f2), AngleToUser(rotationAngle), VModifierKey::Shift(), + VModifierKey::EnterKey())); } } else if (not qFuzzyIsNull(m_radius1) && not qFuzzyIsNull(m_radius2) && m_f1 >= 0 && m_f2 >= 0 && @@ -219,7 +218,7 @@ void VisToolEllipticalArc::DrawRadius1Line(const QPointF ¢er, qreal radius, QLineF radiusLine(center.x(), center.y(), center.x() + 100, center.y()); radiusLine.setLength(radius); radiusLine.setAngle(radiusLine.angle() + rotationAngle); - DrawLine(m_radius1Line, radiusLine, Color(VColor::SupportColor)); + DrawLine(m_radius1Line, radiusLine); } //--------------------------------------------------------------------------------------------------------------------- @@ -228,7 +227,7 @@ void VisToolEllipticalArc::DrawRadius2Line(const QPointF ¢er, qreal radius, QLineF radiusLine(center.x(), center.y(), center.x(), center.y() - 100); radiusLine.setLength(radius); radiusLine.setAngle(radiusLine.angle() + rotationAngle); - DrawLine(m_radius2Line, radiusLine, Color(VColor::SupportColor)); + DrawLine(m_radius2Line, radiusLine); } //--------------------------------------------------------------------------------------------------------------------- @@ -237,7 +236,7 @@ auto VisToolEllipticalArc::DrawElArc(const VPointF ¢er, qreal radius1, qreal { VEllipticalArc elArc(center, radius1, radius2, f1, f2, rotationAngle); elArc.SetApproximationScale(ApproximationScale()); - DrawPath(this, elArc.GetPath(), elArc.DirectionArrows(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, elArc.GetPath(), elArc.DirectionArrows(), LineStyle(), Qt::RoundCap); return elArc; } diff --git a/src/libs/vtools/visualization/path/vistoolpiece.cpp b/src/libs/vtools/visualization/path/vistoolpiece.cpp index f40bb5204..b5617edb6 100644 --- a/src/libs/vtools/visualization/path/vistoolpiece.cpp +++ b/src/libs/vtools/visualization/path/vistoolpiece.cpp @@ -27,16 +27,16 @@ *************************************************************************/ #include "vistoolpiece.h" -#include "../vpatterndb/vpiecepath.h" #include "../vgeometry/vpointf.h" +#include "../vpatterndb/vpiecepath.h" #include "../vwidgets/scalesceneitems.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPiece::VisToolPiece(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) + : VisPath(data, parent) { - m_line1 = InitItem(Color(VColor::SupportColor), this); - m_line2 = InitItem(Color(VColor::SupportColor), this); + m_line1 = InitItem(VColorRole::VisSupportColor, this); + m_line2 = InitItem(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -62,29 +62,27 @@ void VisToolPiece::RefreshGeometry() m_pieceCached = true; } - DrawPath(this, m_cachedMainPath, Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(this, m_cachedMainPath, Qt::SolidLine, Qt::RoundCap); for (int i = 0; i < m_cachedNodes.size(); ++i) { - VScaledEllipse *point = GetPoint(static_cast(i), Color(VColor::SupportColor)); - DrawPoint(point, m_cachedNodes.at(i).toQPointF(), Color(VColor::SupportColor)); + VScaledEllipse *point = GetPoint(static_cast(i), VColorRole::VisSupportColor); + DrawPoint(point, m_cachedNodes.at(i).toQPointF()); } if (GetMode() == Mode::Creation) { for (int i = 0; i < m_cachedCurvesPath.size(); ++i) { - VCurvePathItem *path = GetCurve(static_cast(i), Color(VColor::SupportColor)); - DrawPath(path, m_cachedCurvesPath.at(i), Color(VColor::SupportColor)); + VCurvePathItem *path = GetCurve(static_cast(i), VColorRole::VisSupportColor); + DrawPath(path, m_cachedCurvesPath.at(i)); } - DrawLine(m_line1, QLineF(ConstFirst(m_cachedMainPathPoints), ScenePos()), Color(VColor::SupportColor), - Qt::DashLine); + DrawLine(m_line1, QLineF(ConstFirst(m_cachedMainPathPoints), ScenePos()), Qt::DashLine); if (m_cachedMainPathPoints.size() > 1) { - DrawLine(m_line2, QLineF(ConstLast(m_cachedMainPathPoints), ScenePos()), Color(VColor::SupportColor), - Qt::DashLine); + DrawLine(m_line2, QLineF(ConstLast(m_cachedMainPathPoints), ScenePos()), Qt::DashLine); } } } @@ -105,15 +103,15 @@ void VisToolPiece::SetPiece(const VPiece &piece) } //--------------------------------------------------------------------------------------------------------------------- -auto VisToolPiece::GetPoint(quint32 i, const QColor &color) -> VScaledEllipse * +auto VisToolPiece::GetPoint(quint32 i, VColorRole role) -> VScaledEllipse * { - return GetPointItem(m_points, i, color, this); + return GetPointItem(m_points, i, role, this); } //--------------------------------------------------------------------------------------------------------------------- -auto VisToolPiece::GetCurve(quint32 i, const QColor &color) -> VCurvePathItem * +auto VisToolPiece::GetCurve(quint32 i, VColorRole role) -> VCurvePathItem * { - return GetCurveItem(m_curves, i, color, this); + return GetCurveItem(m_curves, i, role, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -129,7 +127,7 @@ void VisToolPiece::HideAllItems() m_line2->setVisible(false); } - for(QGraphicsEllipseItem *item : qAsConst(m_points)) + for (QGraphicsEllipseItem *item : qAsConst(m_points)) { if (item) { @@ -137,7 +135,7 @@ void VisToolPiece::HideAllItems() } } - for(QGraphicsPathItem *item : qAsConst(m_curves)) + for (QGraphicsPathItem *item : qAsConst(m_curves)) { if (item) { diff --git a/src/libs/vtools/visualization/path/vistoolpiece.h b/src/libs/vtools/visualization/path/vistoolpiece.h index e5b15f789..0455d084d 100644 --- a/src/libs/vtools/visualization/path/vistoolpiece.h +++ b/src/libs/vtools/visualization/path/vistoolpiece.h @@ -32,13 +32,14 @@ #include #include -#include "vispath.h" -#include "../vpatterndb/vpiece.h" #include "../vgeometry/vpointf.h" +#include "../vpatterndb/vpiece.h" +#include "vispath.h" class VisToolPiece : public VisPath { Q_OBJECT // NOLINT + public: explicit VisToolPiece(const VContainer *data, QGraphicsItem *parent = nullptr); ~VisToolPiece() override = default; @@ -48,8 +49,12 @@ public: void SetPiece(const VPiece &piece); - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ToolPiece)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ToolPiece) + }; + private: Q_DISABLE_COPY_MOVE(VisToolPiece) // NOLINT QVector m_points{}; @@ -64,8 +69,8 @@ private: QVector m_cachedMainPathPoints{}; QVector m_cachedCurvesPath{}; - auto GetPoint(quint32 i, const QColor &color) -> VScaledEllipse *; - auto GetCurve(quint32 i, const QColor &color) -> VCurvePathItem *; + auto GetPoint(quint32 i, VColorRole role) -> VScaledEllipse *; + auto GetCurve(quint32 i, VColorRole role) -> VCurvePathItem *; void HideAllItems(); }; diff --git a/src/libs/vtools/visualization/path/vistoolpiecepath.cpp b/src/libs/vtools/visualization/path/vistoolpiecepath.cpp index bb4bde145..6f3775a66 100644 --- a/src/libs/vtools/visualization/path/vistoolpiecepath.cpp +++ b/src/libs/vtools/visualization/path/vistoolpiecepath.cpp @@ -27,19 +27,19 @@ *************************************************************************/ #include "vistoolpiecepath.h" -#include "../vwidgets/vsimplepoint.h" #include "../vgeometry/vpointf.h" -#include "../vwidgets/scalesceneitems.h" -#include "../vmisc/compatibility.h" #include "../vlayout/vlayoutpoint.h" +#include "../vmisc/compatibility.h" +#include "../vwidgets/scalesceneitems.h" +#include "../vwidgets/vsimplepoint.h" #include //--------------------------------------------------------------------------------------------------------------------- VisToolPiecePath::VisToolPiecePath(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) + : VisPath(data, parent) { - m_line = InitItem(Color(VColor::SupportColor), this); + m_line = InitItem(VColorRole::VisSupportColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -49,14 +49,13 @@ void VisToolPiecePath::RefreshGeometry() if (m_path.CountNodes() > 0) { - DrawPath(this, m_path.PainterPath(GetData(), m_cuttingPath), Color(VColor::MainColor), m_path.GetPenType(), - Qt::RoundCap); + DrawPath(this, m_path.PainterPath(GetData(), m_cuttingPath), m_path.GetPenType(), Qt::RoundCap); const QVector nodes = m_path.PathNodePoints(GetData()); for (int i = 0; i < nodes.size(); ++i) { - VSimplePoint *point = GetPoint(static_cast(i), Color(VColor::SupportColor)); + VSimplePoint *point = GetPoint(static_cast(i), VColorRole::VisSupportColor); point->RefreshPointGeometry(nodes.at(i)); // Keep first, you can hide only objects those have shape point->SetOnlyPoint(GetMode() == Mode::Creation); point->setVisible(true); @@ -67,7 +66,7 @@ void VisToolPiecePath::RefreshGeometry() const QVector points = m_path.PathPoints(GetData()); if (not points.empty()) { - DrawLine(m_line, QLineF(ConstLast(points), ScenePos()), Color(VColor::SupportColor), Qt::DashLine); + DrawLine(m_line, QLineF(ConstLast(points), ScenePos()), Qt::DashLine); } } } @@ -87,9 +86,9 @@ void VisToolPiecePath::mousePressEvent(QGraphicsSceneMouseEvent *event) } //--------------------------------------------------------------------------------------------------------------------- -auto VisToolPiecePath::GetPoint(quint32 i, const QColor &color) -> VSimplePoint * +auto VisToolPiecePath::GetPoint(quint32 i, VColorRole role) -> VSimplePoint * { - return VisPath::GetPoint(m_points, i, color); + return VisPath::GetPoint(m_points, i, role); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/visualization/path/vistoolpiecepath.h b/src/libs/vtools/visualization/path/vistoolpiecepath.h index 368c58771..76d23b4d8 100644 --- a/src/libs/vtools/visualization/path/vistoolpiecepath.h +++ b/src/libs/vtools/visualization/path/vistoolpiecepath.h @@ -65,7 +65,7 @@ private: QVector m_cuttingPath{}; - auto GetPoint(quint32 i, const QColor &color) -> VSimplePoint *; + auto GetPoint(quint32 i, VColorRole role) -> VSimplePoint *; void HideAllItems(); }; diff --git a/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp b/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp index a57e39d9a..e3851d84a 100644 --- a/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp +++ b/src/libs/vtools/visualization/path/vistoolpointofintersectioncurves.cpp @@ -32,22 +32,26 @@ #include #include #include -#include #include #include "../../tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.h" +#include "../../visualization/path/vispath.h" #include "../vgeometry/vabstractcurve.h" +#include "../visualization.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/scalesceneitems.h" -#include "../visualization.h" -#include "../../visualization/path/vispath.h" //--------------------------------------------------------------------------------------------------------------------- VisToolPointOfIntersectionCurves::VisToolPointOfIntersectionCurves(const VContainer *data, QGraphicsItem *parent) - :VisPath(data, parent) + : VisPath(data, parent) { - m_visCurve2 = InitItem(Color(VColor::SupportColor), this); - m_point = InitPoint(Color(VColor::MainColor), this); + SetColorRole(VColorRole::VisSupportColor); + + m_visCurve2 = InitItem(VColorRole::VisSupportColor, this); + m_visCurve2->setFlag(QGraphicsItem::ItemStacksBehindParent, false); + m_point = InitPoint(VColorRole::VisMainColor, this); + m_point->setFlag(QGraphicsItem::ItemStacksBehindParent, false); + m_point->setZValue(1); } //--------------------------------------------------------------------------------------------------------------------- @@ -56,19 +60,17 @@ void VisToolPointOfIntersectionCurves::RefreshGeometry() if (m_curve1Id > NULL_ID) { auto curve1 = GetData()->GeometricObject(m_curve1Id); - DrawPath(this, curve1->GetPath(), curve1->DirectionArrows(), Color(VColor::SupportColor), Qt::SolidLine, - Qt::RoundCap); + DrawPath(this, curve1->GetPath(), curve1->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); if (m_curve2Id > NULL_ID) { auto curve2 = GetData()->GeometricObject(m_curve2Id); - DrawPath(m_visCurve2, curve2->GetPath(), curve2->DirectionArrows(), Color(VColor::SupportColor), - Qt::SolidLine, Qt::RoundCap); + DrawPath(m_visCurve2, curve2->GetPath(), curve2->DirectionArrows(), Qt::SolidLine, Qt::RoundCap); QPointF p; VToolPointOfIntersectionCurves::FindPoint(curve1->GetPoints(), curve2->GetPoints(), m_vCrossPoint, m_hCrossPoint, &p); - DrawPoint(m_point, p, Color(VColor::MainColor)); + DrawPoint(m_point, p); } } } diff --git a/src/libs/vtools/visualization/path/vistoolspline.cpp b/src/libs/vtools/visualization/path/vistoolspline.cpp index bc554c564..beede4bc6 100644 --- a/src/libs/vtools/visualization/path/vistoolspline.cpp +++ b/src/libs/vtools/visualization/path/vistoolspline.cpp @@ -31,20 +31,19 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcurve.h" #include "../vgeometry/vgeometrydef.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" -#include "../vpatterndb/vcontainer.h" -#include "../vwidgets/vcontrolpointspline.h" -#include "../vwidgets/scalesceneitems.h" -#include "../vwidgets/global.h" #include "../visualization.h" -#include "vispath.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/global.h" +#include "../vwidgets/scalesceneitems.h" +#include "../vwidgets/vcontrolpointspline.h" +#include "vispath.h" const int EMPTY_ANGLE = -1; @@ -52,18 +51,18 @@ namespace { inline auto TriggerRadius() -> qreal { - return ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5; -} + return ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5; } +} // namespace //--------------------------------------------------------------------------------------------------------------------- VisToolSpline::VisToolSpline(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent), - m_angle1(EMPTY_ANGLE), - m_angle2(EMPTY_ANGLE) + : VisPath(data, parent), + m_angle1(EMPTY_ANGLE), + m_angle2(EMPTY_ANGLE) { - m_point1 = InitPoint(Color(VColor::SupportColor), this); - m_point4 = InitPoint(Color(VColor::SupportColor), this); //-V656 + m_point1 = InitPoint(VColorRole::VisSupportColor, this); + m_point4 = InitPoint(VColorRole::VisSupportColor, this); //-V656 auto *controlPoint1 = new VControlPointSpline(1, SplinePointPosition::FirstPoint, this); controlPoint1->hide(); @@ -86,7 +85,7 @@ void VisToolSpline::RefreshGeometry() if (m_point1Id > NULL_ID) { const auto first = GetData()->GeometricObject(m_point1Id); - DrawPoint(m_point1, static_cast(*first), Color(VColor::SupportColor)); + DrawPoint(m_point1, static_cast(*first)); if (GetMode() == Mode::Creation) { @@ -97,12 +96,12 @@ void VisToolSpline::RefreshGeometry() { VSpline spline(*first, m_p2, ScenePos(), VPointF(ScenePos())); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, spline.GetPath(), LineStyle(), Qt::RoundCap); } else { const auto second = GetData()->GeometricObject(m_point4Id); - DrawPoint(m_point4, static_cast(*second), Color(VColor::SupportColor)); + DrawPoint(m_point4, static_cast(*second)); if (GetMode() == Mode::Creation) { @@ -113,14 +112,13 @@ void VisToolSpline::RefreshGeometry() { VSpline spline(*first, m_p2, m_p3, *second); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, spline.GetPath(), LineStyle(), Qt::RoundCap); } else { VSpline spline(*first, *second, m_angle1, m_angle2, m_kAsm1, m_kAsm2, m_kCurve); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), spline.DirectionArrows(), Color(VColor::MainColor), LineStyle(), - Qt::RoundCap); + DrawPath(this, spline.GetPath(), spline.DirectionArrows(), LineStyle(), Qt::RoundCap); SetToolTip(tr("Use %1 for sticking angle!").arg(VModifierKey::Shift())); emit ToolTip(CurrentToolTip()); } diff --git a/src/libs/vtools/visualization/path/vistoolsplinepath.cpp b/src/libs/vtools/visualization/path/vistoolsplinepath.cpp index be3821467..2a3c86801 100644 --- a/src/libs/vtools/visualization/path/vistoolsplinepath.cpp +++ b/src/libs/vtools/visualization/path/vistoolsplinepath.cpp @@ -32,7 +32,6 @@ #include #include #include -#include #include #include "../vgeometry/vabstractcurve.h" @@ -40,27 +39,27 @@ #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" #include "../vgeometry/vsplinepoint.h" -#include "../vpatterndb/vcontainer.h" -#include "../vwidgets/vcontrolpointspline.h" -#include "../vwidgets/scalesceneitems.h" -#include "../vwidgets/global.h" #include "../visualization.h" -#include "vispath.h" #include "../vmisc/vmodifierkey.h" +#include "../vpatterndb/vcontainer.h" +#include "../vwidgets/global.h" +#include "../vwidgets/scalesceneitems.h" +#include "../vwidgets/vcontrolpointspline.h" +#include "vispath.h" namespace { inline auto TriggerRadius() -> qreal { - return ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene()))*1.5; -} + return ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())) * 1.5; } +} // namespace //--------------------------------------------------------------------------------------------------------------------- VisToolSplinePath::VisToolSplinePath(const VContainer *data, QGraphicsItem *parent) - : VisPath(data, parent) + : VisPath(data, parent) { - m_newCurveSegment = InitItem(Color(VColor::MainColor), this); + m_newCurveSegment = InitItem(VColorRole::VisMainColor, this); } //--------------------------------------------------------------------------------------------------------------------- @@ -83,41 +82,41 @@ void VisToolSplinePath::RefreshGeometry() for (int i = 0; i < size; ++i) { VScaledEllipse *point = GetPoint(static_cast(i)); - DrawPoint(point, static_cast(pathPoints.at(i).P()), Color(VColor::SupportColor)); + DrawPoint(point, static_cast(pathPoints.at(i).P())); } if (GetMode() == Mode::Creation) { if (size > 1) { - for (vsizetype i = 1; i<=m_path.CountSubSpl(); ++i) + for (vsizetype i = 1; i <= m_path.CountSubSpl(); ++i) { const auto preLastPoint = (m_path.CountSubSpl() - 1) * 2; const auto lastPoint = preLastPoint + 1; VSpline spl = m_path.GetSpline(i); - m_ctrlPoints.at(preLastPoint)->RefreshCtrlPoint(i, SplinePointPosition::FirstPoint, - static_cast(spl.GetP2()), - static_cast(spl.GetP1())); + m_ctrlPoints.at(preLastPoint) + ->RefreshCtrlPoint(i, SplinePointPosition::FirstPoint, static_cast(spl.GetP2()), + static_cast(spl.GetP1())); m_ctrlPoints.at(lastPoint)->RefreshCtrlPoint(i, SplinePointPosition::LastPoint, static_cast(spl.GetP3()), static_cast(spl.GetP4())); } } - Creating(static_cast(pathPoints.at(size-1).P()), size); + Creating(static_cast(pathPoints.at(size - 1).P()), size); } if (size == 1) { VSpline spline(pathPoints.at(0).P(), m_ctrlPoint, ScenePos(), VPointF(ScenePos())); spline.SetApproximationScale(ApproximationScale()); - DrawPath(this, spline.GetPath(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, spline.GetPath(), LineStyle(), Qt::RoundCap); } else if (size > 1) { - DrawPath(this, m_path.GetPath(), m_path.DirectionArrows(), Color(VColor::MainColor), LineStyle(), Qt::RoundCap); + DrawPath(this, m_path.GetPath(), m_path.DirectionArrows(), LineStyle(), Qt::RoundCap); } if (m_path.CountPoints() < 3) @@ -127,7 +126,8 @@ void VisToolSplinePath::RefreshGeometry() else { SetToolTip(tr("Curved path: select three or more points, " - "%1 - finish creation").arg(VModifierKey::EnterKey())); + "%1 - finish creation") + .arg(VModifierKey::EnterKey())); } if (GetMode() == Mode::Show) { @@ -172,7 +172,7 @@ auto VisToolSplinePath::GetPoint(quint32 i) -> VScaledEllipse * m_pointSelected = false; - auto *point = InitPoint(Color(VColor::SupportColor), this); + auto *point = InitPoint(VColorRole::VisSupportColor, this); m_points.append(point); if (m_points.size() == 1) @@ -183,7 +183,7 @@ auto VisToolSplinePath::GetPoint(quint32 i) -> VScaledEllipse * } else { - auto *controlPoint1 = new VControlPointSpline(m_points.size()-1, SplinePointPosition::LastPoint, this); + auto *controlPoint1 = new VControlPointSpline(m_points.size() - 1, SplinePointPosition::LastPoint, this); controlPoint1->hide(); m_ctrlPoints.append(controlPoint1); @@ -201,7 +201,7 @@ void VisToolSplinePath::DragControlPoint(vsizetype lastPoint, vsizetype preLastP { if (not m_ctrlPoints.at(lastPoint)->isVisible()) { - //Radius of point circle, but little bigger. Need handle with hover sizes. + // Radius of point circle, but little bigger. Need handle with hover sizes. if (QLineF(pSpl, m_ctrlPoint).length() > TriggerRadius()) { if (size == 1) @@ -220,8 +220,8 @@ void VisToolSplinePath::DragControlPoint(vsizetype lastPoint, vsizetype preLastP } } - QLineF ctrlLine (pSpl, ScenePos()); - ctrlLine.setAngle(ctrlLine.angle()+180); + QLineF ctrlLine(pSpl, ScenePos()); + ctrlLine.setAngle(ctrlLine.angle() + 180); if (size == 1) { @@ -229,7 +229,7 @@ void VisToolSplinePath::DragControlPoint(vsizetype lastPoint, vsizetype preLastP } else { - m_ctrlPoints.at(preLastPoint)->RefreshCtrlPoint(size-1, SplinePointPosition::LastPoint, ctrlLine.p2(), pSpl); + m_ctrlPoints.at(preLastPoint)->RefreshCtrlPoint(size - 1, SplinePointPosition::LastPoint, ctrlLine.p2(), pSpl); m_ctrlPoints.at(lastPoint)->RefreshCtrlPoint(size, SplinePointPosition::FirstPoint, m_ctrlPoint, pSpl); } @@ -244,35 +244,35 @@ void VisToolSplinePath::DragControlPoint(vsizetype lastPoint, vsizetype preLastP const VSpline spl = m_path.GetSpline(size - 1); VSpline preSpl(spl.GetP1(), static_cast(spl.GetP2()), ctrlLine.p2(), VPointF(pSpl)); - m_path[size-1].SetAngle2(spline.GetStartAngle(), spline.GetStartAngleFormula()); + m_path[size - 1].SetAngle2(spline.GetStartAngle(), spline.GetStartAngleFormula()); if (m_ctrlPoint != pSpl) { - m_path[size-1].SetLength1(preSpl.GetC2Length(), preSpl.GetC2LengthFormula()); - m_path[size-1].SetLength2(spline.GetC1Length(), spline.GetC1LengthFormula()); + m_path[size - 1].SetLength1(preSpl.GetC2Length(), preSpl.GetC2LengthFormula()); + m_path[size - 1].SetLength2(spline.GetC1Length(), spline.GetC1LengthFormula()); } else { - m_path[size-1].SetLength1(0, QChar('0')); - m_path[size-1].SetLength2(0, QChar('0')); + m_path[size - 1].SetLength1(0, QChar('0')); + m_path[size - 1].SetLength2(0, QChar('0')); } emit PathChanged(m_path); } - DrawPath(m_newCurveSegment, spline.GetPath(), Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(m_newCurveSegment, spline.GetPath(), Qt::SolidLine, Qt::RoundCap); } //--------------------------------------------------------------------------------------------------------------------- void VisToolSplinePath::NewCurveSegment(const VSpline &spline, const QPointF &pSpl, vsizetype size) { - m_path[size-1].SetAngle2(spline.GetStartAngle(), spline.GetStartAngleFormula()); + m_path[size - 1].SetAngle2(spline.GetStartAngle(), spline.GetStartAngleFormula()); if (m_ctrlPoint != pSpl) { - m_path[size-1].SetLength2(spline.GetC1Length(), spline.GetC1LengthFormula()); + m_path[size - 1].SetLength2(spline.GetC1Length(), spline.GetC1LengthFormula()); } else { - m_path[size-1].SetLength2(0, QChar('0')); + m_path[size - 1].SetLength2(0, QChar('0')); } emit PathChanged(m_path); } @@ -302,6 +302,6 @@ void VisToolSplinePath::Creating(const QPointF &pSpl, vsizetype size) VSpline spline(VPointF(pSpl), m_ctrlPoint, ScenePos(), VPointF(ScenePos())); NewCurveSegment(spline, pSpl, size); - DrawPath(m_newCurveSegment, spline.GetPath(), Color(VColor::MainColor), Qt::SolidLine, Qt::RoundCap); + DrawPath(m_newCurveSegment, spline.GetPath(), Qt::SolidLine, Qt::RoundCap); } } diff --git a/src/libs/vtools/visualization/visualization.cpp b/src/libs/vtools/visualization/visualization.cpp index 76b07809f..38a570fe6 100644 --- a/src/libs/vtools/visualization/visualization.cpp +++ b/src/libs/vtools/visualization/visualization.cpp @@ -28,7 +28,6 @@ #include "visualization.h" -#include #include #include #include @@ -41,20 +40,21 @@ #include #include #include -#include +#include #include #include -#include +#include -#include "../vpatterndb/calculator.h" -#include "../vpatterndb/vtranslatevars.h" #include "../qmuparser/qmuparsererror.h" +#include "../vmisc/theme/themeDef.h" #include "../vmisc/vcommonsettings.h" +#include "../vpatterndb/calculator.h" #include "../vpatterndb/vcontainer.h" -#include "../vwidgets/vmaingraphicsscene.h" -#include "../vwidgets/vcurvepathitem.h" -#include "../vwidgets/scalesceneitems.h" +#include "../vpatterndb/vtranslatevars.h" #include "../vwidgets/global.h" +#include "../vwidgets/scalesceneitems.h" +#include "../vwidgets/vcurvepathitem.h" +#include "../vwidgets/vmaingraphicsscene.h" QT_WARNING_PUSH QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes") @@ -67,16 +67,11 @@ QT_WARNING_POP namespace { //--------------------------------------------------------------------------------------------------------------------- -auto InitPointItem(const QColor &color, QGraphicsItem *parent, qreal z = 0) -> VScaledEllipse * +auto InitPointItem(VColorRole role, QGraphicsItem *parent, qreal z = 0) -> VScaledEllipse * { - auto *point = new VScaledEllipse(parent); + auto *point = new VScaledEllipse(role, parent); point->setZValue(1); point->setBrush(QBrush(Qt::NoBrush)); - - QPen visPen = point->pen(); - visPen.setColor(color); - - point->setPen(visPen); point->setRect(PointRect(ScaledRadius(SceneScale(VAbstractValApplication::VApp()->getCurrentScene())))); point->setPos(QPointF()); point->setFlags(QGraphicsItem::ItemStacksBehindParent); @@ -86,26 +81,22 @@ auto InitPointItem(const QColor &color, QGraphicsItem *parent, qreal z = 0) -> V } //--------------------------------------------------------------------------------------------------------------------- -auto InitCurveItem(const QColor &color, QGraphicsItem *parent, qreal z = 0) -> VCurvePathItem * +auto InitCurveItem(VColorRole role, QGraphicsItem *parent, qreal z = 0) -> VCurvePathItem * { - auto *curve = new VCurvePathItem(parent); + auto *curve = new VCurvePathItem(role, parent); curve->setBrush(QBrush(Qt::NoBrush)); - - QPen visPen = curve->pen(); - visPen.setColor(color); - curve->setPen(visPen); - curve->setFlags(QGraphicsItem::ItemStacksBehindParent); curve->setZValue(z); curve->setVisible(false); return curve; } -} // namespace +} // namespace //--------------------------------------------------------------------------------------------------------------------- Visualization::Visualization(const VContainer *data) - :m_data(data) -{} + : m_data(data) +{ +} //--------------------------------------------------------------------------------------------------------------------- void Visualization::SetLineStyle(const Qt::PenStyle &value) @@ -114,14 +105,6 @@ void Visualization::SetLineStyle(const Qt::PenStyle &value) InitPen(); } -//--------------------------------------------------------------------------------------------------------------------- -// cppcheck-suppress unusedFunction -void Visualization::SetMainColor(const QColor &value) -{ - SetColor(VColor::MainColor, value); - InitPen(); -} - //--------------------------------------------------------------------------------------------------------------------- void Visualization::StartVisualMode() { @@ -143,23 +126,23 @@ void Visualization::MousePos(const QPointF &scenePos) } //--------------------------------------------------------------------------------------------------------------------- -auto Visualization::InitPoint(const QColor &color, QGraphicsItem *parent, qreal z) -> VScaledEllipse * +auto Visualization::InitPoint(VColorRole role, QGraphicsItem *parent, qreal z) -> VScaledEllipse * { - return InitPointItem(color, parent, z); + return InitPointItem(role, parent, z); } //--------------------------------------------------------------------------------------------------------------------- auto Visualization::FindLengthFromUser(const QString &expression, - const QHash > *vars, - bool fromUser) -> qreal + const QHash> *vars, bool fromUser) + -> qreal { return VAbstractValApplication::VApp()->toPixel(FindValFromUser(expression, vars, fromUser)); } //--------------------------------------------------------------------------------------------------------------------- auto Visualization::FindValFromUser(const QString &expression, - const QHash > *vars, - bool fromUser) -> qreal + const QHash> *vars, bool fromUser) + -> qreal { qreal val = 0; if (expression.isEmpty()) @@ -174,8 +157,8 @@ auto Visualization::FindValFromUser(const QString &expression, QString formula = expression; if (fromUser) { - formula = VAbstractApplication::VApp()->TrVars() - ->FormulaFromUser(formula, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + formula = VAbstractApplication::VApp()->TrVars()->FormulaFromUser( + formula, VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } QScopedPointer cal(new Calculator()); @@ -191,7 +174,7 @@ auto Visualization::FindValFromUser(const QString &expression, val = 0; qDebug() << "\nMath parser error:\n" << "--------------------------------------\n" - << "Message: " << e.GetMsg() << "\n" + << "Message: " << e.GetMsg() << "\n" << "Expression: " << e.GetExpr() << "\n" << "--------------------------------------"; } @@ -205,10 +188,10 @@ auto Visualization::CorrectAngle(qreal angle) -> qreal qreal ang = angle; if (angle > 360) { - ang = angle - 360.0 * qFloor(angle/360); + ang = angle - 360.0 * qFloor(angle / 360); } - return (qFloor(qAbs(ang)/5.)) * 5; + return (qFloor(qAbs(ang) / 5.)) * 5; } //--------------------------------------------------------------------------------------------------------------------- @@ -221,27 +204,25 @@ void Visualization::RefreshToolTip() const } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::DrawPoint(QGraphicsEllipseItem *point, const QPointF &pos, const QColor &color, Qt::PenStyle style) +void Visualization::DrawPoint(QGraphicsEllipseItem *point, const QPointF &pos, Qt::PenStyle style) { - SCASSERT (point != nullptr) + SCASSERT(point != nullptr) point->setPos(pos); QPen visPen = point->pen(); - visPen.setColor(color); visPen.setStyle(style); - point->setPen(visPen); + point->setVisible(true); } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, Qt::PenStyle style) +void Visualization::DrawLine(VScaledLine *lineItem, const QLineF &line, Qt::PenStyle style) { - SCASSERT (lineItem != nullptr) + SCASSERT(lineItem != nullptr) QPen visPen = lineItem->pen(); - visPen.setColor(color); visPen.setStyle(not line.isNull() ? style : Qt::NoPen); lineItem->setPen(visPen); @@ -254,54 +235,52 @@ void Visualization::DrawLine(VScaledLine *lineItem, const QLineF &line, const QC } //--------------------------------------------------------------------------------------------------------------------- -void Visualization::DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, const QColor &color, - Qt::PenStyle style, Qt::PenCapStyle cap) +void Visualization::DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, Qt::PenStyle style, + Qt::PenCapStyle cap) { - DrawPath(pathItem, path, QVector(), color, style, cap); + DrawPath(pathItem, path, QVector(), style, cap); } //--------------------------------------------------------------------------------------------------------------------- void Visualization::DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, - const QVector &directionArrows, const QColor &color, Qt::PenStyle style, - Qt::PenCapStyle cap) + const QVector &directionArrows, Qt::PenStyle style, Qt::PenCapStyle cap) { - SCASSERT (pathItem != nullptr) + SCASSERT(pathItem != nullptr) QPen visPen = pathItem->pen(); - visPen.setColor(color); visPen.setStyle(style); visPen.setCapStyle(cap); - pathItem->setPen(visPen); + pathItem->setPath(path); pathItem->SetDirectionArrows(directionArrows); pathItem->setVisible(true); } //--------------------------------------------------------------------------------------------------------------------- -auto Visualization::GetPointItem(QVector &points, quint32 i, const QColor &color, - QGraphicsItem *parent) -> VScaledEllipse * +auto Visualization::GetPointItem(QVector &points, quint32 i, VColorRole role, QGraphicsItem *parent) + -> VScaledEllipse * { if (not points.isEmpty() && static_cast(points.size() - 1) >= i) { return points.at(static_cast(i)); } - auto *point = InitPointItem(color, parent); + auto *point = InitPointItem(role, parent); points.append(point); return point; } //--------------------------------------------------------------------------------------------------------------------- -auto Visualization::GetCurveItem(QVector &curves, quint32 i, const QColor &color, - QGraphicsItem *parent) -> VCurvePathItem * +auto Visualization::GetCurveItem(QVector &curves, quint32 i, VColorRole role, QGraphicsItem *parent) + -> VCurvePathItem * { if (not curves.isEmpty() && static_cast(curves.size() - 1) >= i) { return curves.at(static_cast(i)); } - auto *point = InitCurveItem(color, parent); + auto *point = InitCurveItem(role, parent); curves.append(point); return point; } @@ -309,26 +288,14 @@ auto Visualization::GetCurveItem(QVector &curves, quint32 i, c //--------------------------------------------------------------------------------------------------------------------- auto Visualization::LengthToUser(qreal value) -> QString { - return VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(QString::number(VAbstractValApplication::VApp()->fromPixel(value)), - VAbstractApplication::VApp()->Settings()->GetOsSeparator()); + return VAbstractApplication::VApp()->TrVars()->FormulaToUser( + QString::number(VAbstractValApplication::VApp()->fromPixel(value)), + VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- auto Visualization::AngleToUser(qreal value) -> QString { - return VAbstractApplication::VApp()->TrVars() - ->FormulaToUser(QString::number(value), VAbstractApplication::VApp()->Settings()->GetOsSeparator()); -} - -//--------------------------------------------------------------------------------------------------------------------- -void Visualization::SetColor(VColor type, const QColor& color) -{ - m_colorShema.insert(type, color); -} - -//--------------------------------------------------------------------------------------------------------------------- -auto Visualization::Color(VColor type) const -> QColor -{ - return m_colorShema.value(type, Qt::black); + return VAbstractApplication::VApp()->TrVars()->FormulaToUser( + QString::number(value), VAbstractApplication::VApp()->Settings()->GetOsSeparator()); } diff --git a/src/libs/vtools/visualization/visualization.h b/src/libs/vtools/visualization/visualization.h index ef627b05e..b6a41e39d 100644 --- a/src/libs/vtools/visualization/visualization.h +++ b/src/libs/vtools/visualization/visualization.h @@ -34,7 +34,6 @@ #include #include - #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include #endif @@ -58,14 +57,6 @@ enum class Mode : qint8 Show }; -enum class VColor : qint8 -{ - MainColor, - SupportColor, - SupportColor2, - SupportColor3 -}; - #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) Q_DECL_CONST_FUNCTION inline auto qHash(VColor key, uint seed = 0) noexcept -> uint { @@ -109,8 +100,10 @@ public: auto CurrentToolTip() const -> QString; void RefreshToolTip() const; + signals: void ToolTip(const QString &toolTip) const; // clazy:exclude=const-signal-or-slot + public slots: void MousePos(const QPointF &scenePos); @@ -118,38 +111,30 @@ protected: virtual void InitPen() = 0; virtual void AddOnScene() = 0; - static auto InitPoint(const QColor &color, QGraphicsItem *parent, qreal z = 0) -> VScaledEllipse *; - static void DrawPoint(QGraphicsEllipseItem *point, const QPointF &pos, const QColor &color, - Qt::PenStyle style = Qt::SolidLine); - virtual void DrawLine(VScaledLine *lineItem, const QLineF &line, const QColor &color, - Qt::PenStyle style = Qt::SolidLine); - static void DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, const QColor &color, - Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap); + static auto InitPoint(VColorRole role, QGraphicsItem *parent, qreal z = 0) -> VScaledEllipse *; + static void DrawPoint(QGraphicsEllipseItem *point, const QPointF &pos, Qt::PenStyle style = Qt::SolidLine); + virtual void DrawLine(VScaledLine *lineItem, const QLineF &line, Qt::PenStyle style = Qt::SolidLine); + static void DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, Qt::PenStyle style = Qt::SolidLine, + Qt::PenCapStyle cap = Qt::SquareCap); static void DrawPath(VCurvePathItem *pathItem, const QPainterPath &path, - const QVector &directionArrows, const QColor &color, - Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap); + const QVector &directionArrows, Qt::PenStyle style = Qt::SolidLine, + Qt::PenCapStyle cap = Qt::SquareCap); template void AddItem(Item *item); - template auto InitItem(const QColor &color, QGraphicsItem *parent) -> Item *; + template auto InitItem(VColorRole role, QGraphicsItem *parent) -> Item *; - static auto GetPointItem(QVector &points, quint32 i, const QColor &color, QGraphicsItem *parent) + static auto GetPointItem(QVector &points, quint32 i, VColorRole role, QGraphicsItem *parent) -> VScaledEllipse *; - static auto GetCurveItem(QVector &curves, quint32 i, const QColor &color, QGraphicsItem *parent) + static auto GetCurveItem(QVector &curves, quint32 i, VColorRole role, QGraphicsItem *parent) -> VCurvePathItem *; static auto LengthToUser(qreal value) -> QString; static auto AngleToUser(qreal value) -> QString; - void SetColor(VColor type, const QColor &color); - - auto Color(VColor type) const -> QColor; - void SetScenePos(QPointF pos); auto ScenePos() const -> QPointF; - void SetMainColor(const QColor &value); - void SetToolTip(const QString &tooltip); void StartVisualMode(); @@ -162,7 +147,6 @@ private: Qt::PenStyle m_lineStyle{Qt::SolidLine}; QString m_toolTip{}; Mode m_mode{Mode::Creation}; - QHash m_colorShema{{VColor::MainColor, Qt::red}, {VColor::SupportColor, Qt::magenta}}; }; // cppcheck-suppress unknownMacro @@ -180,14 +164,9 @@ template inline void Visualization::AddItem(Item *item) } //--------------------------------------------------------------------------------------------------------------------- -template inline auto Visualization::InitItem(const QColor &color, QGraphicsItem *parent) -> Item * +template inline auto Visualization::InitItem(VColorRole role, QGraphicsItem *parent) -> Item * { - Item *item = new Item(parent); - - QPen visPen = item->pen(); - visPen.setColor(color); - - item->setPen(visPen); + Item *item = new Item(role, parent); item->setZValue(1); item->setFlags(QGraphicsItem::ItemStacksBehindParent); item->setVisible(false); diff --git a/src/libs/vwidgets/global.cpp b/src/libs/vwidgets/global.cpp index 9e86b25b0..03bebb2e4 100644 --- a/src/libs/vwidgets/global.cpp +++ b/src/libs/vwidgets/global.cpp @@ -63,19 +63,6 @@ auto SceneScale(QGraphicsScene *scene) -> qreal return scale; } -//--------------------------------------------------------------------------------------------------------------------- -auto CorrectColor(const QGraphicsItem *item, const QColor &color) -> QColor -{ - SCASSERT(item != nullptr) - - if (item->isEnabled()) - { - return color; - } - - return Qt::gray; -} - //--------------------------------------------------------------------------------------------------------------------- auto PointRect(qreal radius) -> QRectF { diff --git a/src/libs/vwidgets/global.h b/src/libs/vwidgets/global.h index 7ead62263..d4c8f3a0d 100644 --- a/src/libs/vwidgets/global.h +++ b/src/libs/vwidgets/global.h @@ -48,8 +48,6 @@ auto IsSelectedByReleaseEvent(QGraphicsItem *item, QGraphicsSceneMouseEvent *eve auto SceneScale(QGraphicsScene *scene) -> qreal; -auto CorrectColor(const QGraphicsItem *item, const QColor &color) -> QColor; - auto PointRect(qreal radius) -> QRectF; auto ScaledRadius(qreal scale) -> qreal; void ScaleCircleSize(QGraphicsEllipseItem *item, qreal scale); diff --git a/src/libs/vwidgets/scalesceneitems.cpp b/src/libs/vwidgets/scalesceneitems.cpp index 4bc9888c2..dd6abd7a2 100644 --- a/src/libs/vwidgets/scalesceneitems.cpp +++ b/src/libs/vwidgets/scalesceneitems.cpp @@ -27,38 +27,51 @@ *************************************************************************/ #include "scalesceneitems.h" -#include "global.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vmisc/vabstractapplication.h" +#include "global.h" #include //--------------------------------------------------------------------------------------------------------------------- -VScaledLine::VScaledLine(QGraphicsItem *parent) - : QGraphicsLineItem(parent) -{} +VScaledLine::VScaledLine(VColorRole role, QGraphicsItem *parent) + : QGraphicsLineItem(parent), + m_role(role) +{ +} //--------------------------------------------------------------------------------------------------------------------- -VScaledLine::VScaledLine(const QLineF &line, QGraphicsItem *parent) - : QGraphicsLineItem(line, parent) -{} +VScaledLine::VScaledLine(const QLineF &line, VColorRole role, QGraphicsItem *parent) + : QGraphicsLineItem(line, parent), + m_role(role) +{ +} //--------------------------------------------------------------------------------------------------------------------- void VScaledLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { QPen lPen = pen(); + + if (m_role != VColorRole::CustomColor) + { + lPen.setColor(VSceneStylesheet::CorrectToolColor(this, VSceneStylesheet::Color(m_role))); + } + const qreal width = ScaleWidth(m_isBoldLine ? VAbstractApplication::VApp()->Settings()->WidthMainLine() : VAbstractApplication::VApp()->Settings()->WidthHairLine(), SceneScale(scene())); - lPen.setWidthF(qRound(width*100.)/100.); + lPen.setWidthF(qRound(width * 100.) / 100.); setPen(lPen); PaintWithFixItemHighlightSelected(this, painter, option, widget); } //--------------------------------------------------------------------------------------------------------------------- -VScaledEllipse::VScaledEllipse(QGraphicsItem *parent) - : QGraphicsEllipseItem(parent) -{} +VScaledEllipse::VScaledEllipse(VColorRole role, QGraphicsItem *parent) + : QGraphicsEllipseItem(parent), + m_role(role) +{ +} //--------------------------------------------------------------------------------------------------------------------- void VScaledEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) @@ -67,6 +80,12 @@ void VScaledEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *op const qreal width = ScaleWidth(VAbstractApplication::VApp()->Settings()->WidthMainLine(), scale); QPen visPen = pen(); + + if (m_role != VColorRole::CustomColor) + { + visPen.setColor(VSceneStylesheet::Color(m_role)); + } + visPen.setWidthF(width); setPen(visPen); diff --git a/src/libs/vwidgets/scalesceneitems.h b/src/libs/vwidgets/scalesceneitems.h index b483fd112..32c42f710 100644 --- a/src/libs/vwidgets/scalesceneitems.h +++ b/src/libs/vwidgets/scalesceneitems.h @@ -32,28 +32,48 @@ #include #include "../vmisc/def.h" +#include "../vmisc/theme/themeDef.h" class VScaledLine : public QGraphicsLineItem { public: - explicit VScaledLine(QGraphicsItem * parent = nullptr); - explicit VScaledLine(const QLineF &line, QGraphicsItem * parent = nullptr); + explicit VScaledLine(VColorRole role, QGraphicsItem *parent = nullptr); + VScaledLine(const QLineF &line, VColorRole role, QGraphicsItem *parent = nullptr); ~VScaledLine() override = default; - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ScaledLine)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ScaledLine) + }; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; auto IsBoldLine() const -> bool; void SetBoldLine(bool bold); + auto GetColorRole() const -> VColorRole; + void SetColorRole(VColorRole role); + private: Q_DISABLE_COPY_MOVE(VScaledLine) // NOLINT bool m_isBoldLine{true}; + VColorRole m_role; }; +//--------------------------------------------------------------------------------------------------------------------- +inline auto VScaledLine::GetColorRole() const -> VColorRole +{ + return m_role; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VScaledLine::SetColorRole(VColorRole role) +{ + m_role = role; +} + //--------------------------------------------------------------------------------------------------------------------- inline auto VScaledLine::IsBoldLine() const -> bool { @@ -69,13 +89,17 @@ inline void VScaledLine::SetBoldLine(bool bold) class VScaledEllipse : public QGraphicsEllipseItem { public: - explicit VScaledEllipse(QGraphicsItem * parent = nullptr); + explicit VScaledEllipse(VColorRole role, QGraphicsItem *parent = nullptr); ~VScaledEllipse() override = default; - auto type() const -> int override {return Type;} - enum {Type = UserType + static_cast(Vis::ScaledEllipse)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ScaledEllipse) + }; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; + auto PointMode() const -> bool; void SetPointMode(bool newPointMode); @@ -83,6 +107,7 @@ private: Q_DISABLE_COPY_MOVE(VScaledEllipse) // NOLINT bool m_pointMode{true}; + VColorRole m_role; }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vwidgets/vabstractsimple.h b/src/libs/vwidgets/vabstractsimple.h index 26ced9722..847530bb6 100644 --- a/src/libs/vwidgets/vabstractsimple.h +++ b/src/libs/vwidgets/vabstractsimple.h @@ -34,18 +34,18 @@ #include #include #include -#include #include -#include "../ifc/ifcdef.h" #include "../vgeometry/vgeometrydef.h" #include "../vmisc/def.h" +#include "../vmisc/typedef.h" class QGraphicsSceneContextMenuEvent; class VAbstractSimple : public QObject { Q_OBJECT // NOLINT + public: VAbstractSimple(quint32 id, QObject *parent = nullptr); virtual ~VAbstractSimple() = default; @@ -53,10 +53,10 @@ public: virtual void ToolSelectionType(const SelectionType &type); auto GetType() const -> GOType; - void SetType(const GOType &value); + void SetType(const GOType &value); signals: - void ShowContextMenu(QGraphicsSceneContextMenuEvent * event, quint32 id = NULL_ID); + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id = NULL_ID); void Delete(); protected: @@ -65,7 +65,7 @@ protected: SelectionType selectionType; - GOType type; + GOType type; private: Q_DISABLE_COPY_MOVE(VAbstractSimple) // NOLINT diff --git a/src/libs/vwidgets/vcontrolpointspline.cpp b/src/libs/vwidgets/vcontrolpointspline.cpp index 6473f0129..5d3920eeb 100644 --- a/src/libs/vwidgets/vcontrolpointspline.cpp +++ b/src/libs/vwidgets/vcontrolpointspline.cpp @@ -41,26 +41,23 @@ #include #include #include -#include -#include "../vwidgets/global.h" #include "../vgeometry/vgobject.h" -#include "../vmisc/vabstractapplication.h" #include "../vmisc/literals.h" -#include "vmaingraphicsscene.h" -#include "vmaingraphicsview.h" -#include "vgraphicssimpletextitem.h" +#include "../vmisc/theme/themeDef.h" +#include "../vwidgets/global.h" #include "scalesceneitems.h" +#include "vmaingraphicsview.h" //--------------------------------------------------------------------------------------------------------------------- VControlPointSpline::VControlPointSpline(const vsizetype &indexSpline, SplinePointPosition position, QGraphicsItem *parent) - : VScenePoint(parent), - controlLine(nullptr), - indexSpline(indexSpline), - position(position), - freeAngle(true), - freeLength(true) + : VScenePoint(VColorRole::ControlPointColor, parent), + controlLine(nullptr), + indexSpline(indexSpline), + position(position), + freeAngle(true), + freeLength(true) { Init(); } @@ -74,14 +71,14 @@ VControlPointSpline::VControlPointSpline(const vsizetype &indexSpline, SplinePoi * @param parent parent object. */ VControlPointSpline::VControlPointSpline(const vsizetype &indexSpline, SplinePointPosition position, - const QPointF &controlPoint, bool freeAngle, - bool freeLength, QGraphicsItem *parent) - : VScenePoint(parent), - controlLine(nullptr), - indexSpline(indexSpline), - position(position), - freeAngle(freeAngle), - freeLength(freeLength) + const QPointF &controlPoint, bool freeAngle, bool freeLength, + QGraphicsItem *parent) + : VScenePoint(VColorRole::ControlPointColor, parent), + controlLine(nullptr), + indexSpline(indexSpline), + position(position), + freeAngle(freeAngle), + freeLength(freeLength) { Init(); @@ -96,13 +93,9 @@ VControlPointSpline::VControlPointSpline(const vsizetype &indexSpline, SplinePoi //--------------------------------------------------------------------------------------------------------------------- void VControlPointSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - QPen lPen = controlLine->pen(); - lPen.setColor(CorrectColor(controlLine, Qt::black)); - controlLine->setPen(lPen); - QPointF p1, p2; VGObject::LineIntersectCircle(QPointF(), ScaledRadius(SceneScale(scene())), - QLineF( QPointF(), controlLine->line().p1()), p1, p2); + QLineF(QPointF(), controlLine->line().p1()), p1, p2); QLineF line(controlLine->line().p1(), p1); controlLine->setLine(line); @@ -140,8 +133,8 @@ auto VControlPointSpline::itemChange(QGraphicsItem::GraphicsItemChange change, c { const QPointF splPoint = controlLine->line().p1() + pos(); - QLineF newLine(splPoint, value.toPointF());// value - new position. - QLineF oldLine(splPoint, pos());// pos() - old position. + QLineF newLine(splPoint, value.toPointF()); // value - new position. + QLineF oldLine(splPoint, pos()); // pos() - old position. if (not freeAngle) { @@ -174,7 +167,7 @@ auto VControlPointSpline::itemChange(QGraphicsItem::GraphicsItemChange change, c const QList viewList = scene()->views(); if (not viewList.isEmpty()) { - if (VMainGraphicsView *view = qobject_cast(viewList.at(0))) + if (auto *view = qobject_cast(viewList.at(0))) { view->EnsureItemVisibleWithDelay(this, VMainGraphicsView::scrollDelay); } @@ -205,7 +198,7 @@ void VControlPointSpline::mousePressEvent(QGraphicsSceneMouseEvent *event) } // Somehow clicking on notselectable object do not clean previous selections. - if (not (flags() & ItemIsSelectable) && scene()) + if (not(flags() & ItemIsSelectable) && scene()) { scene()->clearSelection(); } @@ -236,28 +229,27 @@ void VControlPointSpline::contextMenuEvent(QGraphicsSceneContextMenuEvent *event //--------------------------------------------------------------------------------------------------------------------- void VControlPointSpline::Init() { - m_baseColor = Qt::red; SetOnlyPoint(true); this->setBrush(QBrush(Qt::NoBrush)); this->setZValue(100); - controlLine = new VScaledLine(this); + controlLine = new VScaledLine(VColorRole::ControlLineColor, this); controlLine->SetBoldLine(false); - //controlLine->setFlag(QGraphicsItem::ItemStacksBehindParent, true); + // controlLine->setFlag(QGraphicsItem::ItemStacksBehindParent, true); controlLine->setVisible(false); } //--------------------------------------------------------------------------------------------------------------------- void VControlPointSpline::SetCtrlLine(const QPointF &controlPoint, const QPointF &splinePoint) { - QLineF circleLine (QPointF(), splinePoint-controlPoint); + QLineF circleLine(QPointF(), splinePoint - controlPoint); const qreal radius = ScaledRadius(SceneScale(scene())); if (circleLine.length() > radius) { QPointF p1, p2; VGObject::LineIntersectCircle(QPointF(), radius, circleLine, p1, p2); - QLineF line(splinePoint-controlPoint, p1); + QLineF line(splinePoint - controlPoint, p1); controlLine->setFlag(QGraphicsItem::ItemSendsGeometryChanges, false); controlLine->setLine(line); controlLine->setVisible(not line.isNull()); diff --git a/src/libs/vwidgets/vcontrolpointspline.h b/src/libs/vwidgets/vcontrolpointspline.h index 19c2b222a..e358bf219 100644 --- a/src/libs/vwidgets/vcontrolpointspline.h +++ b/src/libs/vwidgets/vcontrolpointspline.h @@ -38,10 +38,11 @@ #include #include "../vgeometry/vgeometrydef.h" -#include "../vgeometry/vsplinepath.h" #include "../vmisc/def.h" #include "vscenepoint.h" +class VScaledLine; + /** * @brief The VControlPointSpline class control spline point. */ @@ -53,15 +54,15 @@ public: VControlPointSpline(const vsizetype &indexSpline, SplinePointPosition position, QGraphicsItem *parent = nullptr); VControlPointSpline(const vsizetype &indexSpline, SplinePointPosition position, const QPointF &controlPoint, bool freeAngle, bool freeLength, QGraphicsItem *parent = nullptr); - virtual ~VControlPointSpline() = default; + ~VControlPointSpline() override = default; - virtual auto type() const -> int override { return Type; } + auto type() const -> int override { return Type; } enum { Type = UserType + static_cast(Vis::ControlPointSpline) }; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; signals: /** * @brief ControlPointChangePosition emit when control point change position. @@ -86,11 +87,11 @@ protected: /** @brief controlLine pointer to line control point. */ VScaledLine *controlLine; - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; - virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; private: Q_DISABLE_COPY_MOVE(VControlPointSpline) // NOLINT diff --git a/src/libs/vwidgets/vcurvepathitem.cpp b/src/libs/vwidgets/vcurvepathitem.cpp index 7edacfa18..c50be5658 100644 --- a/src/libs/vwidgets/vcurvepathitem.cpp +++ b/src/libs/vwidgets/vcurvepathitem.cpp @@ -27,19 +27,20 @@ *************************************************************************/ #include "vcurvepathitem.h" -#include "../vwidgets/global.h" #include "../vgeometry/vabstractcurve.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vmisc/vabstractapplication.h" +#include "global.h" #include //--------------------------------------------------------------------------------------------------------------------- -VCurvePathItem::VCurvePathItem(QGraphicsItem *parent) - : QGraphicsPathItem(parent), - m_directionArrows(), - m_points(), - m_defaultWidth(VAbstractApplication::VApp()->Settings()->WidthMainLine()) -{} +VCurvePathItem::VCurvePathItem(VColorRole role, QGraphicsItem *parent) + : QGraphicsPathItem(parent), + m_defaultWidth(VAbstractApplication::VApp()->Settings()->WidthMainLine()), + m_role(role) +{ +} //--------------------------------------------------------------------------------------------------------------------- auto VCurvePathItem::shape() const -> QPainterPath @@ -48,10 +49,10 @@ auto VCurvePathItem::shape() const -> QPainterPath if (not m_points.isEmpty()) { - for (qint32 i = 0; i < m_points.count()-1; ++i) + for (qint32 i = 0; i < m_points.count() - 1; ++i) { itemPath.moveTo(m_points.at(i)); - itemPath.lineTo(m_points.at(i+1)); + itemPath.lineTo(m_points.at(i + 1)); } } else @@ -59,9 +60,9 @@ auto VCurvePathItem::shape() const -> QPainterPath itemPath = path(); } - const QPainterPath arrowsPath = VAbstractCurve::ShowDirection(m_directionArrows, - ScaleWidth(VAbstractCurve::LengthCurveDirectionArrow(), - SceneScale(scene()))); + const QPainterPath arrowsPath = VAbstractCurve::ShowDirection( + m_directionArrows, ScaleWidth(VAbstractCurve::LengthCurveDirectionArrow(), SceneScale(scene()))); + if (arrowsPath != QPainterPath()) { itemPath.addPath(arrowsPath); @@ -75,15 +76,20 @@ void VCurvePathItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op { ScalePenWidth(); - const QPainterPath arrowsPath = VAbstractCurve::ShowDirection(m_directionArrows, - ScaleWidth(VAbstractCurve::LengthCurveDirectionArrow(), - SceneScale(scene()))); + const QPainterPath arrowsPath = VAbstractCurve::ShowDirection( + m_directionArrows, ScaleWidth(VAbstractCurve::LengthCurveDirectionArrow(), SceneScale(scene()))); if (arrowsPath != QPainterPath()) { painter->save(); QPen arrowPen(pen()); + + if (m_role != VColorRole::CustomColor) + { + arrowPen.setColor(VSceneStylesheet::Color(m_role)); + } + arrowPen.setStyle(Qt::SolidLine); painter->setPen(arrowPen); @@ -97,7 +103,7 @@ void VCurvePathItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op } //--------------------------------------------------------------------------------------------------------------------- -void VCurvePathItem::SetDirectionArrows(const QVector > &arrows) +void VCurvePathItem::SetDirectionArrows(const QVector> &arrows) { m_directionArrows = arrows; } @@ -122,5 +128,10 @@ void VCurvePathItem::ScalePenWidth() QPen toolPen = pen(); toolPen.setWidthF(width); + if (m_role != VColorRole::CustomColor) + { + toolPen.setColor(VSceneStylesheet::Color(m_role)); + } + setPen(toolPen); } diff --git a/src/libs/vwidgets/vcurvepathitem.h b/src/libs/vwidgets/vcurvepathitem.h index 9b2aa2585..71d3371c5 100644 --- a/src/libs/vwidgets/vcurvepathitem.h +++ b/src/libs/vwidgets/vcurvepathitem.h @@ -33,6 +33,7 @@ #include #include "../vmisc/def.h" +#include "../vmisc/theme/themeDef.h" QT_WARNING_PUSH QT_WARNING_DISABLE_GCC("-Wsuggest-final-types") @@ -41,30 +42,50 @@ QT_WARNING_DISABLE_GCC("-Wsuggest-final-methods") class VCurvePathItem : public QGraphicsPathItem { public: - explicit VCurvePathItem(QGraphicsItem *parent = nullptr); - virtual ~VCurvePathItem() = default; + explicit VCurvePathItem(VColorRole role, QGraphicsItem *parent = nullptr); + ~VCurvePathItem() override = default; - virtual auto shape() const -> QPainterPath override; + auto shape() const -> QPainterPath override; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Vis::CurvePathItem)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::CurvePathItem) + }; void SetDirectionArrows(const QVector> &arrows); void SetPoints(const QVector &points); void SetWidth(qreal width); + protected: virtual void ScalePenWidth(); + + auto GetColorRole() const -> VColorRole; + void SetColorRole(VColorRole role); + private: Q_DISABLE_COPY_MOVE(VCurvePathItem) // NOLINT - QVector> m_directionArrows; - QVector m_points; + QVector> m_directionArrows{}; + QVector m_points{}; qreal m_defaultWidth; + VColorRole m_role; }; +//--------------------------------------------------------------------------------------------------------------------- +inline void VCurvePathItem::SetColorRole(VColorRole role) +{ + m_role = role; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VCurvePathItem::GetColorRole() const -> VColorRole +{ + return m_role; +} + QT_WARNING_POP #endif // VCURVEPATHITEM_H diff --git a/src/libs/vwidgets/vgrainlineitem.cpp b/src/libs/vwidgets/vgrainlineitem.cpp index 9679686fd..c8b8c5bf4 100644 --- a/src/libs/vwidgets/vgrainlineitem.cpp +++ b/src/libs/vwidgets/vgrainlineitem.cpp @@ -26,8 +26,6 @@ ** *************************************************************************/ -#include - #include #include #include @@ -35,14 +33,15 @@ #include #include #include +#include #include "../vmisc/def.h" -#include "../vmisc/vabstractapplication.h" #include "../vmisc/literals.h" +#include "../vmisc/theme/vscenestylesheet.h" +#include "../vmisc/vabstractapplication.h" #include "global.h" -#include "vpiecegrainline.h" - #include "vgrainlineitem.h" +#include "vpiecegrainline.h" constexpr int rectWidth = 30; constexpr int resizeRectSize = 10; @@ -54,9 +53,10 @@ constexpr int activeZ = 10; * @brief VGrainlineItem::VGrainlineItem constructor * @param pParent pointer to the parent item */ -VGrainlineItem::VGrainlineItem(QGraphicsItem* pParent) - : VPieceItem(pParent), - m_penWidth(VAbstractApplication::VApp()->Settings()->WidthMainLine()) +VGrainlineItem::VGrainlineItem(VColorRole role, QGraphicsItem *pParent) + : VPieceItem(pParent), + m_penWidth(VAbstractApplication::VApp()->Settings()->WidthMainLine()), + m_role(role) { setAcceptHoverEvents(true); m_inactiveZ = 5; @@ -84,12 +84,17 @@ auto VGrainlineItem::shape() const -> QPainterPath * @param pOption not used * @param pWidget not used */ -void VGrainlineItem::paint(QPainter* pP, const QStyleOptionGraphicsItem* pOption, QWidget* pWidget) +void VGrainlineItem::paint(QPainter *pP, const QStyleOptionGraphicsItem *pOption, QWidget *pWidget) { Q_UNUSED(pOption) Q_UNUSED(pWidget) pP->save(); - QColor clr = Qt::black; + QColor clr = m_color; + + if (m_role != VColorRole::CustomColor) + { + clr = VSceneStylesheet::Color(m_role); + } const qreal width = ScaleWidth(VAbstractApplication::VApp()->Settings()->WidthHairLine(), SceneScale(scene())); pP->setPen(QPen(clr, width, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); @@ -154,7 +159,7 @@ void VGrainlineItem::paint(QPainter* pP, const QStyleOptionGraphicsItem* pOption if (m_eMode == mRotate) { - QPointF ptC = (m_polyBound.at(0) + m_polyBound.at(2))/2; + QPointF ptC = (m_polyBound.at(0) + m_polyBound.at(2)) / 2; qreal dRad = rotateCircR; pP->setBrush(clr); pP->drawEllipse(ptC, dRad, dRad); @@ -163,13 +168,13 @@ void VGrainlineItem::paint(QPainter* pP, const QStyleOptionGraphicsItem* pOption pP->save(); pP->translate(ptC); pP->rotate(qRadiansToDegrees(-m_dRotation)); - int iX = qRound(m_dLength/2 - 0.5*dRad); - int iY = grainline.IsFourWays() ? qRound((m_dLength/2) - 0.8*dRad) : qRound(rectWidth - 0.5*dRad); - int iR = qRound(dRad*3); - pP->drawArc(iX - iR, iY - iR, iR, iR, 0*16, -90*16); - pP->drawArc(-iX, iY - iR, iR, iR, 270*16, -90*16); - pP->drawArc(-iX, -iY, iR, iR, 180*16, -90*16); - pP->drawArc(iX - iR, -iY, iR, iR, 90*16, -90*16); + int iX = qRound(m_dLength / 2 - 0.5 * dRad); + int iY = grainline.IsFourWays() ? qRound((m_dLength / 2) - 0.8 * dRad) : qRound(rectWidth - 0.5 * dRad); + int iR = qRound(dRad * 3); + pP->drawArc(iX - iR, iY - iR, iR, iR, 0 * 16, -90 * 16); + pP->drawArc(-iX, iY - iR, iR, iR, 270 * 16, -90 * 16); + pP->drawArc(-iX, -iY, iR, iR, 180 * 16, -90 * 16); + pP->drawArc(iX - iR, -iY, iR, iR, 90 * 16, -90 * 16); pP->restore(); } } @@ -183,7 +188,7 @@ void VGrainlineItem::paint(QPainter* pP, const QStyleOptionGraphicsItem* pOption * @param dRotation rotation of the grainline in [degrees] * @param dLength length of the grainline in user's units */ -void VGrainlineItem::UpdateGeometry(const QPointF& ptPos, qreal dRotation, qreal dLength, GrainlineArrowDirection eAT) +void VGrainlineItem::UpdateGeometry(const QPointF &ptPos, qreal dRotation, qreal dLength, GrainlineArrowDirection eAT) { m_dRotation = qDegreesToRadians(dRotation); m_dLength = dLength; @@ -215,10 +220,10 @@ auto VGrainlineItem::Grainline() const -> VPieceGrainline * @brief VGrainlineItem::mousePressEvent handles left button mouse press events * @param pME pointer to QGraphicsSceneMouseEvent object */ -void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME) +void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent *pME) { - if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick - && (flags() & QGraphicsItem::ItemIsMovable)) + if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick && + (flags() & QGraphicsItem::ItemIsMovable)) { if (m_moveType == NotMovable) { @@ -235,7 +240,7 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME) m_dAngle = GetAngle(mapToParent(pME->pos())); m_ptRotCenter = m_ptCenter; - if ((m_moveType & AllModifications ) == AllModifications) + if ((m_moveType & AllModifications) == AllModifications) { AllUserModifications(pME->pos()); setZValue(activeZ); @@ -303,7 +308,7 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME) * @brief VGrainlineItem::mouseMoveEvent handles mouse move events, making sure that the item is moved properly * @param pME pointer to QGraphicsSceneMouseEvent object */ -void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) +void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent *pME) { QPointF ptDiff = pME->scenePos() - m_ptStartMove; qreal dX; @@ -322,12 +327,12 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) } else if (m_eMode == mResize && m_moveType & IsResizable) { - qreal dLen = qSqrt(ptDiff.x()*ptDiff.x() + ptDiff.y()*ptDiff.y()); + qreal dLen = qSqrt(ptDiff.x() * ptDiff.x() + ptDiff.y() * ptDiff.y()); qreal dAng = qAtan2(-ptDiff.y(), ptDiff.x()); - dLen = -dLen*qCos(dAng - m_dRotation); + dLen = -dLen * qCos(dAng - m_dRotation); qreal dPrevLen = m_dLength; // try with new length - if (not (m_moveType & IsMovable)) + if (not(m_moveType & IsMovable)) { dLen *= 2; } @@ -343,8 +348,7 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) if (m_moveType & IsMovable) { - QLineF grainline(this->pos().x(), this->pos().y(), - this->pos().x() + dPrevLen, this->pos().y()); + QLineF grainline(this->pos().x(), this->pos().y(), this->pos().x() + dPrevLen, this->pos().y()); grainline.setAngle(qRadiansToDegrees(m_dRotation)); grainline = QLineF(grainline.p2(), grainline.p1()); grainline.setLength(m_dLength); @@ -352,8 +356,7 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) } else { - QLineF grainline(m_ptCenter.x(), m_ptCenter.y(), - m_ptCenter.x() + m_dLength / 2.0, m_ptCenter.y()); + QLineF grainline(m_ptCenter.x(), m_ptCenter.y(), m_ptCenter.x() + m_dLength / 2.0, m_ptCenter.y()); grainline.setAngle(qRadiansToDegrees(m_dRotation)); grainline = QLineF(grainline.p2(), grainline.p1()); @@ -380,7 +383,7 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) else if (m_eMode == mRotate && m_moveType & IsRotatable) { // prevent strange angle changes due to singularities - qreal dLen = qSqrt(ptDiff.x()*ptDiff.x() + ptDiff.y()*ptDiff.y()); + qreal dLen = qSqrt(ptDiff.x() * ptDiff.x() + ptDiff.y() * ptDiff.y()); if (dLen < 2) { return; @@ -411,7 +414,7 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) * moved * @param pME pointer to QGraphicsSceneMouseEvent object */ -void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME) +void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *pME) { if (pME->button() != Qt::LeftButton) { @@ -425,7 +428,7 @@ void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME) } QPointF ptDiff = pME->scenePos() - m_ptStartMove; - qreal dLen = qSqrt(ptDiff.x()*ptDiff.x() + ptDiff.y()*ptDiff.y()); + qreal dLen = qSqrt(ptDiff.x() * ptDiff.x() + ptDiff.y() * ptDiff.y()); bool bShort = (dLen < 2); if (m_eMode == mMove || m_eMode == mResize) @@ -508,20 +511,20 @@ void VGrainlineItem::UpdateRectangle() m_ptStart = mapToParent(mainLine.p1()); m_ptFinish = mapToParent(mainLine.p2()); - m_ptCenter = (m_ptStart + m_ptFinish)/2; + m_ptCenter = (m_ptStart + m_ptFinish) / 2; m_polyBound.clear(); if (grainline.IsFourWays()) { - m_polyBound << QPointF(mainLine.p1().x() + (m_dLength/2)*cos(m_dRotation + M_PI/2), - mainLine.p1().y() - (m_dLength/2)*sin(m_dRotation + M_PI/2)); - m_polyBound << QPointF(mainLine.p1().x() + (m_dLength/2)*cos(m_dRotation - M_PI/2), - mainLine.p1().y() - (m_dLength/2)*sin(m_dRotation - M_PI/2)); - m_polyBound << QPointF(mainLine.p2().x() + (m_dLength/2)*cos(m_dRotation - M_PI/2), - mainLine.p2().y() - (m_dLength/2)*sin(m_dRotation - M_PI/2)); - m_polyBound << QPointF(mainLine.p2().x() + (m_dLength/2)*cos(m_dRotation + M_PI/2), - mainLine.p2().y() - (m_dLength/2)*sin(m_dRotation + M_PI/2)); + m_polyBound << QPointF(mainLine.p1().x() + (m_dLength / 2) * cos(m_dRotation + M_PI / 2), + mainLine.p1().y() - (m_dLength / 2) * sin(m_dRotation + M_PI / 2)); + m_polyBound << QPointF(mainLine.p1().x() + (m_dLength / 2) * cos(m_dRotation - M_PI / 2), + mainLine.p1().y() - (m_dLength / 2) * sin(m_dRotation - M_PI / 2)); + m_polyBound << QPointF(mainLine.p2().x() + (m_dLength / 2) * cos(m_dRotation - M_PI / 2), + mainLine.p2().y() - (m_dLength / 2) * sin(m_dRotation - M_PI / 2)); + m_polyBound << QPointF(mainLine.p2().x() + (m_dLength / 2) * cos(m_dRotation + M_PI / 2), + mainLine.p2().y() - (m_dLength / 2) * sin(m_dRotation + M_PI / 2)); const QLineF secondaryLine = grainline.SecondaryLine(); m_ptSecondaryStart = mapToParent(secondaryLine.p1()); @@ -529,14 +532,14 @@ void VGrainlineItem::UpdateRectangle() } else { - m_polyBound << QPointF(mainLine.p1().x() + rectWidth*cos(m_dRotation + M_PI/2), - mainLine.p1().y() - rectWidth*sin(m_dRotation + M_PI/2)); - m_polyBound << QPointF(mainLine.p1().x() + rectWidth*cos(m_dRotation - M_PI/2), - mainLine.p1().y() - rectWidth*sin(m_dRotation - M_PI/2)); - m_polyBound << QPointF(mainLine.p2().x() + rectWidth*cos(m_dRotation - M_PI/2), - mainLine.p2().y() - rectWidth*sin(m_dRotation - M_PI/2)); - m_polyBound << QPointF(mainLine.p2().x() + rectWidth*cos(m_dRotation + M_PI/2), - mainLine.p2().y() - rectWidth*sin(m_dRotation + M_PI/2)); + m_polyBound << QPointF(mainLine.p1().x() + rectWidth * cos(m_dRotation + M_PI / 2), + mainLine.p1().y() - rectWidth * sin(m_dRotation + M_PI / 2)); + m_polyBound << QPointF(mainLine.p1().x() + rectWidth * cos(m_dRotation - M_PI / 2), + mainLine.p1().y() - rectWidth * sin(m_dRotation - M_PI / 2)); + m_polyBound << QPointF(mainLine.p2().x() + rectWidth * cos(m_dRotation - M_PI / 2), + mainLine.p2().y() - rectWidth * sin(m_dRotation - M_PI / 2)); + m_polyBound << QPointF(mainLine.p2().x() + rectWidth * cos(m_dRotation + M_PI / 2), + mainLine.p2().y() - rectWidth * sin(m_dRotation + M_PI / 2)); } m_rectBoundingBox = m_polyBound.boundingRect().adjusted(-2, -2, 2, 2); setTransformOriginPoint(m_rectBoundingBox.center()); @@ -560,12 +563,12 @@ auto VGrainlineItem::GetAngle(const QPointF &pt) const -> double * @param dAng angle of rotation * @return point, which is a result of rotating pt around ptCenter by angle dAng */ -auto VGrainlineItem::Rotate(const QPointF& pt, const QPointF& ptCenter, qreal dAng) -> QPointF +auto VGrainlineItem::Rotate(const QPointF &pt, const QPointF &ptCenter, qreal dAng) -> QPointF { QPointF ptRel = pt - ptCenter; QPointF ptFinal; - ptFinal.setX(ptRel.x()*qCos(dAng) + ptRel.y()*qSin(dAng)); - ptFinal.setY(-ptRel.x()*qSin(dAng) + ptRel.y()*qCos(dAng)); + ptFinal.setX(ptRel.x() * qCos(dAng) + ptRel.y() * qSin(dAng)); + ptFinal.setY(-ptRel.x() * qSin(dAng) + ptRel.y() * qCos(dAng)); ptFinal += ptCenter; return ptFinal; } @@ -583,8 +586,8 @@ auto VGrainlineItem::GetInsideCorner(int i, qreal dDist) const -> QPointF QPointF pt1 = m_polyBound.at((i + 1) % m_polyBound.count()) - m_polyBound.at(i); QPointF pt2 = m_polyBound.at((i + m_polyBound.count() - 1) % m_polyBound.count()) - m_polyBound.at(i); - pt1 = dDist*pt1/qSqrt(pt1.x()*pt1.x() + pt1.y()*pt1.y()); - pt2 = dDist*pt2/qSqrt(pt2.x()*pt2.x() + pt2.y()*pt2.y()); + pt1 = dDist * pt1 / qSqrt(pt1.x() * pt1.x() + pt1.y() * pt1.y()); + pt2 = dDist * pt2 / qSqrt(pt2.x() * pt2.x() + pt2.y() * pt2.y()); return m_polyBound.at(i) + pt1 + pt2; } @@ -701,15 +704,15 @@ void VGrainlineItem::UpdatePolyResize() m_polyResize << ptA; const double dSize = resizeRectSize; - ptA.setX(ptA.x() - dSize*cos(m_dRotation - M_PI/2)); - ptA.setY(ptA.y() + dSize*sin(m_dRotation - M_PI/2)); + ptA.setX(ptA.x() - dSize * cos(m_dRotation - M_PI / 2)); + ptA.setY(ptA.y() + dSize * sin(m_dRotation - M_PI / 2)); m_polyResize << ptA; - ptA.setX(ptA.x() + dSize*cos(m_dRotation)); - ptA.setY(ptA.y() - dSize*sin(m_dRotation)); + ptA.setX(ptA.x() + dSize * cos(m_dRotation)); + ptA.setY(ptA.y() - dSize * sin(m_dRotation)); m_polyResize << ptA; - ptA.setX(ptA.x() - dSize*cos(m_dRotation + M_PI/2)); - ptA.setY(ptA.y() + dSize*sin(m_dRotation + M_PI/2)); + ptA.setX(ptA.x() - dSize * cos(m_dRotation + M_PI / 2)); + ptA.setY(ptA.y() + dSize * sin(m_dRotation + M_PI / 2)); m_polyResize << ptA; } diff --git a/src/libs/vwidgets/vgrainlineitem.h b/src/libs/vwidgets/vgrainlineitem.h index 09fd128b8..9d2c1a77c 100644 --- a/src/libs/vwidgets/vgrainlineitem.h +++ b/src/libs/vwidgets/vgrainlineitem.h @@ -29,65 +29,75 @@ #ifndef VGRAINLINEITEM_H #define VGRAINLINEITEM_H -#include "vpieceitem.h" -#include "../vpatterndb/floatItemData/floatitemdef.h" #include "../vmisc/def.h" +#include "../vmisc/theme/themeDef.h" +#include "../vpatterndb/floatItemData/floatitemdef.h" +#include "vpieceitem.h" class VPieceGrainline; class VGrainlineItem final : public VPieceItem { Q_OBJECT // NOLINT + public: - explicit VGrainlineItem(QGraphicsItem* pParent = nullptr); + explicit VGrainlineItem(VColorRole role, QGraphicsItem *pParent = nullptr); ~VGrainlineItem() override = default; auto shape() const -> QPainterPath override; - void paint(QPainter* pP, const QStyleOptionGraphicsItem* pOption, QWidget* pWidget) override; - void UpdateGeometry(const QPointF& ptPos, qreal dRotation, qreal dLength, GrainlineArrowDirection eAT); + void paint(QPainter *pP, const QStyleOptionGraphicsItem *pOption, QWidget *pWidget) override; + void UpdateGeometry(const QPointF &ptPos, qreal dRotation, qreal dLength, GrainlineArrowDirection eAT); - auto type() const -> int override {return Type;} - enum { Type = UserType + static_cast(Vis::GrainlineItem)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::GrainlineItem) + }; auto Grainline() const -> VPieceGrainline; + auto GetColor() const -> QColor; + void SetColor(const QColor &color); + signals: void SignalResized(qreal dLength); - void SignalRotated(qreal dRot, const QPointF& ptNewPos); + void SignalRotated(qreal dRot, const QPointF &ptNewPos); protected: - void mousePressEvent(QGraphicsSceneMouseEvent* pME) override; - void mouseMoveEvent(QGraphicsSceneMouseEvent* pME) override; - void mouseReleaseEvent(QGraphicsSceneMouseEvent* pME) override; - void hoverEnterEvent(QGraphicsSceneHoverEvent* pME) override; - void hoverLeaveEvent(QGraphicsSceneHoverEvent* pME) override; + void mousePressEvent(QGraphicsSceneMouseEvent *pME) override; + void mouseMoveEvent(QGraphicsSceneMouseEvent *pME) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *pME) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *pME) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *pME) override; void Update() override; void UpdateRectangle(); auto GetAngle(const QPointF &pt) const -> double override; - static auto Rotate(const QPointF& pt, const QPointF& ptCenter, qreal dAng) -> QPointF; + static auto Rotate(const QPointF &pt, const QPointF &ptCenter, qreal dAng) -> QPointF; auto GetInsideCorner(int i, qreal dDist) const -> QPointF; private: Q_DISABLE_COPY_MOVE(VGrainlineItem) // NOLINT - qreal m_dRotation{0}; - qreal m_dStartRotation{0}; - qreal m_dLength{0}; - QPolygonF m_polyBound{}; - QPointF m_ptStartPos{}; - QPointF m_ptStartMove{}; - QPolygonF m_polyResize{}; - qreal m_dStartLength{0}; - QPointF m_ptStart{}; - QPointF m_ptFinish{}; - QPointF m_ptSecondaryStart{}; - QPointF m_ptSecondaryFinish{}; - QPointF m_ptCenter{}; - qreal m_dAngle{0}; + qreal m_dRotation{0}; + qreal m_dStartRotation{0}; + qreal m_dLength{0}; + QPolygonF m_polyBound{}; + QPointF m_ptStartPos{}; + QPointF m_ptStartMove{}; + QPolygonF m_polyResize{}; + qreal m_dStartLength{0}; + QPointF m_ptStart{}; + QPointF m_ptFinish{}; + QPointF m_ptSecondaryStart{}; + QPointF m_ptSecondaryFinish{}; + QPointF m_ptCenter{}; + qreal m_dAngle{0}; GrainlineArrowDirection m_eArrowType{GrainlineArrowDirection::twoWaysUpDown}; - double m_penWidth{1}; + double m_penWidth{1}; + VColorRole m_role; + QColor m_color{Qt::black}; auto MainShape() const -> QPainterPath; @@ -98,4 +108,16 @@ private: void UpdatePolyResize(); }; +//--------------------------------------------------------------------------------------------------------------------- +inline auto VGrainlineItem::GetColor() const -> QColor +{ + return m_color; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VGrainlineItem::SetColor(const QColor &color) +{ + m_color = color; +} + #endif // VGRAINLINEITEM_H diff --git a/src/libs/vwidgets/vgraphicssimpletextitem.cpp b/src/libs/vwidgets/vgraphicssimpletextitem.cpp index 7c9592736..38d16c6c4 100644 --- a/src/libs/vwidgets/vgraphicssimpletextitem.cpp +++ b/src/libs/vwidgets/vgraphicssimpletextitem.cpp @@ -41,26 +41,23 @@ #include #include #include -#include -#include "vmaingraphicsscene.h" -#include "vmaingraphicsview.h" -#include "global.h" -#include "vscenepoint.h" -#include "../vmisc/vmath.h" -#include "../vmisc/vabstractvalapplication.h" #include "../vmisc/literals.h" +#include "../vmisc/vabstractvalapplication.h" +#include "global.h" +#include "theme/vscenestylesheet.h" +#include "vmaingraphicsview.h" +#include "vscenepoint.h" //--------------------------------------------------------------------------------------------------------------------- /** * @brief VGraphicsSimpleTextItem default constructor. * @param parent parent object. */ -VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent) - : QGraphicsSimpleTextItem(parent), - selectionType(SelectionType::ByMouseRelease), - m_oldScale(1), - m_showParentTooltip(true) +VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(VColorRole textColor, VColorRole textHoverColor, QGraphicsItem *parent) + : QGraphicsSimpleTextItem(parent), + m_textColor(textColor), + m_textHoverColor(textHoverColor) { Init(); } @@ -71,11 +68,11 @@ VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent) * @param text text. * @param parent parent object. */ -VGraphicsSimpleTextItem::VGraphicsSimpleTextItem( const QString & text, QGraphicsItem * parent ) - : QGraphicsSimpleTextItem(text, parent), - selectionType(SelectionType::ByMouseRelease), - m_oldScale(1), - m_showParentTooltip(true) +VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(const QString &text, VColorRole textColor, VColorRole textHoverColor, + QGraphicsItem *parent) + : QGraphicsSimpleTextItem(text, parent), + m_textColor(textColor), + m_textHoverColor(textHoverColor) { Init(); } @@ -91,6 +88,8 @@ void VGraphicsSimpleTextItem::paint(QPainter *painter, const QStyleOptionGraphic } }; + RefreshColor(); + QFont font = this->font(); if (font.pointSize() != VAbstractApplication::VApp()->Settings()->GetPatternLabelFontSize()) { @@ -102,7 +101,7 @@ void VGraphicsSimpleTextItem::paint(QPainter *painter, const QStyleOptionGraphic const qreal scale = SceneScale(scene); if (scale > 1 && not VFuzzyComparePossibleNulls(m_oldScale, scale)) { - setScale(1/scale); + setScale(1 / scale); CorrectLabelPosition(); UpdateLine(); m_oldScale = scale; @@ -189,20 +188,20 @@ void VGraphicsSimpleTextItem::CorrectLabelPosition() */ auto VGraphicsSimpleTextItem::itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant { - if (change == ItemPositionChange && scene()) - { - // Each time we move something we call recalculation scene rect. In some cases this can cause moving - // objects positions. And this cause infinite redrawing. That's why we wait the finish of saving the last move. - static bool changeFinished = true; - if (changeFinished) - { + if (change == ItemPositionChange && scene()) + { + // Each time we move something we call recalculation scene rect. In some cases this can cause moving + // objects positions. And this cause infinite redrawing. That's why we wait the finish of saving the last move. + static bool changeFinished = true; + if (changeFinished) + { changeFinished = false; if (scene()) { const QList viewList = scene()->views(); if (not viewList.isEmpty()) { - if (VMainGraphicsView *view = qobject_cast(viewList.at(0))) + if (auto *view = qobject_cast(viewList.at(0))) { view->EnsureItemVisibleWithDelay(this, VMainGraphicsView::scrollDelay); } @@ -220,14 +219,14 @@ auto VGraphicsSimpleTextItem::itemChange(GraphicsItemChange change, const QVaria emit NameChangePosition(m_realPos + this->parentItem()->pos()); changeFinished = true; - } - } - if (change == QGraphicsItem::ItemSelectedHasChanged) - { - setFlag(QGraphicsItem::ItemIsFocusable, value.toBool()); - emit PointSelected(value.toBool()); - } - return QGraphicsSimpleTextItem::itemChange(change, value); + } + } + if (change == QGraphicsItem::ItemSelectedHasChanged) + { + setFlag(QGraphicsItem::ItemIsFocusable, value.toBool()); + emit PointSelected(value.toBool()); + } + return QGraphicsSimpleTextItem::itemChange(change, value); } //--------------------------------------------------------------------------------------------------------------------- @@ -246,10 +245,11 @@ void VGraphicsSimpleTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) setCursor(VAbstractValApplication::VApp()->getSceneView()->viewport()->cursor()); } - this->setBrush(Qt::green); + m_hoverFlag = true; + setBrush(Qt::green); QGraphicsItem *parent = parentItem(); - if(parent && m_showParentTooltip) + if (parent && m_showParentTooltip) { setToolTip(parent->toolTip()); } @@ -264,7 +264,7 @@ void VGraphicsSimpleTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) */ void VGraphicsSimpleTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { - this->setBrush(m_baseColor); + m_hoverFlag = false; QGraphicsSimpleTextItem::hoverLeaveEvent(event); } @@ -285,7 +285,7 @@ void VGraphicsSimpleTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event) QGraphicsSimpleTextItem::mousePressEvent(event); // Somehow clicking on notselectable object do not clean previous selections. - if (not (flags() & ItemIsSelectable) && scene()) + if (not(flags() & ItemIsSelectable) && scene()) { scene()->clearSelection(); } @@ -338,30 +338,17 @@ void VGraphicsSimpleTextItem::keyReleaseEvent(QKeyEvent *event) { case Qt::Key_Delete: emit DeleteTool(); - return; //Leave this method immediately after call!!! + return; // Leave this method immediately after call!!! default: break; } - QGraphicsSimpleTextItem::keyReleaseEvent ( event ); + QGraphicsSimpleTextItem::keyReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- -void VGraphicsSimpleTextItem::SetDestination(const QPointF &destination) +void VGraphicsSimpleTextItem::RefreshColor() { - m_destination = destination; -} - -//--------------------------------------------------------------------------------------------------------------------- -auto VGraphicsSimpleTextItem::BaseColor() const -> QColor -{ - return m_baseColor; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VGraphicsSimpleTextItem::SetBaseColor(const QColor &baseColor) -{ - m_baseColor = baseColor; - setBrush(m_baseColor); + setBrush(VSceneStylesheet::Color(m_hoverFlag ? m_textHoverColor : m_textColor)); } //--------------------------------------------------------------------------------------------------------------------- @@ -370,7 +357,7 @@ void VGraphicsSimpleTextItem::Init() this->setFlag(QGraphicsItem::ItemIsMovable, true); this->setFlag(QGraphicsItem::ItemIsSelectable, true); this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); - this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus + this->setFlag(QGraphicsItem::ItemIsFocusable, true); // For keyboard input focus this->setAcceptHoverEvents(true); QFont font = this->font(); font.setPointSize(VAbstractApplication::VApp()->Settings()->GetPatternLabelFontSize()); diff --git a/src/libs/vwidgets/vgraphicssimpletextitem.h b/src/libs/vwidgets/vgraphicssimpletextitem.h index 9c814bfa2..b9de441cc 100644 --- a/src/libs/vwidgets/vgraphicssimpletextitem.h +++ b/src/libs/vwidgets/vgraphicssimpletextitem.h @@ -29,7 +29,6 @@ #ifndef VGRAPHICSSIMPLETEXTITEM_H #define VGRAPHICSSIMPLETEXTITEM_H - #include #include #include @@ -40,6 +39,12 @@ #include #include "../vmisc/def.h" +#include "qtclasshelpermacros.h" +#include "theme/themeDef.h" + +#if QT_VERSION < QT_VERSION_CHECK(5, 13, 0) +#include "../vmisc/defglobal.h" +#endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) /** * @brief The VGraphicsSimpleTextItem class pointer label. @@ -47,16 +52,20 @@ class VGraphicsSimpleTextItem : public QObject, public QGraphicsSimpleTextItem { Q_OBJECT // NOLINT + public: - explicit VGraphicsSimpleTextItem(QGraphicsItem *parent = nullptr); - explicit VGraphicsSimpleTextItem( const QString & text, QGraphicsItem *parent = nullptr ); - virtual ~VGraphicsSimpleTextItem() =default; + explicit VGraphicsSimpleTextItem(VColorRole textColor, VColorRole textHoverColor, QGraphicsItem *parent = nullptr); + explicit VGraphicsSimpleTextItem(const QString &text, VColorRole textColor, VColorRole textHoverColor, + QGraphicsItem *parent = nullptr); + ~VGraphicsSimpleTextItem() override = default; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Vis::GraphicsSimpleTextItem)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::GraphicsSimpleTextItem) + }; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; void setEnabled(bool enabled); void LabelSelectionType(const SelectionType &type); @@ -65,44 +74,84 @@ public: void SetRealPos(const QPointF &pos); - auto BaseColor() const -> QColor; - void SetBaseColor(const QColor &baseColor); - void SetDestination(const QPointF &destination); + void RefreshColor(); + + VColorRole GetTextColor() const; + void SetTextColor(VColorRole newTextColor); + + VColorRole GetTextHoverColor() const; + void SetTextHoverColor(VColorRole newTextHoverColor); + signals: /** * @brief NameChangePosition emit when label change position. * @param pos new posotion. */ - void NameChangePosition(const QPointF &pos); + void NameChangePosition(const QPointF &pos); /** * @brief ShowContextMenu emit when need show tool context menu. * @param event context menu event. */ - void ShowContextMenu(QGraphicsSceneContextMenuEvent *event); - void DeleteTool(); - void PointChoosed(); - void PointSelected(bool selected); + void ShowContextMenu(QGraphicsSceneContextMenuEvent *event); + void DeleteTool(); + void PointChoosed(); + void PointSelected(bool selected); + protected: - virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent *event ) override; - virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent *event ) override; - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent *event ) override; - virtual void mousePressEvent( QGraphicsSceneMouseEvent * event ) override; - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override; - virtual void keyReleaseEvent ( QKeyEvent * event ) override; + auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void keyReleaseEvent(QKeyEvent *event) override; + private: - SelectionType selectionType; - qreal m_oldScale; - bool m_showParentTooltip; - QPointF m_realPos{}; - QColor m_baseColor{Qt::black}; - QPointF m_destination{}; + Q_DISABLE_COPY_MOVE(VGraphicsSimpleTextItem) // NOLINT + SelectionType selectionType{SelectionType::ByMouseRelease}; + qreal m_oldScale{1}; + bool m_showParentTooltip{true}; + QPointF m_realPos{}; + QPointF m_destination{}; + bool m_hoverFlag{false}; + VColorRole m_textColor; + VColorRole m_textHoverColor; void Init(); void CorrectLabelPosition(); }; +//--------------------------------------------------------------------------------------------------------------------- +inline auto VGraphicsSimpleTextItem::GetTextHoverColor() const -> VColorRole +{ + return m_textHoverColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VGraphicsSimpleTextItem::SetTextHoverColor(VColorRole newTextHoverColor) +{ + m_textHoverColor = newTextHoverColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline auto VGraphicsSimpleTextItem::GetTextColor() const -> VColorRole +{ + return m_textColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VGraphicsSimpleTextItem::SetTextColor(VColorRole newTextColor) +{ + m_textColor = newTextColor; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VGraphicsSimpleTextItem::SetDestination(const QPointF &destination) +{ + m_destination = destination; +} + #endif // VGRAPHICSSIMPLETEXTITEM_H diff --git a/src/libs/vwidgets/vmaingraphicsscene.cpp b/src/libs/vwidgets/vmaingraphicsscene.cpp index dc7e87082..d62915884 100644 --- a/src/libs/vwidgets/vmaingraphicsscene.cpp +++ b/src/libs/vwidgets/vmaingraphicsscene.cpp @@ -34,26 +34,26 @@ #include #include #include +#include #include #include -#include -#include -#include "global.h" #include "../vmisc/vabstractapplication.h" +#include "global.h" //--------------------------------------------------------------------------------------------------------------------- /** * @brief VMainGraphicsScene default constructor. */ VMainGraphicsScene::VMainGraphicsScene(QObject *parent) - : QGraphicsScene(parent), - horScrollBar(0), - verScrollBar(0), - _transform(QTransform()), - scenePos(QPointF()), - origins() -{} + : QGraphicsScene(parent), + horScrollBar(0), + verScrollBar(0), + _transform(QTransform()), + scenePos(QPointF()), + origins() +{ +} //--------------------------------------------------------------------------------------------------------------------- /** @@ -61,21 +61,22 @@ VMainGraphicsScene::VMainGraphicsScene(QObject *parent) * @param sceneRect scene rect. * @param parent parent object. */ -VMainGraphicsScene::VMainGraphicsScene(const QRectF & sceneRect, QObject * parent) - :QGraphicsScene ( sceneRect, parent ), - horScrollBar(0), - verScrollBar(0), - _transform(QTransform()), - scenePos(), - origins() -{} +VMainGraphicsScene::VMainGraphicsScene(const QRectF &sceneRect, QObject *parent) + : QGraphicsScene(sceneRect, parent), + horScrollBar(0), + verScrollBar(0), + _transform(QTransform()), + scenePos(), + origins() +{ +} //--------------------------------------------------------------------------------------------------------------------- /** * @brief mouseMoveEvent handle mouse move events. * @param event mouse move event. */ -void VMainGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent* event) +void VMainGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { scenePos = event->scenePos(); emit mouseMove(event->scenePos()); @@ -169,7 +170,7 @@ void VMainGraphicsScene::InitOrigins() // Arrow left side QLineF arrowLeftLine = lineX; - arrowLeftLine.setAngle(arrowLeftLine.angle()-arrowAngle); + arrowLeftLine.setAngle(arrowLeftLine.angle() - arrowAngle); arrowLeftLine.setLength(arrowLength); auto *xLine2 = new QGraphicsLineItem(arrowLeftLine); xLine2->setPen(originsPen); @@ -180,7 +181,7 @@ void VMainGraphicsScene::InitOrigins() // Arrow right side QLineF arrowRightLine = lineX; - arrowRightLine.setAngle(arrowRightLine.angle()+arrowAngle); + arrowRightLine.setAngle(arrowRightLine.angle() + arrowAngle); arrowRightLine.setLength(arrowLength); auto *xLine3 = new QGraphicsLineItem(arrowRightLine); xLine3->setPen(originsPen); @@ -194,7 +195,7 @@ void VMainGraphicsScene::InitOrigins() xOrigin->setBrush(axisTextBrush); xOrigin->setFlag(QGraphicsItem::ItemIgnoresTransformations); xOrigin->setZValue(-0.5); - xOrigin->setPos(30, -(xOrigin->boundingRect().height()/2)); + xOrigin->setPos(30, -(xOrigin->boundingRect().height() / 2)); origins.append(xOrigin); } @@ -210,7 +211,7 @@ void VMainGraphicsScene::InitOrigins() // Arrow left side QLineF arrowLeftLine = lineY; - arrowLeftLine.setAngle(arrowLeftLine.angle()-arrowAngle); + arrowLeftLine.setAngle(arrowLeftLine.angle() - arrowAngle); arrowLeftLine.setLength(arrowLength); auto *yLine2 = new QGraphicsLineItem(arrowLeftLine); yLine2->setPen(originsPen); @@ -221,7 +222,7 @@ void VMainGraphicsScene::InitOrigins() // Arrow right side QLineF arrowRightLine = lineY; - arrowRightLine.setAngle(arrowRightLine.angle()+arrowAngle); + arrowRightLine.setAngle(arrowRightLine.angle() + arrowAngle); arrowRightLine.setLength(arrowLength); auto *yLine3 = new QGraphicsLineItem(arrowRightLine); yLine3->setPen(originsPen); @@ -235,7 +236,7 @@ void VMainGraphicsScene::InitOrigins() yOrigin->setBrush(axisTextBrush); yOrigin->setFlag(QGraphicsItem::ItemIgnoresTransformations); yOrigin->setZValue(-0.5); - yOrigin->setPos(-(yOrigin->boundingRect().width()/2), 30); + yOrigin->setPos(-(yOrigin->boundingRect().width() / 2), 30); origins.append(yOrigin); } } @@ -265,7 +266,7 @@ auto VMainGraphicsScene::VisibleItemsBoundingRect() const -> QRectF const QList qItems = items(); for (auto *item : qItems) { - if(not item->isVisible()) + if (not item->isVisible()) { continue; } diff --git a/src/libs/vwidgets/vmaingraphicsview.h b/src/libs/vwidgets/vmaingraphicsview.h index decf2a3b9..29f0b419a 100644 --- a/src/libs/vwidgets/vmaingraphicsview.h +++ b/src/libs/vwidgets/vmaingraphicsview.h @@ -36,7 +36,6 @@ #include #include #include -#include #include #if QT_VERSION < QT_VERSION_CHECK(5, 13, 0) diff --git a/src/libs/vwidgets/vscenepoint.cpp b/src/libs/vwidgets/vscenepoint.cpp index 277dce3b0..bf59dda2d 100644 --- a/src/libs/vwidgets/vscenepoint.cpp +++ b/src/libs/vwidgets/vscenepoint.cpp @@ -27,12 +27,13 @@ *************************************************************************/ #include "vscenepoint.h" -#include "../vmisc/def.h" -#include "../vmisc/vabstractapplication.h" #include "../vgeometry/vpointf.h" +#include "../vmisc/def.h" +#include "../vmisc/theme/vscenestylesheet.h" +#include "../vmisc/vabstractapplication.h" #include "global.h" -#include "vgraphicssimpletextitem.h" #include "scalesceneitems.h" +#include "vgraphicssimpletextitem.h" #include #include @@ -42,23 +43,19 @@ #include //--------------------------------------------------------------------------------------------------------------------- -VScenePoint::VScenePoint(QGraphicsItem *parent) - : QGraphicsEllipseItem(parent), - m_namePoint(new VGraphicsSimpleTextItem(this)), - m_lineName(new VScaledLine(this)), - m_onlyPoint(false), - m_isHovered(false), - m_showLabel(true), - m_baseColor(Qt::black), - m_selectedFromChild(false) +VScenePoint::VScenePoint(VColorRole role, QGraphicsItem *parent) + : QGraphicsEllipseItem(parent), + m_namePoint(new VGraphicsSimpleTextItem(VColorRole::DraftLabelColor, VColorRole::DraftLabelHoverColor, this)), + m_lineName(new VScaledLine(VColorRole::DraftLabelLineColor, this)), + m_role(role) { m_lineName->SetBoldLine(false); m_lineName->setLine(QLineF(0, 0, 1, 0)); m_lineName->setVisible(false); - this->setBrush(QBrush(Qt::NoBrush)); - this->setAcceptHoverEvents(true); - this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus + setBrush(QBrush(Qt::NoBrush)); + setAcceptHoverEvents(true); + setFlag(QGraphicsItem::ItemIsFocusable, true); // For keyboard input focus } //--------------------------------------------------------------------------------------------------------------------- @@ -74,16 +71,18 @@ void VScenePoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio if (settings->GetShowAccuracyRadius()) { painter->save(); + QPen pen = painter->pen(); - pen.setWidthF(accuracyPointOnLine/15); + pen.setWidthF(accuracyPointOnLine / 15); pen.setStyle(Qt::DashLine); - pen.setColor(Qt::black); + pen.setColor(VSceneStylesheet::ToolStyle().AccuracyRadiusColor()); + painter->setPen(pen); painter->drawEllipse(PointRect(accuracyPointOnLine)); painter->restore(); } - - if (settings->GetPatternLabelFontSize()*scale < minVisibleFontSize || settings->GetHideLabels()) + + if (settings->GetPatternLabelFontSize() * scale < minVisibleFontSize || settings->GetHideLabels()) { m_namePoint->setVisible(false); m_lineName->setVisible(false); @@ -93,13 +92,6 @@ void VScenePoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio if (not m_onlyPoint) { m_namePoint->setVisible(m_showLabel); - - QPen lPen = m_lineName->pen(); - QColor color = CorrectColor(m_lineName, Qt::black); - color.setAlpha(50); - lPen.setColor(color); - m_lineName->setPen(lPen); - RefreshLine(); } } @@ -160,7 +152,7 @@ void VScenePoint::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) void VScenePoint::RefreshLine() { QRectF nRec = m_namePoint->sceneBoundingRect(); - nRec.translate(- scenePos()); + nRec.translate(-scenePos()); if (not rect().intersects(nRec)) { const QRectF nameRec = m_namePoint->sceneBoundingRect(); @@ -170,7 +162,7 @@ void VScenePoint::RefreshLine() QLineF(QPointF(), nameRec.center() - scenePos()), p1, p2); const QPointF pRec = VGObject::LineIntersectRect(nameRec, QLineF(scenePos(), nameRec.center())); - if (QLineF(p1, pRec - scenePos()).length() <= ToPixel(4/qMax(1.0, SceneScale(scene())), Unit::Mm)) + if (QLineF(p1, pRec - scenePos()).length() <= ToPixel(4 / qMax(1.0, SceneScale(scene())), Unit::Mm)) { m_lineName->setVisible(false); } @@ -186,6 +178,42 @@ void VScenePoint::RefreshLine() } } +//--------------------------------------------------------------------------------------------------------------------- +auto VScenePoint::GetLabelLineColorRole() const -> VColorRole +{ + return m_lineName->GetColorRole(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VScenePoint::SetLabelLineColorRole(VColorRole role) +{ + m_lineName->SetColorRole(role); +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VScenePoint::GetLabelTextColorRole() const -> VColorRole +{ + return m_namePoint->GetTextColor(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VScenePoint::SetLabelTextColorRole(VColorRole role) +{ + m_namePoint->SetTextColor(role); +} + +//--------------------------------------------------------------------------------------------------------------------- +auto VScenePoint::GetLabelTextHoverColorRole() const -> VColorRole +{ + return m_namePoint->GetTextHoverColor(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VScenePoint::SetLabelTextHoverColorRole(VColorRole role) +{ + m_namePoint->SetTextHoverColor(role); +} + //--------------------------------------------------------------------------------------------------------------------- void VScenePoint::ScaleMainPenWidth(qreal scale) { @@ -193,5 +221,11 @@ void VScenePoint::ScaleMainPenWidth(qreal scale) : VAbstractApplication::VApp()->Settings()->WidthHairLine(), scale); - setPen(QPen(CorrectColor(this, m_baseColor), width)); + QPen pointPen = pen(); + if (m_role != VColorRole::CustomColor) + { + pointPen.setColor(VSceneStylesheet::CorrectToolColor(this, VSceneStylesheet::Color(m_role))); + } + pointPen.setWidthF(width); + setPen(pointPen); } diff --git a/src/libs/vwidgets/vscenepoint.h b/src/libs/vwidgets/vscenepoint.h index 8e230dfce..7934b9076 100644 --- a/src/libs/vwidgets/vscenepoint.h +++ b/src/libs/vwidgets/vscenepoint.h @@ -29,48 +29,60 @@ #ifndef VSCENEPOINT_H #define VSCENEPOINT_H -#include #include +#include #include "../vmisc/def.h" +#include "../vmisc/theme/themeDef.h" class VGraphicsSimpleTextItem; class VPointF; class VScaledLine; -class VScenePoint: public QGraphicsEllipseItem +class VScenePoint : public QGraphicsEllipseItem { public: - explicit VScenePoint(QGraphicsItem *parent = nullptr); - virtual ~VScenePoint() = default; + explicit VScenePoint(VColorRole role, QGraphicsItem *parent = nullptr); + ~VScenePoint() override = default; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Vis::ScenePoint)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::ScenePoint) + }; - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr) override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; virtual void RefreshPointGeometry(const VPointF &point); void RefreshLine(); + auto GetColorRole() const -> VColorRole; + void SetColorRole(VColorRole role); + + auto GetLabelLineColorRole() const -> VColorRole; + void SetLabelLineColorRole(VColorRole role); + + auto GetLabelTextColorRole() const -> VColorRole; + void SetLabelTextColorRole(VColorRole role); + + auto GetLabelTextHoverColorRole() const -> VColorRole; + void SetLabelTextHoverColorRole(VColorRole role); + protected: /** @brief namePoint point label. */ - VGraphicsSimpleTextItem *m_namePoint; + VGraphicsSimpleTextItem *m_namePoint; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) /** @brief lineName line what we see if label moved too away from point. */ - VScaledLine *m_lineName; + VScaledLine *m_lineName; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) - bool m_onlyPoint; - bool m_isHovered; - bool m_showLabel; + bool m_onlyPoint{false}; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) + bool m_isHovered{false}; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) + bool m_showLabel{true}; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) - /** @brief m_baseColor base color of point. */ - QColor m_baseColor; + bool m_selectedFromChild{false}; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) - bool m_selectedFromChild; - - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; void SetOnlyPoint(bool value); auto IsOnlyPoint() const -> bool; @@ -79,6 +91,20 @@ private: Q_DISABLE_COPY_MOVE(VScenePoint) // NOLINT void ScaleMainPenWidth(qreal scale); + + VColorRole m_role; }; +//--------------------------------------------------------------------------------------------------------------------- +inline auto VScenePoint::GetColorRole() const -> VColorRole +{ + return m_role; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VScenePoint::SetColorRole(VColorRole role) +{ + m_role = role; +} + #endif // VSCENEPOINT_H diff --git a/src/libs/vwidgets/vsimplecurve.cpp b/src/libs/vwidgets/vsimplecurve.cpp index 364fb0180..1b750a87d 100644 --- a/src/libs/vwidgets/vsimplecurve.cpp +++ b/src/libs/vwidgets/vsimplecurve.cpp @@ -36,25 +36,26 @@ #include #include #include -#include #include -#include "global.h" +#include "../ifc/ifcdef.h" #include "../vgeometry/vabstractcurve.h" +#include "../vmisc/theme/vscenestylesheet.h" #include "../vmisc/vabstractapplication.h" +#include "global.h" template class QSharedPointer; //--------------------------------------------------------------------------------------------------------------------- VSimpleCurve::VSimpleCurve(quint32 id, const QSharedPointer &curve, QObject *parent) - : VAbstractSimple(id, parent), - VCurvePathItem(), - m_curve(curve), - m_isHovered(false) + : VAbstractSimple(id, parent), + VCurvePathItem(VColorRole::CustomColor), + m_curve(curve), + m_isHovered(false) { - this->setBrush(QBrush(Qt::NoBrush)); - this->setAcceptHoverEvents(true); - this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus + setBrush(QBrush(Qt::NoBrush)); + setAcceptHoverEvents(true); + setFlag(QGraphicsItem::ItemIsFocusable, true); // For keyboard input focus } //--------------------------------------------------------------------------------------------------------------------- @@ -93,14 +94,15 @@ void VSimpleCurve::mousePressEvent(QGraphicsSceneMouseEvent *event) QGraphicsPathItem::mousePressEvent(event); // Somehow clicking on notselectable object do not clean previous selections. - if (not (flags() & ItemIsSelectable) && scene()) + if (not(flags() & ItemIsSelectable) && scene()) { scene()->clearSelection(); } if (selectionType == SelectionType::ByMouseRelease) { - event->accept();// Special for not selectable item first need to call standard mousePressEvent then accept event + event + ->accept(); // Special for not selectable item first need to call standard mousePressEvent then accept event } else { @@ -165,11 +167,11 @@ void VSimpleCurve::keyReleaseEvent(QKeyEvent *event) { case Qt::Key_Delete: emit Delete(); - return; //Leave this method immediately after call!!! + return; // Leave this method immediately after call!!! default: break; } - QGraphicsPathItem::keyReleaseEvent ( event ); + QGraphicsPathItem::keyReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- @@ -178,5 +180,11 @@ void VSimpleCurve::ScalePenWidth() qreal width = m_isHovered ? VAbstractApplication::VApp()->Settings()->WidthMainLine() : VAbstractApplication::VApp()->Settings()->WidthHairLine(); width = ScaleWidth(width, SceneScale(scene())); - setPen(QPen(CorrectColor(this, m_curve->GetColor()), width, LineStyleToPenStyle(m_curve->GetPenStyle()))); + + QPen curvePen = pen(); + curvePen.setColor( + VSceneStylesheet::CorrectToolColor(this, VSceneStylesheet::CorrectToolColorForDarkTheme(m_curve->GetColor()))); + curvePen.setWidthF(width); + curvePen.setStyle(LineStyleToPenStyle(m_curve->GetPenStyle())); + setPen(curvePen); } diff --git a/src/libs/vwidgets/vsimplecurve.h b/src/libs/vwidgets/vsimplecurve.h index 6ed89594b..af53fb258 100644 --- a/src/libs/vwidgets/vsimplecurve.h +++ b/src/libs/vwidgets/vsimplecurve.h @@ -29,7 +29,6 @@ #ifndef VSIMPLECURVE_H #define VSIMPLECURVE_H - #include #include #include @@ -49,12 +48,16 @@ template class QSharedPointer; class VSimpleCurve : public VAbstractSimple, public VCurvePathItem { Q_OBJECT // NOLINT + public: VSimpleCurve(quint32 id, const QSharedPointer &curve, QObject *parent = nullptr); - virtual ~VSimpleCurve() = default; + ~VSimpleCurve() override = default; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Vis::SimpleCurve)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::SimpleCurve) + }; void RefreshGeometry(const QSharedPointer &curve); signals: @@ -70,14 +73,14 @@ public slots: void CurveSelected(bool selected); protected: - virtual void mousePressEvent( QGraphicsSceneMouseEvent * event ) override; - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override; - virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) override; - virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) override; - virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) override; - virtual void keyReleaseEvent ( QKeyEvent * event ) override; - virtual void ScalePenWidth() override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; + void keyReleaseEvent(QKeyEvent *event) override; + void ScalePenWidth() override; private: Q_DISABLE_COPY_MOVE(VSimpleCurve) // NOLINT diff --git a/src/libs/vwidgets/vsimplepoint.cpp b/src/libs/vwidgets/vsimplepoint.cpp index 02319bc2e..e730817b8 100644 --- a/src/libs/vwidgets/vsimplepoint.cpp +++ b/src/libs/vwidgets/vsimplepoint.cpp @@ -39,22 +39,17 @@ #include #include #include -#include #include "global.h" -#include "../vgeometry/vgobject.h" -#include "../vgeometry/vpointf.h" #include "vgraphicssimpletextitem.h" -#include "../vmisc/vabstractapplication.h" //--------------------------------------------------------------------------------------------------------------------- -VSimplePoint::VSimplePoint(quint32 id, const QColor ¤tColor, QObject *parent) - : VAbstractSimple(id, parent), - VScenePoint(), - m_visualizationMode(false), - m_alwaysHovered(false) +VSimplePoint::VSimplePoint(quint32 id, VColorRole role, QObject *parent) + : VAbstractSimple(id, parent), + VScenePoint(role), + m_visualizationMode(false), + m_alwaysHovered(false) { - m_baseColor = currentColor; connect(m_namePoint, &VGraphicsSimpleTextItem::ShowContextMenu, this, &VSimplePoint::contextMenuEvent); connect(m_namePoint, &VGraphicsSimpleTextItem::DeleteTool, this, &VSimplePoint::DeleteFromLabel); connect(m_namePoint, &VGraphicsSimpleTextItem::PointChoosed, this, &VSimplePoint::PointChoosed); @@ -151,13 +146,13 @@ void VSimplePoint::mousePressEvent(QGraphicsSceneMouseEvent *event) QGraphicsEllipseItem::mousePressEvent(event); // Somehow clicking on notselectable object do not clean previous selections. - if (not (flags() & ItemIsSelectable) && scene()) + if (not(flags() & ItemIsSelectable) && scene()) { scene()->clearSelection(); } if (selectionType == SelectionType::ByMouseRelease) - {// Special for not selectable item first need to call standard mousePressEvent then accept event + { // Special for not selectable item first need to call standard mousePressEvent then accept event event->accept(); } else @@ -208,11 +203,11 @@ void VSimplePoint::keyReleaseEvent(QKeyEvent *event) { case Qt::Key_Delete: emit Delete(); - return; //Leave this method immediately after call!!! + return; // Leave this method immediately after call!!! default: break; } - VScenePoint::keyReleaseEvent ( event ); + VScenePoint::keyReleaseEvent(event); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vwidgets/vsimplepoint.h b/src/libs/vwidgets/vsimplepoint.h index 28ae50ffc..23ed0b867 100644 --- a/src/libs/vwidgets/vsimplepoint.h +++ b/src/libs/vwidgets/vsimplepoint.h @@ -29,7 +29,6 @@ #ifndef VSIMPLEPOINT_H #define VSIMPLEPOINT_H - #include #include #include @@ -40,8 +39,8 @@ #include #include "../vmisc/def.h" -#include "vabstractsimple.h" #include "../vwidgets/vscenepoint.h" +#include "vabstractsimple.h" class VGraphicsSimpleTextItem; class VPointF; @@ -49,15 +48,19 @@ class VPointF; class VSimplePoint : public VAbstractSimple, public VScenePoint { Q_OBJECT // NOLINT + public: - VSimplePoint(quint32 id, const QColor ¤tColor, QObject *parent = nullptr); - virtual ~VSimplePoint() = default; + VSimplePoint(quint32 id, VColorRole role, QObject *parent = nullptr); + ~VSimplePoint() override = default; - virtual auto type() const -> int override { return Type; } - enum { Type = UserType + static_cast(Vis::SimplePoint)}; + auto type() const -> int override { return Type; } + enum + { + Type = UserType + static_cast(Vis::SimplePoint) + }; - using VScenePoint::SetOnlyPoint; using VScenePoint::IsOnlyPoint; + using VScenePoint::SetOnlyPoint; void SetVisualizationMode(bool value); auto IsVisualizationMode() const -> bool; @@ -68,7 +71,8 @@ public: void EnableToolMove(bool move); void AllowLabelHover(bool enabled); void AllowLabelSelecting(bool enabled); - virtual void ToolSelectionType(const SelectionType &type) override; + void ToolSelectionType(const SelectionType &type) override; + signals: /** * @brief Choosed send id when clicked. @@ -85,13 +89,13 @@ public slots: void ChangedPosition(const QPointF &pos); protected: - virtual void mousePressEvent( QGraphicsSceneMouseEvent * event ) override; - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override; - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; - virtual void keyReleaseEvent ( QKeyEvent * event ) override; - virtual auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + void keyReleaseEvent(QKeyEvent *event) override; + auto itemChange(GraphicsItemChange change, const QVariant &value) -> QVariant override; + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; private: Q_DISABLE_COPY_MOVE(VSimplePoint) // NOLINT diff --git a/src/libs/vwidgets/vtextgraphicsitem.cpp b/src/libs/vwidgets/vtextgraphicsitem.cpp index 3c5e6780a..cc6b88671 100644 --- a/src/libs/vwidgets/vtextgraphicsitem.cpp +++ b/src/libs/vwidgets/vtextgraphicsitem.cpp @@ -49,6 +49,7 @@ #include "../vmisc/svgfont/vsvgfont.h" #include "../vmisc/svgfont/vsvgfontdatabase.h" #include "../vmisc/vabstractvalapplication.h" +#include "theme/vscenestylesheet.h" #include "vtextgraphicsitem.h" namespace @@ -165,9 +166,9 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem { Q_UNUSED(widget) Q_UNUSED(option) - painter->fillRect(m_rectBoundingBox, QColor(251, 251, 175, 128 /*50% opacity*/)); + painter->fillRect(m_rectBoundingBox, VSceneStylesheet::PatternPieceStyle().LabelBackgroundColor()); painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); - painter->setPen(Qt::black); + painter->setPen(VSceneStylesheet::PatternPieceStyle().LabelTextColor()); PaintLabel(painter); @@ -175,14 +176,14 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem if (m_eMode != mNormal) { // outline the rectangle - painter->setPen(QPen(Qt::black, 2, Qt::DashLine)); + painter->setPen(QPen(VSceneStylesheet::PatternPieceStyle().LabelModeColor(), 2, Qt::DashLine)); painter->drawRect(boundingRect().adjusted(1, 1, -1, -1)); if (m_eMode != mRotate) { // draw the resize square - painter->setPen(Qt::black); - painter->setBrush(Qt::black); + painter->setPen(VSceneStylesheet::PatternPieceStyle().LabelModeColor()); + painter->setBrush(VSceneStylesheet::PatternPieceStyle().LabelModeColor()); painter->drawRect(m_rectResize.adjusted(-1, -1, -1, -1)); if (m_eMode == mResize) @@ -195,13 +196,13 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem else { // in rotate mode, draw the circle in the middle - painter->setPen(Qt::black); - painter->setBrush(Qt::black); + painter->setPen(VSceneStylesheet::PatternPieceStyle().LabelModeColor()); + painter->setBrush(VSceneStylesheet::PatternPieceStyle().LabelModeColor()); painter->drawEllipse(QPointF(m_rectBoundingBox.width() / 2, m_rectBoundingBox.height() / 2), rotateCircle, rotateCircle); if (m_rectBoundingBox.width() > minW * 3 && m_rectBoundingBox.height() > minH * 3) { - painter->setPen(QPen(Qt::black, 3)); + painter->setPen(QPen(VSceneStylesheet::PatternPieceStyle().LabelModeColor(), 3)); painter->setBrush(Qt::NoBrush); // and then draw the arc in each of the corners int iTop = rotateRect - rotateArc; diff --git a/src/libs/vwidgets/vwidgetpopup.cpp b/src/libs/vwidgets/vwidgetpopup.cpp index 7faaf4665..9f96368d4 100644 --- a/src/libs/vwidgets/vwidgetpopup.cpp +++ b/src/libs/vwidgets/vwidgetpopup.cpp @@ -28,7 +28,6 @@ #include "vwidgetpopup.h" -#include #include #include #include @@ -36,16 +35,20 @@ #include #include #include +#include #include #include #include -#include #include "../vmisc/def.h" //--------------------------------------------------------------------------------------------------------------------- VWidgetPopup::VWidgetPopup(QWidget *parent) - :QFrame(parent, Qt::Popup), mWidget(nullptr), mOwn(true), mOldParent(nullptr), lifeTime(-1) + : QFrame(parent, Qt::Popup), + mWidget(nullptr), + mOwn(true), + mOldParent(nullptr), + lifeTime(-1) { setAttribute(Qt::WA_WindowPropagation); @@ -111,7 +114,7 @@ void VWidgetPopup::Show(QPoint coord) QFrame::show(); const QRect screen(QGuiApplication::primaryScreen()->availableGeometry()); - coord.setX(coord.x() - width()/2); + coord.setX(coord.x() - width() / 2); if (coord.x() < screen.x()) { @@ -123,14 +126,14 @@ void VWidgetPopup::Show(QPoint coord) coord.setY(screen.y()); } - if (coord.x() > (screen.right()-width())) + if (coord.x() > (screen.right() - width())) { - coord.setX(screen.right()-width()); + coord.setX(screen.right() - width()); } - if (coord.y() > (screen.bottom()-height())) + if (coord.y() > (screen.bottom() - height())) { - coord.setY(screen.bottom()-height()); + coord.setY(screen.bottom() - height()); } move(coord);