diff --git a/ChangeLog.txt b/ChangeLog.txt
index bf1736077..444acb6d2 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -17,6 +17,7 @@
- New placelabel shape Circle.
- Two new passmark types: U and Box.
- [#969] Fix length to label after soom.
+- [#725] Improve labels on drawing.
# Version 0.6.2 (unreleased)
- [#903] Bug in tool Cut Spline path.
diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp
index 431a24555..68f667dc1 100644
--- a/src/app/valentina/mainwindow.cpp
+++ b/src/app/valentina/mainwindow.cpp
@@ -2055,6 +2055,69 @@ void MainWindow::ToolBarTools()
connect(ui->actionPreviousPatternPiece, &QAction::triggered, this, &MainWindow::PreviousPatternPiece);
connect(ui->actionNextPatternPiece, &QAction::triggered, this, &MainWindow::NextPatternPiece);
+
+ ui->actionIncreaseLabelFont->setShortcut(QKeySequence(Qt::ShiftModifier + Qt::Key_Plus));
+ connect(ui->actionIncreaseLabelFont, &QAction::triggered, this, [this]()
+ {
+ VSettings *settings = qApp->ValentinaSettings();
+ settings->SetLabelFontSize(settings->GetLabelFontSize() + 1);
+ if (sceneDraw)
+ {
+ sceneDraw->update();
+ }
+
+ if (sceneDetails)
+ {
+ sceneDetails->update();
+ }
+ });
+
+ ui->actionDecreaseLabelFont->setShortcut(QKeySequence(Qt::ShiftModifier + Qt::Key_Minus));
+ connect(ui->actionDecreaseLabelFont, &QAction::triggered, this, [this]()
+ {
+ VSettings *settings = qApp->ValentinaSettings();
+ settings->SetLabelFontSize(settings->GetLabelFontSize() - 1);
+ if (sceneDraw)
+ {
+ sceneDraw->update();
+ }
+
+ if (sceneDetails)
+ {
+ sceneDetails->update();
+ }
+ });
+
+ ui->actionOriginalLabelFont->setShortcut(QKeySequence(Qt::ShiftModifier + Qt::Key_0));
+ connect(ui->actionOriginalLabelFont, &QAction::triggered, this, [this]()
+ {
+ VSettings *settings = qApp->ValentinaSettings();
+ settings->SetLabelFontSize(settings->GetDefLabelFontSize());
+ if (sceneDraw)
+ {
+ sceneDraw->update();
+ }
+
+ if (sceneDetails)
+ {
+ sceneDetails->update();
+ }
+ });
+
+ ui->actionHideLabels->setShortcut(QKeySequence(Qt::AltModifier + Qt::Key_L));
+ connect(ui->actionHideLabels, &QAction::triggered, this, [this](bool checked)
+ {
+ qApp->ValentinaSettings()->SetHideLabels(checked);
+ if (sceneDraw)
+ {
+ sceneDraw->update();
+ }
+
+ if (sceneDetails)
+ {
+ sceneDetails->update();
+ }
+ });
}
//---------------------------------------------------------------------------------------------------------------------
@@ -3018,6 +3081,10 @@ void MainWindow::Clear()
m_taskbarProgress->setVisible(false);
#endif
m_statusLabel->setVisible(true);
+ ui->actionIncreaseLabelFont->setEnabled(false);
+ ui->actionDecreaseLabelFont->setEnabled(false);
+ ui->actionOriginalLabelFont->setEnabled(false);
+ ui->actionHideLabels->setEnabled(false);
}
//---------------------------------------------------------------------------------------------------------------------
@@ -3370,6 +3437,10 @@ void MainWindow::SetEnableWidgets(bool enable)
ui->actionUnloadMeasurements->setEnabled(enable && designStage);
ui->actionPreviousPatternPiece->setEnabled(enable && drawStage);
ui->actionNextPatternPiece->setEnabled(enable && drawStage);
+ ui->actionIncreaseLabelFont->setEnabled(enable);
+ ui->actionDecreaseLabelFont->setEnabled(enable);
+ ui->actionOriginalLabelFont->setEnabled(enable);
+ ui->actionHideLabels->setEnabled(enable);
actionDockWidgetToolOptions->setEnabled(enable && designStage);
actionDockWidgetGroups->setEnabled(enable && designStage);
diff --git a/src/app/valentina/mainwindow.ui b/src/app/valentina/mainwindow.ui
index 87aea7ea2..fee89b0fe 100644
--- a/src/app/valentina/mainwindow.ui
+++ b/src/app/valentina/mainwindow.ui
@@ -1744,6 +1744,11 @@
+
+
+
+
+
@@ -2760,6 +2765,56 @@
Ctrl+PgUp
+
+
+ false
+
+
+
+
+
+ Increase label font
+
+
+ QAction::NoRole
+
+
+
+
+ false
+
+
+
+
+
+ Decrease label font
+
+
+ QAction::NoRole
+
+
+
+
+ false
+
+
+
+
+
+ Original label font
+
+
+
+
+ true
+
+
+ false
+
+
+ Hide labels
+
+
diff --git a/src/libs/vmisc/def.cpp b/src/libs/vmisc/def.cpp
index 37985ad38..9af9d13b5 100644
--- a/src/libs/vmisc/def.cpp
+++ b/src/libs/vmisc/def.cpp
@@ -62,6 +62,9 @@ const qreal defCurveApproximationScale = 0.5;
const qreal minCurveApproximationScale = 0.1;
const qreal maxCurveApproximationScale = 10.0;
+const int minLabelFontSize = 5;
+const int maxLabelFontSize = 100;
+
//functions
const QString degTorad_F = QStringLiteral("degTorad");
const QString radTodeg_F = QStringLiteral("radTodeg");
diff --git a/src/libs/vmisc/def.h b/src/libs/vmisc/def.h
index a89994099..a4177016e 100644
--- a/src/libs/vmisc/def.h
+++ b/src/libs/vmisc/def.h
@@ -75,6 +75,9 @@ extern const qreal defCurveApproximationScale;
extern const qreal minCurveApproximationScale;
extern const qreal maxCurveApproximationScale;
+extern const int minLabelFontSize;
+extern const int maxLabelFontSize;
+
enum class NodeDetail : char { Contour, Modeling };
enum class SceneObject : char { Point, Line, Spline, Arc, ElArc, SplinePath, Detail, Unknown };
enum class MeasurementsType : char { Multisize, Individual , Unknown};
diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp
index e8dc58228..654674f9c 100644
--- a/src/libs/vmisc/vcommonsettings.cpp
+++ b/src/libs/vmisc/vcommonsettings.cpp
@@ -76,6 +76,8 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternLabelFont, (QLatin1String
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternLineWidth, (QLatin1String("pattern/lineWidth")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternCurveApproximationScale, (QLatin1String("pattern/curveApproximationScale")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternShowCurveDetails, (QLatin1String("pattern/showCurveDetails")))
+Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternLabelFontSize, (QLatin1String("pattern/labelFontSize")))
+Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternHideLabels, (QLatin1String("pattern/hideLabels")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingGeneralRecentFileList, (QLatin1String("recentFileList")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingGeneralRestoreFileList, (QLatin1String("restoreFileList")))
@@ -104,6 +106,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLabelUserTimeFormats, (QLatin1St
qreal curveApproximationCached = -1;
Q_GLOBAL_STATIC(QString, localeCached)
qreal lineWidthCached = 0;
+int labelFontSizeCached = 0;
//---------------------------------------------------------------------------------------------------------------------
QStringList ClearFormats(const QStringList &predefinedFormats, QStringList formats)
@@ -962,6 +965,48 @@ void VCommonSettings::SetLabelFont(const QFont &f)
setValue(*settingPatternLabelFont, f);
}
+//---------------------------------------------------------------------------------------------------------------------
+int VCommonSettings::GetLabelFontSize() const
+{
+ if (labelFontSizeCached <= 0)
+ {
+ bool ok = false;
+ labelFontSizeCached = value(*settingPatternLabelFontSize, GetDefLabelFontSize()).toInt(&ok);
+ if (not ok)
+ {
+ labelFontSizeCached = GetDefLabelFontSize();
+ }
+ labelFontSizeCached = qBound(minLabelFontSize, labelFontSizeCached, maxLabelFontSize);
+ }
+ return labelFontSizeCached;
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+void VCommonSettings::SetLabelFontSize(int size)
+{
+ size = qBound(minLabelFontSize, size, maxLabelFontSize);
+ setValue(*settingPatternLabelFontSize, size);
+ labelFontSizeCached = size;
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+int VCommonSettings::GetDefLabelFontSize()
+{
+ return 32;
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+bool VCommonSettings::GetHideLabels() const
+{
+ return value(*settingPatternHideLabels, false).toBool();
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+void VCommonSettings::SetHideLabels(bool value)
+{
+ setValue(*settingPatternHideLabels, value);
+}
+
//---------------------------------------------------------------------------------------------------------------------
QString VCommonSettings::GetLabelDateFormat() const
{
diff --git a/src/libs/vmisc/vcommonsettings.h b/src/libs/vmisc/vcommonsettings.h
index e52ca427a..19a465902 100644
--- a/src/libs/vmisc/vcommonsettings.h
+++ b/src/libs/vmisc/vcommonsettings.h
@@ -181,6 +181,13 @@ public:
QFont GetLabelFont() const;
void SetLabelFont(const QFont &f);
+ int GetLabelFontSize() const;
+ void SetLabelFontSize(int size);
+ static int GetDefLabelFontSize();
+
+ bool GetHideLabels() const;
+ void SetHideLabels(bool value);
+
#if !defined(Q_OS_WIN)
static const QString unixStandardSharePath;
#endif
diff --git a/src/libs/vwidgets/vgraphicssimpletextitem.cpp b/src/libs/vwidgets/vgraphicssimpletextitem.cpp
index 571b7eafd..f4c72d183 100644
--- a/src/libs/vwidgets/vgraphicssimpletextitem.cpp
+++ b/src/libs/vwidgets/vgraphicssimpletextitem.cpp
@@ -57,7 +57,6 @@
*/
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent)
: QGraphicsSimpleTextItem(parent),
- m_fontSize(0),
selectionType(SelectionType::ByMouseRelease),
m_oldScale(1),
m_showParentTooltip(true)
@@ -73,7 +72,6 @@ VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent)
*/
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem( const QString & text, QGraphicsItem * parent )
: QGraphicsSimpleTextItem(text, parent),
- m_fontSize(0),
selectionType(SelectionType::ByMouseRelease),
m_oldScale(1),
m_showParentTooltip(true)
@@ -92,6 +90,13 @@ void VGraphicsSimpleTextItem::paint(QPainter *painter, const QStyleOptionGraphic
}
};
+ QFont font = this->font();
+ if (font.pointSize() != qApp->Settings()->GetLabelFontSize())
+ {
+ font.setPointSize(qApp->Settings()->GetLabelFontSize());
+ setFont(font);
+ }
+
QGraphicsScene *scene = this->scene();
const qreal scale = SceneScale(scene);
if (scale > 1 && not VFuzzyComparePossibleNulls(m_oldScale, scale))
@@ -381,9 +386,8 @@ void VGraphicsSimpleTextItem::Init()
this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus
this->setAcceptHoverEvents(true);
QFont font = this->font();
- font.setPointSize(font.pointSize()+20);
- m_fontSize = font.pointSize();
- this->setFont(font);
- m_oldScale = minVisibleFontSize / m_fontSize;
+ font.setPointSize(qApp->Settings()->GetLabelFontSize());
+ setFont(font);
+ m_oldScale = minVisibleFontSize / qApp->Settings()->GetLabelFontSize();
setScale(m_oldScale);
}
diff --git a/src/libs/vwidgets/vgraphicssimpletextitem.h b/src/libs/vwidgets/vgraphicssimpletextitem.h
index 351f03018..bc84eb3fc 100644
--- a/src/libs/vwidgets/vgraphicssimpletextitem.h
+++ b/src/libs/vwidgets/vgraphicssimpletextitem.h
@@ -52,7 +52,6 @@ public:
explicit VGraphicsSimpleTextItem( const QString & text, QGraphicsItem *parent = nullptr );
virtual ~VGraphicsSimpleTextItem() =default;
- qint32 BaseFontSize()const;
virtual int type() const override {return Type;}
enum { Type = UserType + static_cast(Vis::GraphicsSimpleTextItem)};
@@ -92,8 +91,6 @@ protected:
virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) override;
virtual void keyReleaseEvent ( QKeyEvent * event ) override;
private:
- /** @brief fontSize label font size. */
- qint32 m_fontSize;
SelectionType selectionType;
qreal m_oldScale;
bool m_showParentTooltip;
@@ -105,14 +102,4 @@ private:
void CorrectLabelPosition();
};
-//---------------------------------------------------------------------------------------------------------------------
-/**
- * @brief FontSize return label font size.
- * @return font size.
- */
-inline qint32 VGraphicsSimpleTextItem::BaseFontSize() const
-{
- return m_fontSize;
-}
-
#endif // VGRAPHICSSIMPLETEXTITEM_H
diff --git a/src/libs/vwidgets/vscenepoint.cpp b/src/libs/vwidgets/vscenepoint.cpp
index 1cb493134..95b092608 100644
--- a/src/libs/vwidgets/vscenepoint.cpp
+++ b/src/libs/vwidgets/vscenepoint.cpp
@@ -66,7 +66,7 @@ void VScenePoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
{
const qreal scale = SceneScale(scene());
- if (m_namePoint->BaseFontSize()*scale < minVisibleFontSize)
+ if (qApp->Settings()->GetLabelFontSize()*scale < minVisibleFontSize || qApp->Settings()->GetHideLabels())
{
m_namePoint->setVisible(false);
m_lineName->setVisible(false);