View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0015507 | Scribus | - | public | 2018-12-14 16:38 | 2026-09-10 07:14 |
| Reporter | ale | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | new | Resolution | open | ||
| Summary | 0015507: "chain" frames, do not "link" them | ||||
| Description | in the UI there the terms "link" and "chain" are both used to get text frame chained together. i suggest that only "chain" is to be used in the UI. this affects (among others): - the tooltip in the two toolbar buttons - the menu entry (and its submenu) in "Item" i would simplify it in: - Text Chains - Chain Frames - Unchain Frames - Unchain and Cut - the info in the context menu (the type becomes "linked text" - the action history (the action is "link text frame" - insert > frames > options - the tooltip on the text overflow mark this would free the term "link" for clickable links (and avoid that people confuse them) | ||||
| Tags | #please_test | ||||
| Patch | No | ||||
| related to | 0015954 | new | Improve link/unlink tools usability |
|
|
I think this makes sense. Saw this a few days ago. Here is my attempt: tc1-text-chain-ui-terminology-v1.01.patch I chose "tc" for "terminology consolidation" (helps me remember and organise things) * Consolidates user-facing text-frame flow terminology around `chain` across the Scribus UI. * Keeps implementation identifiers, public APIs, serialisation and shortcut definitions unchanged. * Main terminology changes -- `Text Frame Links` → `Text Chains` -- `Link Text Frames` → `Chain Text Frames` -- `Unlink Text Frames` → `Break Text Chain` -- `Unlink Text Frames and Cut Text` → `Break Text Chain and Split Text` -- `Linked Text` → `Chained Text Frame` -- `Linked Frames:` → `Chained Text Frames:` -- `Select All in Text Chain` → `Select All Frames in Text Chain` * Applies consistently across -- Item menu and toolbar actions -- chain-related dialogs, warnings and status tips -- overflow indicator tooltip -- chained-frame context information -- Insert Frames -- Multiple Duplicate -- Display Preferences -- PDF Article export options -- Undo/Redo history * Uses `Break Text Chain` because the operation breaks one connection in an existing chain rather than necessarily dismantling the full chain. * Uses `Split Text` for the `unlinkWithText()` operation because the story is divided between the resulting chains; it is not a clipboard-style cut. * Adds missing chain-related tooltips/status descriptions and tightens wording around inserted/chained text frames. * Corrects the overflow tooltip so it no longer claims that clicking can automatically create a new text frame. * No text-chain behaviour is changed; this is a terminology and UI-polish patch only. tc1-text-chain-ui-terminology-v1.01.patch (20,487 bytes)
Index: scribus/actionmanager.cpp
===================================================================
--- scribus/actionmanager.cpp (revision 27827)
+++ scribus/actionmanager.cpp (working copy)
@@ -1688,7 +1688,7 @@
(*scrActions)["tableSelectRow"]->setTexts(tr("Row"));
(*scrActions)["tableSelectColumn"]->setTexts(tr("Column"));
(*scrActions)["tableSelectTable"]->setTexts(tr("Table"));
- (*scrActions)["itemSelectChain"]->setTexts( tr("Select All in Text Chain"));
+ (*scrActions)["itemSelectChain"]->setTexts( tr("Select All Frames in Text Chain"));
(*scrActions)["itemAdjustFrameHeightToText"]->setTexts( tr("Adjust Frame Height to Text"));
(*scrActions)["itemAdjustFrameToImage"]->setTexts( tr("Adjust Frame to Image"));
(*scrActions)["itemAdjustImageToFrame"]->setTexts( tr("Adjust Image to Frame"));
@@ -1768,7 +1768,7 @@
(*scrActions)["viewShowGuides"]->setTexts( tr("Show G&uides"));
(*scrActions)["viewShowColumnBorders"]->setTexts( tr("Show Text Frame Columns"));
(*scrActions)["viewShowBaseline"]->setTexts( tr("Show &Baseline Grid"));
- (*scrActions)["viewShowTextChain"]->setTexts( tr("Show &Text Chain"));
+ (*scrActions)["viewShowTextChain"]->setTexts( tr("Show &Text Chains"));
(*scrActions)["viewShowTextControls"]->setTexts( tr("Show Control Characters"));
(*scrActions)["viewShowRulers"]->setTexts( tr("Show Rulers"));
(*scrActions)["viewRulerMode"]->setTexts( tr("Rulers Relative to Page"));
@@ -1808,9 +1808,9 @@
(*scrActions)["toolsZoomOut"]->setTexts( tr("Zoom out"));
(*scrActions)["toolsEditContents"]->setTexts( tr("Edit Contents of Frame"));
(*scrActions)["toolsEditWithStoryEditor"]->setText( tr("Edit Text with Story Editor..."));
- (*scrActions)["toolsLinkTextFrame"]->setTexts( tr("Link Text Frames"));
- (*scrActions)["toolsUnlinkTextFrame"]->setTexts( tr("Unlink Text Frames"));
- (*scrActions)["toolsUnlinkTextFrameAndCutText"]->setTexts( tr("Unlink Text Frames and Cut Text"));
+ (*scrActions)["toolsLinkTextFrame"]->setTexts( tr("Chain Text Frames"));
+ (*scrActions)["toolsUnlinkTextFrame"]->setTexts( tr("Break Text Chain"));
+ (*scrActions)["toolsUnlinkTextFrameAndCutText"]->setTexts( tr("Break Text Chain and Split Text"));
(*scrActions)["toolsEyeDropper"]->setTexts( tr("&Eye Dropper"));
(*scrActions)["toolsCopyProperties"]->setTexts( tr("Copy Item Properties"));
@@ -1900,7 +1900,7 @@
(*scrActions)["toolsInsertSpiral"]->setStatusTextAndShortcut( tr("Insert a spiral"));
(*scrActions)["toolsInsertTable"]->setStatusTextAndShortcut( tr("Insert a table"));
(*scrActions)["toolsInsertTextFrame"]->setStatusTextAndShortcut( tr("Insert a text frame"));
- (*scrActions)["toolsLinkTextFrame"]->setStatusTextAndShortcut( tr("Link text frames"));
+ (*scrActions)["toolsLinkTextFrame"]->setStatusTextAndShortcut( tr("Chain one text frame to another"));
(*scrActions)["toolsMeasurements"]->setStatusTextAndShortcut( tr("Measurements"));
(*scrActions)["toolsPDFAnnotLink"]->setStatusTextAndShortcut( tr("Insert link annotation"));
(*scrActions)["toolsPDFAnnotText"]->setStatusTextAndShortcut( tr("Insert text annotation"));
@@ -1914,7 +1914,8 @@
(*scrActions)["toolsDocumentLog"]->setStatusTextAndShortcut( tr("Display logged warnings and errors from editing activities"));
(*scrActions)["toolsRotate"]->setStatusTextAndShortcut( tr("Rotate an item"));
(*scrActions)["toolsSelect"]->setStatusTextAndShortcut( tr("Select an item"));
- (*scrActions)["toolsUnlinkTextFrame"]->setStatusTextAndShortcut( tr("Unlink text frames"));
+ (*scrActions)["toolsUnlinkTextFrame"]->setStatusTextAndShortcut( tr("Break a text chain before the clicked frame"));
+ (*scrActions)["toolsUnlinkTextFrameAndCutText"]->setStatusTextAndShortcut( tr("Break the text chain at the selected frame and split its text between the resulting chains"));
(*scrActions)["toolsZoom"]->setStatusTextAndShortcut( tr("Zoom in or out"));
(*scrActions)["viewPreviewMode"]->setStatusTextAndShortcut( tr("Enable preview mode"));
(*scrActions)["viewEditInPreview"]->setStatusTextAndShortcut( tr("Enable editing in preview mode"));
Index: scribus/canvasmode_framelinks.cpp
===================================================================
--- scribus/canvasmode_framelinks.cpp (revision 27827)
+++ scribus/canvasmode_framelinks.cpp (working copy)
@@ -207,11 +207,11 @@
{
if (bb->prevInChain() != nullptr)
{
- ScMessageBox msgBox(QMessageBox::Question, tr("Linking Text Frames"),
- "<qt>" + tr("You are trying to insert a frame into an existing text chain, where would you like to insert it?") + "<qt>");
+ ScMessageBox msgBox(QMessageBox::Question, tr("Chaining Text Frames"),
+ "<qt>" + tr("This frame will be inserted into an existing text chain. Where would you like to insert it?") + "<qt>");
QPushButton *cancelButton = msgBox.addButton(CommonStrings::tr_Cancel, QMessageBox::RejectRole);
- QPushButton *beforeButton = msgBox.addButton(tr("Before"), QMessageBox::AcceptRole);
- QPushButton *afterButton = msgBox.addButton(tr("After"), QMessageBox::AcceptRole);
+ QPushButton *beforeButton = msgBox.addButton(tr("Insert Before"), QMessageBox::AcceptRole);
+ QPushButton *afterButton = msgBox.addButton(tr("Insert After"), QMessageBox::AcceptRole);
msgBox.setDefaultBatchButton(afterButton);
msgBox.exec();
if ((QPushButton *) msgBox.clickedButton() == cancelButton)
@@ -274,22 +274,22 @@
{
//CB Mouse is released when this messagebox takes focus
m_canvas->m_viewMode.m_MouseButtonPressed = false;
- ScMessageBox::warning(m_view, tr("Linking Text Frames"),
- "<qt>" + tr("You are trying to link a frame to itself.") + "</qt>");
+ ScMessageBox::warning(m_view, tr("Chaining Text Frames"),
+ "<qt>" + tr("A text frame cannot be chained to itself.") + "</qt>");
}
else if (currItem->nextInChain() != nullptr)
{
//CB Mouse is released when this messagebox takes focus
m_canvas->m_viewMode.m_MouseButtonPressed = false;
- ScMessageBox::warning(m_view, tr("Linking Text Frames"),
- "<qt>" + tr("Frame is already linked. Unlink it before linking it to another frame.") + "</qt>");
+ ScMessageBox::warning(m_view, tr("Chaining Text Frames"),
+ "<qt>" + tr("This frame is already chained. Break the text chain before chaining it to another frame.") + "</qt>");
}
else
{
//CB Mouse is released when this messagebox takes focus
m_canvas->m_viewMode.m_MouseButtonPressed = false;
- ScMessageBox::warning(m_view, tr("Linking Text Frames"),
- "<qt>" + tr("You are trying to link a non-empty frame to frame which is already linked.") + "</qt>");
+ ScMessageBox::warning(m_view, tr("Chaining Text Frames"),
+ "<qt>" + tr("Cannot chain a non-empty text frame to a frame that is already in a text chain.") + "</qt>");
}
}
else
Index: scribus/canvasmode_normal.cpp
===================================================================
--- scribus/canvasmode_normal.cpp (revision 27827)
+++ scribus/canvasmode_normal.cpp (working copy)
@@ -453,7 +453,7 @@
{
if (m_canvas->cursorOverTextFrameControl(m->globalPosition(), hoveredItem))
{
- QToolTip::showText(globalPos + QPoint(5, 5), tr("Overflow Characters: %1 (%2 White Spaces)\nClick to link to existing text frame or auto-create new linked text frame").arg(hoveredItem->frameOverflowCount()).arg(hoveredItem->frameOverflowBlankCount()), m_canvas);
+ QToolTip::showText(globalPos + QPoint(5, 5), tr("Overflow: %1 characters (%2 whitespace characters)\nClick to start chaining this frame to another text frame").arg(hoveredItem->frameOverflowCount()).arg(hoveredItem->frameOverflowBlankCount()), m_canvas);
}
}
else
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp (revision 27827)
+++ scribus/pageitem_textframe.cpp (working copy)
@@ -5201,7 +5201,7 @@
QLabel *charT = new QLabel(infoGroup);
if ((nextInChain() != nullptr) || (prevInChain() != nullptr))
- infoCT->setText(tr("Linked Text"));
+ infoCT->setText(tr("Chained Text Frame"));
else
infoCT->setText(tr("Text Frame"));
infoGroupLayout->addWidget( infoCT, 0, 0, 1, 2, Qt::AlignCenter );
Index: scribus/scribus.cpp
===================================================================
--- scribus/scribus.cpp (revision 27827)
+++ scribus/scribus.cpp (working copy)
@@ -1103,7 +1103,7 @@
scrMenuMgr->addMenuItemString("typeEffectSubscript", "TextFeatures");
scrMenuMgr->addMenuItemString("typeEffectOutline", "TextFeatures");
scrMenuMgr->addMenuItemString("typeEffectShadow", "TextFeatures");
- scrMenuMgr->createMenu("TextLinking", tr("Text Frame Links"), "Item");
+ scrMenuMgr->createMenu("TextLinking", tr("Text Chains"), "Item");
scrMenuMgr->addMenuItemString("TextLinking", "Item");
scrMenuMgr->addMenuItemString("toolsLinkTextFrame", "TextLinking");
scrMenuMgr->addMenuItemString("toolsUnlinkTextFrame", "TextLinking");
Index: scribus/ui/insertaframe.ui
===================================================================
--- scribus/ui/insertaframe.ui (revision 27827)
+++ scribus/ui/insertaframe.ui (working copy)
@@ -510,10 +510,10 @@
<item>
<widget class="QCheckBox" name="checkBoxLinkCreatedTextFrames">
<property name="toolTip">
- <string>Link the inserted text frames together to form a chain of frames</string>
+ <string>Chain the inserted text frames together in a text chain</string>
</property>
<property name="text">
- <string>Link Inserted Frames</string>
+ <string>Chain Inserted Text Frames</string>
</property>
</widget>
</item>
@@ -522,10 +522,10 @@
<item>
<widget class="QCheckBox" name="checkBoxLinkToExistingFrame">
<property name="toolTip">
- <string>Link the first inserted frame to a preexisting text frame</string>
+ <string>Chain the first inserted text frame to an existing text frame</string>
</property>
<property name="text">
- <string>Link to Existing Frame</string>
+ <string>Chain to Existing Text Frame</string>
</property>
</widget>
</item>
@@ -541,7 +541,7 @@
</sizepolicy>
</property>
<property name="toolTip">
- <string>Name of existing text frame to link to</string>
+ <string>Existing text frame to chain to</string>
</property>
</widget>
</item>
Index: scribus/ui/multipleduplicate.ui
===================================================================
--- scribus/ui/multipleduplicate.ui (revision 27827)
+++ scribus/ui/multipleduplicate.ui (working copy)
@@ -431,8 +431,11 @@
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QCheckBox" name="checkBoxPageLinkText">
+ <property name="toolTip">
+ <string>Chain duplicated text frames across the selected pages, continuing from the source text frame</string>
+ </property>
<property name="text">
- <string>&Link Text Frames</string>
+ <string>&Chain Text Frames</string>
</property>
</widget>
</item>
Index: scribus/ui/preferences/prefs_display.cpp
===================================================================
--- scribus/ui/preferences/prefs_display.cpp (revision 27827)
+++ scribus/ui/preferences/prefs_display.cpp (working copy)
@@ -74,7 +74,8 @@
{
pageFillColorButton->setToolTip( "<qt>" + tr( "Color for paper (onscreen)" ) + "</qt>");
showUnprintableAreaInMarginColorCheckBox->setToolTip( "<qt>" + tr( "Mask the area outside the margins in the margin color" ) + "</qt>" );
- showTextChainsCheckBox->setToolTip( "<qt>" + tr("Enable or disable the display of linked frames") + "</qt>");
+ showTextChainsCheckBox->setToolTip( "<qt>" + tr("Show or hide connections between chained text frames") + "</qt>");
+ frameLinkedColorButton->setToolTip( "<qt>" + tr("Color used to display chained text frames (onscreen only)") + "</qt>");
showControlCharsCheckBox->setToolTip( "<qt>" + tr("Display non-printing characters such as paragraph markers in text frames") + "</qt>");
showFramesCheckBox->setToolTip( "<qt>" + tr("Turns the display of frames on or off") + "</qt>");
showTableCellFramesCheckBox->setToolTip( "<qt>" + tr("Turns the display of table cell frames on or off") + "</qt>");
Index: scribus/ui/preferences/prefs_displaybase.ui
===================================================================
--- scribus/ui/preferences/prefs_displaybase.ui (revision 27827)
+++ scribus/ui/preferences/prefs_displaybase.ui (working copy)
@@ -502,7 +502,7 @@
<item row="6" column="0">
<widget class="QLabel" name="label_31">
<property name="text">
- <string>Linked Frames:</string>
+ <string>Chained Text Frames:</string>
</property>
</widget>
</item>
Index: scribus/ui/preferences/prefs_pdfexport.cpp
===================================================================
--- scribus/ui/preferences/prefs_pdfexport.cpp (revision 27827)
+++ scribus/ui/preferences/prefs_pdfexport.cpp (working copy)
@@ -69,7 +69,7 @@
pdfVersionComboBox->setToolTip( "<qt>" + tr( "Determines the PDF compatibility.<br/><b>PDF 1.3</b>, which is the earliest supported version, gives the widest compatibility with printers' RIPS.<br/><b>PDF 1.4</b>, which is the default version, supports features such as transparency and 128 bit encryption.<br/><b>PDF 1.5</b> is necessary when you wish to preserve objects in separate layers within the PDF.<br/><b>PDF/X-1a</b> is for blind exchange with colors strictly specified in CMYK or spot colors.<br/><b>PDF/X-3</b> is for exporting the PDF when you want color managed RGB for commercial printing and is selectable when you have activated color management. Use only when advised by your printer or in some cases printing to a 4 color digital color laser printer.<br/><b>PDF/X-4</b> is an extension of PDF/X-3 to support transparency and layering." ) + "</qt>");
pageBindingComboBox->setToolTip( "<qt>" + tr( "Determines the binding of pages in the PDF. Unless you know you need to change it leave the default choice - Left." ) + "</qt>" );
generateThumbnailsCheckBox->setToolTip( "<qt>" + tr( "Generates thumbnails of each page in the PDF. Some viewers can use the thumbnails for navigation." ) + "</qt>" );
- saveLinkedTextFramesAsArticlesCheckBox->setToolTip( "<qt>" + tr( "Generate PDF Articles, which is useful for navigating linked articles in a PDF" ) + "</qt>" );
+ saveLinkedTextFramesAsArticlesCheckBox->setToolTip( "<qt>" + tr( "Generate PDF Articles from text chains for navigation in the PDF" ) + "</qt>" );
includeLayersCheckBox->setToolTip( "<qt>" + tr( "Layers in your document are exported to the PDF. Only available if PDF 1.5 is chosen." ) + "</qt>" );
includeBookmarksCheckBox->setToolTip( "<qt>" + tr( "Embed the bookmarks you created in your document. These are useful for navigating long PDF documents." ) + "</qt>" );
epsExportResolutionSpinBox->setToolTip( "<qt>" + tr( "Export resolution of text and vector graphics. This does not affect the resolution of bitmap images like photos." ) + "</qt>" );
Index: scribus/ui/preferences/prefs_pdfexportbase.ui
===================================================================
--- scribus/ui/preferences/prefs_pdfexportbase.ui (revision 27827)
+++ scribus/ui/preferences/prefs_pdfexportbase.ui (working copy)
@@ -323,7 +323,7 @@
<item>
<widget class="QCheckBox" name="saveLinkedTextFramesAsArticlesCheckBox">
<property name="text">
- <string>Save Linked Text Frames as PDF Articles</string>
+ <string>Save Text Chains as PDF Articles</string>
</property>
</widget>
</item>
Index: scribus/ui/scmwmenumanager.cpp
===================================================================
--- scribus/ui/scmwmenumanager.cpp (revision 27827)
+++ scribus/ui/scmwmenumanager.cpp (working copy)
@@ -58,7 +58,7 @@
setText("ItemPreviewSettings", tr("Previe&w Settings"));
setText("ItemPDFOptions", tr("&PDF Options"));
setText("ItemConvertTo", tr("C&onvert to"));
- setText("TextLinking", tr("Text Frame Links"));
+ setText("TextLinking", tr("Text Chains"));
setText("TextTransformation", tr("Text Transformation"));
// setText("ItemPathOps", tr("Path Tools"));
setText("Weld", tr("Welding"));
Index: scribus/ui/tabpdfoptions.cpp
===================================================================
--- scribus/ui/tabpdfoptions.cpp (revision 27827)
+++ scribus/ui/tabpdfoptions.cpp (working copy)
@@ -207,7 +207,7 @@
PDFVersionCombo->setToolTip( "<qt>" + tr( "Determines the PDF compatibility.<br/><b>PDF 1.3</b>, which is the earliest supported version, gives the widest compatibility with printers' RIPS.<br/><b>PDF 1.4</b>, which is the default version, supports features such as transparency and 128 bit encryption.<br/><b>PDF 1.5</b> is necessary when you wish to preserve objects in separate layers within the PDF.<br/><b>PDF/X-1a</b> is for blind exchange with colors strictly specified in CMYK or spot colors.<br/><b>PDF/X-3</b> is for exporting the PDF when you want color managed RGB for commercial printing and is selectable when you have activated color management. Use only when advised by your printer or in some cases printing to a 4 color digital color laser printer.<br/><b>PDF/X-4</b> is an extension of PDF/X-3 to support transparency and layering." ) + "</qt>");
ComboBind->setToolTip( "<qt>" + tr( "Determines the binding of pages in the PDF. Unless you know you need to change it leave the default choice - Left." ) + "</qt>" );
CheckBox1->setToolTip( "<qt>" + tr( "Generates thumbnails of each page in the PDF. Some viewers can use the thumbnails for navigation." ) + "</qt>" );
- Article->setToolTip( "<qt>" + tr( "Generate PDF Articles, which is useful for navigating linked articles in a PDF" ) + "</qt>" );
+ Article->setToolTip( "<qt>" + tr( "Generate PDF Articles from text chains for navigation in the PDF" ) + "</qt>" );
useLayers->setToolTip( "<qt>" + tr( "Layers in your document are exported to the PDF. Only available if PDF 1.5 is chosen." ) + "</qt>" );
CheckBM->setToolTip( "<qt>" + tr( "Embed the bookmarks you created in your document. These are useful for navigating long PDF documents." ) + "</qt>" );
Resolution->setToolTip( "<qt>" + tr( "Export resolution of text and vector graphics. This does not affect the resolution of bitmap images like photos." ) + "</qt>" );
Index: scribus/ui/tabpdfoptions.ui
===================================================================
--- scribus/ui/tabpdfoptions.ui (revision 27827)
+++ scribus/ui/tabpdfoptions.ui (working copy)
@@ -230,7 +230,7 @@
<item row="3" column="0" colspan="3">
<widget class="QCheckBox" name="Article">
<property name="text">
- <string>Save &Linked Text Frames as PDF Articles</string>
+ <string>Save Text &Chains as PDF Articles</string>
</property>
</widget>
</item>
Index: scribus/undomanager.cpp
===================================================================
--- scribus/undomanager.cpp (revision 27827)
+++ scribus/undomanager.cpp (working copy)
@@ -838,8 +838,8 @@
UndoManager::SwapPage = tr("Swap pages");
UndoManager::ImportPage = tr("Import page");
UndoManager::ToOutlines = tr("Convert to outlines");
- UndoManager::LinkTextFrame = tr("Link text frame");
- UndoManager::UnlinkTextFrame = tr("Unlink text frame");
+ UndoManager::LinkTextFrame = tr("Chain text frames");
+ UndoManager::UnlinkTextFrame = tr("Break text chain");
UndoManager::ClearImage = tr("Clear image frame content");
UndoManager::PathOperation = tr("Path Operation");
UndoManager::ChangePageAttrs = tr("Change Page Attributes");
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-12-14 16:38 | ale | New Issue | |
| 2018-12-14 16:42 | ale | Description Updated | |
| 2018-12-14 18:16 | ale | Summary | chain frame, not link them => chain frames, do not link them |
| 2026-09-09 07:23 | buttar | Note Added: 0054445 | |
| 2026-09-09 07:23 | buttar | File Added: tc1-text-chain-ui-terminology-v1.01.patch | |
| 2026-09-09 07:23 | buttar | Tag Attached: #please_test | |
| 2026-09-10 07:14 | JLuc | Relationship added | related to 0015954 |
| 2026-09-10 07:14 | JLuc | Summary | chain frames, do not link them => "chain" frames, do not "link" them |