New option piece line width.
This commit is contained in:
parent
b14cb7128b
commit
d16aa1af64
|
@ -117,6 +117,9 @@ PuzzlePreferencesLayoutPage::PuzzlePreferencesLayoutPage(QWidget *parent) :
|
|||
|
||||
connect(ui->doubleSpinBoxPiecesGap, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
||||
this, [this](){m_settingsChanged=true;});
|
||||
ui->doubleSpinBoxPiecesGap->setSuffix(UnitsToStr(m_oldLayoutUnit));
|
||||
|
||||
ui->spinBoxLineWidth->setSuffix(UnitsToStr(Unit::Px));
|
||||
|
||||
connect(ui->checkBoxWarningPiecesSuperposition, &QCheckBox::stateChanged, this, [this](){m_settingsChanged=true;});
|
||||
connect(ui->checkBoxStickyEdges, &QCheckBox::stateChanged, this, [this](){m_settingsChanged=true;});
|
||||
|
@ -164,6 +167,8 @@ auto PuzzlePreferencesLayoutPage::Apply() -> QStringList
|
|||
settings->SetLayoutWarningPiecesOutOfBound(ui->checkBoxWarningPiecesOutOfBound->isChecked());
|
||||
settings->SetLayoutFollowGrainline(ui->checkBoxFollowGrainline->isChecked());
|
||||
|
||||
settings->SetLayoutLineWidth(ui->spinBoxLineWidth->value());
|
||||
|
||||
if (m_settingsChanged)
|
||||
{
|
||||
preferences.append(tr("default layout settings"));
|
||||
|
@ -260,6 +265,7 @@ void PuzzlePreferencesLayoutPage::ConvertPaperSize()
|
|||
|
||||
ui->doubleSpinBoxPiecesGap->setMaximum(UnitConvertor(VPSettings::GetMaxLayoutPieceGap(), Unit::Cm, layoutUnit));
|
||||
ui->doubleSpinBoxPiecesGap->setValue(newGap);
|
||||
ui->doubleSpinBoxPiecesGap->setSuffix(UnitsToStr(layoutUnit));
|
||||
|
||||
m_settingsChanged = true;
|
||||
}
|
||||
|
@ -670,6 +676,8 @@ void PuzzlePreferencesLayoutPage::ReadSettings()
|
|||
LayoutSheetIgnoreMargins(static_cast<int>(ui->checkBoxLayoutIgnoreFileds->isChecked()));
|
||||
LayoutTileIgnoreMargins(static_cast<int>(ui->checkBoxTileIgnoreFileds->isChecked()));
|
||||
|
||||
ui->spinBoxLineWidth->setValue(settings->GetLayoutLineWidth());
|
||||
|
||||
m_settingsChanged = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>616</width>
|
||||
<height>668</height>
|
||||
<height>686</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -294,7 +294,7 @@
|
|||
<property name="title">
|
||||
<string>Control</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_14">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBoxWarningPiecesSuperposition">
|
||||
<property name="text">
|
||||
|
@ -337,6 +337,27 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Line width:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinBoxLineWidth">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
|
|
|
@ -140,7 +140,8 @@ void VPLayout::SetTileFactory(VPTileFactory *newTileFactory)
|
|||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VPLayout::RefreshScenePieces() const
|
||||
{
|
||||
for (const auto& sheet : GetSheets())
|
||||
const QList<VPSheetPtr> sheets = GetSheets();
|
||||
for (const auto& sheet : sheets)
|
||||
{
|
||||
if (not sheet.isNull())
|
||||
{
|
||||
|
|
|
@ -45,6 +45,8 @@
|
|||
|
||||
#include "../vlayout/vtextmanager.h"
|
||||
|
||||
#include "../vpapplication.h"
|
||||
|
||||
#include "vlayoutpiecepath.h"
|
||||
#include "vplacelabelitem.h"
|
||||
|
||||
|
@ -56,8 +58,6 @@ Q_LOGGING_CATEGORY(pGraphicsPiece, "p.graphicsPiece")
|
|||
|
||||
namespace
|
||||
{
|
||||
constexpr qreal penWidth = 1;
|
||||
|
||||
QColor mainColor = Qt::black;
|
||||
QColor errorColor = Qt::red;
|
||||
}
|
||||
|
@ -94,7 +94,8 @@ auto VPGraphicsPiece::boundingRect() const -> QRectF
|
|||
shape.addPath(m_placeLabels);
|
||||
shape.addPath(m_stickyPath);
|
||||
|
||||
constexpr qreal halfPenWidth = penWidth/2.;
|
||||
VPSettings *settings = VPApplication::VApp()->PuzzleSettings();
|
||||
const qreal halfPenWidth = settings->GetLayoutLineWidth()/2.;
|
||||
|
||||
return shape.boundingRect().adjusted(-halfPenWidth, -halfPenWidth, halfPenWidth, halfPenWidth);
|
||||
}
|
||||
|
@ -116,7 +117,8 @@ void VPGraphicsPiece::paint(QPainter *painter, const QStyleOptionGraphicsItem *o
|
|||
Q_UNUSED(widget);
|
||||
Q_UNUSED(option);
|
||||
|
||||
QPen pen(PieceColor(), penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
|
||||
VPSettings *settings = VPApplication::VApp()->PuzzleSettings();
|
||||
QPen pen(PieceColor(), settings->GetLayoutLineWidth(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
|
||||
painter->setPen(pen);
|
||||
|
||||
PaintPiece(painter);
|
||||
|
|
|
@ -1873,6 +1873,13 @@ void VPMainWindow::ConnectToPreferences(const QSharedPointer<DialogPuzzlePrefere
|
|||
// Must be first
|
||||
connect(preferences.data(), &DialogPuzzlePreferences::UpdateProperties, this, &VPMainWindow::WindowsLocale);
|
||||
connect(preferences.data(), &DialogPuzzlePreferences::UpdateProperties, this, &VPMainWindow::ToolBarStyles);
|
||||
connect(preferences.data(), &DialogPuzzlePreferences::UpdateProperties, this, [this]()
|
||||
{
|
||||
if (not m_layout.isNull())
|
||||
{
|
||||
m_layout->RefreshScenePieces();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<string>Puzzle</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/64x64/logo.png</normaloff>:/puzzleicon/64x64/logo.png</iconset>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
|
@ -232,7 +232,7 @@
|
|||
<string notr="true"/>
|
||||
</property>
|
||||
<attribute name="icon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/64x64/iconCurrentPiece.png</normaloff>:/puzzleicon/64x64/iconCurrentPiece.png</iconset>
|
||||
</attribute>
|
||||
<attribute name="title">
|
||||
|
@ -665,7 +665,7 @@
|
|||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
<height>400000</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
|
@ -678,7 +678,7 @@
|
|||
</widget>
|
||||
<widget class="QWidget" name="tabSheetProperty">
|
||||
<attribute name="icon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/64x64/iconLayout.png</normaloff>:/puzzleicon/64x64/iconLayout.png</iconset>
|
||||
</attribute>
|
||||
<attribute name="title">
|
||||
|
@ -953,7 +953,7 @@
|
|||
<string notr="true">...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/32X32/horizontal_grainline.png</normaloff>:/puzzleicon/32X32/horizontal_grainline.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
|
@ -976,7 +976,7 @@
|
|||
<string notr="true">...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/32X32/vertical_grainline.png</normaloff>:/puzzleicon/32X32/vertical_grainline.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
|
@ -1202,7 +1202,7 @@
|
|||
</widget>
|
||||
<widget class="QWidget" name="tabTilesProperty">
|
||||
<attribute name="icon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/64x64/iconTiles.png</normaloff>:/puzzleicon/64x64/iconTiles.png</iconset>
|
||||
</attribute>
|
||||
<attribute name="title">
|
||||
|
@ -1575,7 +1575,7 @@
|
|||
</widget>
|
||||
<widget class="QWidget" name="tabLayoutProperty">
|
||||
<attribute name="icon">
|
||||
<iconset>
|
||||
<iconset resource="share/resources/puzzleicon.qrc">
|
||||
<normaloff>:/puzzleicon/64x64/iconProperties.png</normaloff>:/puzzleicon/64x64/iconProperties.png</iconset>
|
||||
</attribute>
|
||||
<attribute name="title">
|
||||
|
@ -2352,12 +2352,13 @@
|
|||
<tabstop>checkBoxLayoutWarningPiecesOutOfBound</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="share/resources/puzzleicon.qrc"/>
|
||||
<include location="../../libs/vmisc/share/resources/icon.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
<buttongroups>
|
||||
<buttongroup name="buttonGroupRotationDirection"/>
|
||||
<buttongroup name="buttonGroupTileOrientation"/>
|
||||
<buttongroup name="buttonGroupSheetOrientation"/>
|
||||
<buttongroup name="buttonGroupRotationDirection"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
**
|
||||
*************************************************************************/
|
||||
#include "vpsettings.h"
|
||||
#include "qglobal.h"
|
||||
|
||||
#include <QMarginsF>
|
||||
|
||||
|
@ -52,6 +53,9 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutWarningPiecesOutOfBound,
|
|||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutFollowGrainline, (QLatin1String("layout/followGrainline")))
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutPieceGap, (QLatin1String("layout/pieceGap")))
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutExportFormat, (QLatin1String("layout/exportFormat")))
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutLineWidth, (QLatin1String("layout/lineWidth")))
|
||||
|
||||
int cachedLineWidth = -1;
|
||||
} // namespace
|
||||
|
||||
Q_DECLARE_METATYPE(QMarginsF)
|
||||
|
@ -316,3 +320,21 @@ void VPSettings::SetLayoutExportFormat(qint8 format)
|
|||
{
|
||||
setValue(*settingLayoutExportFormat, format);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
auto VPSettings::GetLayoutLineWidth() const -> int
|
||||
{
|
||||
if (cachedLineWidth == -1)
|
||||
{
|
||||
cachedLineWidth = qvariant_cast<int>(value(*settingLayoutLineWidth, 1));
|
||||
}
|
||||
|
||||
return cachedLineWidth;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VPSettings::SetLayoutLineWidth(int width)
|
||||
{
|
||||
cachedLineWidth = qBound(1, width, 10);
|
||||
setValue(*settingLayoutLineWidth, cachedLineWidth);
|
||||
}
|
||||
|
|
|
@ -100,6 +100,9 @@ public:
|
|||
auto GetLayoutExportFormat() const -> qint8;
|
||||
void SetLayoutExportFormat(qint8 format);
|
||||
|
||||
auto GetLayoutLineWidth() const -> int;
|
||||
void SetLayoutLineWidth(int width);
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(VPSettings)
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue
Block a user