View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0012438 | Scribus | Graphics / Image Frames | public | 2014-06-26 12:21 | 2025-03-23 19:08 |
| Reporter | ale | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | new | Resolution | open | ||
| Product Version | 1.5.0svn | ||||
| Summary | 0012438: [PATCH] remove or change the freehand line tool | ||||
| Description | i would like to suggest to remove the freehand drawing tool. ... except if people can list a few (or at least one!) use cases for it. in the case, the tool is too be kept, i suggest to remove the current default behavior (drawing a lot of little control points) and only keep the smooth variant that you get when pressing the control key. if this proposal is accepted, i'm willing to make a patch. | ||||
| Tags | nodes | ||||
| Patch | Yes | ||||
| related to | 0009100 | new | Paths simplification |
|
|
pressing ctrl simplifies the path being drawen. i think that this should be the only mode of the freehand tool |
|
|
the attached patch removes the ctrl modifier from the freehand path and always applies the smooth to the freehand line. i'm still for completely removing the tool, but i think that making the line "usable" is a good compromise. (i really don't see in which layout somebody would want a line with sooooo many nodes as the freehand creates when not in smooth mode; but i also wonder if anybody ever used the freehand tool at all...) freehand-smooth.diff (1,982 bytes)
From d77c8169f2d88540bd2a31f0d941d28836dffa72 Mon Sep 17 00:00:00 2001
From: ale rimoldi <ale@graphicslab.org>
Date: Sun, 23 Mar 2025 20:05:45 +0100
Subject: always smooth the freehand drawing
diff --git a/scribus/canvasmode_drawfreehand.cpp b/scribus/canvasmode_drawfreehand.cpp
index 1733c0ed1..230ae1905 100644
--- a/scribus/canvasmode_drawfreehand.cpp
+++ b/scribus/canvasmode_drawfreehand.cpp
@@ -217,31 +217,14 @@ void FreehandMode::mouseReleaseEvent(QMouseEvent *m)
uint z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, m_xp, m_yp, 1, 1, m_doc->itemToolPrefs().lineWidth, CommonStrings::None, m_doc->itemToolPrefs().lineColor);
currItem = m_doc->Items->at(z);
currItem->PoLine.resize(0);
- if (m->modifiers() & Qt::ControlModifier)
+ QList<QPointF> clip;
+ for (int px = 0; px < m_poly.size()-1; ++px)
{
- QList<QPointF> clip;
- for (int px = 0; px < m_poly.size()-1; ++px)
- {
- FPoint clp = m_poly.point(px);
- clip.append(QPointF(clp.x(), clp.y()));
- }
- QPainterPath pp = bezierFit(clip, 5.0);
- currItem->PoLine.fromQPainterPath(pp);
- }
- else
- {
- currItem->PoLine.addPoint(m_poly.point(0));
- currItem->PoLine.addPoint(m_poly.point(0));
- for (int px = 1; px < m_poly.size()-1; ++px)
- {
- currItem->PoLine.addPoint(m_poly.point(px));
- currItem->PoLine.addPoint(m_poly.point(px));
- currItem->PoLine.addPoint(m_poly.point(px));
- currItem->PoLine.addPoint(m_poly.point(px));
- }
- currItem->PoLine.addPoint(m_poly.point(m_poly.size()-1));
- currItem->PoLine.addPoint(m_poly.point(m_poly.size()-1));
+ FPoint clp = m_poly.point(px);
+ clip.append(QPointF(clp.x(), clp.y()));
}
+ QPainterPath pp = bezierFit(clip, 5.0);
+ currItem->PoLine.fromQPainterPath(pp);
FPoint tp2(getMinClipF(&currItem->PoLine));
currItem->setXYPos(tp2.x(), tp2.y(), true);
currItem->PoLine.translate(-tp2.x(), -tp2.y());
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2014-06-26 12:21 | ale | New Issue | |
| 2015-09-17 20:10 | Kunda | Category | Graphics / Image Frames => Graphics/Img Frames |
| 2015-09-17 20:11 | Kunda | Category | Graphics/Img Frames => Graphics / Image Frames |
| 2025-03-23 18:26 | ale | Relationship added | related to 0009100 |
| 2025-03-23 18:30 | ale | Note Added: 0052305 | |
| 2025-03-23 18:31 | ale | Tag Attached: nodes | |
| 2025-03-23 19:08 | ale | Note Added: 0052306 | |
| 2025-03-23 19:08 | ale | File Added: freehand-smooth.diff | |
| 2025-03-23 19:08 | ale | Summary | remove or change the freehand line tool => [PATCH] remove or change the freehand line tool |
| 2025-03-23 19:08 | ale | Patch | => Yes |