View Issue Details

IDProjectCategoryView StatusLast Update
0008647ScribusFontspublic2017-10-20 05:12
Reporterwaltao Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
PlatformOpenSuse 11.1OSLinux 
Product Version1.5.0svn 
Summary0008647: Permanence of font substitutions is quite limited (although substitute font permanently is checked)
DescriptionWhen I open documents referencing a font not installed on the system, I get a message making a proposal to substitute the missing font. At the bottom of that dialog is a checkbox offering "substitute permanently".
Checking this seems to have no notable effect, although it should make the
substition permanent for this document (in my wee understanding).
Steps To ReproduceOpen a document that uses a font that is missing on the system.
When the font substition dialog comes up, check "substitute permanently" and
accept.
Make changes to document and save.
Exit scribus.
Reopen document.
Deja Vu ensues, you get the same substitution dialog, although
in my understanding I opted for permanent substitution of the missing font.
Tagsfont selection, fonts
PatchYes

Relationships

has duplicate 0014593 closedjghali replacing a missing font-type during scribus starts 
has duplicate 0014559 closedjghali Permanent font substitution not working 
related to 0010417 new Missing font is proposed to replace missing font 

Activities

PeterBenedek

2017-10-15 10:21

developer   ~0044547

Last edited: 2017-10-15 10:30

Tested r22193; Linux Mint 18

I can reproduce.

"Reopen document.
Deja Vu ensues, you get the same substitution dialog, although
in my understanding I opted for permanent substitution of the missing font."

Scribus after replace and after save does not modify in the .sla file the <DOCUMENT ... DFONT="Default font name" ...> value.
I uploaded one file (Document-1.sla). This include the Default font: Adobe Garamond Pro Regular (File -- Document Setup -- Item tools -- Text -- Font: Adobe Garamond Pro Regular).
You open the Document-1.sla file. The scribus offers the replace. You enable the substitutions and OK.
Now you check the File -- Document Setup -- Item Tools -- Text -- Font. This include the missing font name (Adobe Garamond Pro Regular)!
You save the document.
Close Scribus.
Open it again the Document-1.sla file: sribus again offers the replace.
Close Scribus.
Open it manually the sla file and modify the DFONT value: DFONT="is an existing font name" and save.
Open the sla file.
Scribus doesn't offer replacement.

Document-1.sla (14,685 bytes)

ale

2017-10-16 07:41

manager   ~0044551

even worse is what happens when you click on cancel.
the second time you open the same document no question is asked...

PeterBenedek

2017-10-16 07:57

developer   ~0044552

Yes, really.

jurajF

2017-10-18 14:59

reporter   ~0044556

"substitute permanently" checkbox has different meaning then original
poster expect. Checking this box remembers your font substitution fonts
in "Preference > Fonts > Fonts Substitution" section for future use.
Current document will use substitution fonts even without checking this.
Small patch that I included does change 'Default Font' 'DFONT' upon
saving so next time you open document it does not pop up dialog again
(thanks PeterBenedek for finding this detail).

I was unable to figure out why Scribus does not offer dialog after you
press Cancel button first time :(
0001-Change-default-font-when-substituting-fonts-during-l.patch (791 bytes)   
From deb9cf11134585829069a0fdb2aa0d6af4d8973c Mon Sep 17 00:00:00 2001
From: Juraj Fedel <wtxnh-scribus@yahoo.com.au>
Date: Wed, 18 Oct 2017 16:43:44 +0200
Subject: [PATCH] Change default font when substituting fonts during loading

---
 scribus/scfonts.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scribus/scfonts.cpp b/scribus/scfonts.cpp
index cd245ba9e..ea5cd2d5a 100644
--- a/scribus/scfonts.cpp
+++ b/scribus/scfonts.cpp
@@ -960,6 +960,8 @@ void SCFonts::setSubstitutions(const QMap<QString,QString>& substitutes, Scribus
 		if (font.isReplacement())
 		{
 			font.chReplacementTo(const_cast<ScFace&>(findFont(it.value(), doc)), doc->DocName);
+			if (doc->itemToolPrefs().textFont == it.key())
+				doc->itemToolPrefs().textFont = it.value();
 		}
 	}
 }
-- 
2.15.0.rc1

Issue History

Date Modified Username Field Change
2009-12-15 11:54 waltao New Issue
2015-04-12 20:49 Kunda Relationship added related to 0010417
2016-04-04 20:05 Kunda Tag Attached: font selection
2016-04-04 20:05 Kunda Tag Attached: fonts
2016-04-04 23:53 Kunda Relationship added related to 0004663
2017-01-29 14:27 jghali Relationship added has duplicate 0014593
2017-01-29 14:28 jghali Relationship added has duplicate 0014559
2017-04-19 11:52 JLuc Relationship deleted related to 0004663
2017-10-15 10:21 PeterBenedek File Added: Document-1.sla
2017-10-15 10:21 PeterBenedek Note Added: 0044547
2017-10-15 10:24 PeterBenedek Note Edited: 0044547
2017-10-15 10:27 PeterBenedek Note Edited: 0044547
2017-10-15 10:30 PeterBenedek Note Edited: 0044547
2017-10-16 07:41 ale Note Added: 0044551
2017-10-16 07:57 PeterBenedek Note Added: 0044552
2017-10-18 14:59 jurajF File Added: 0001-Change-default-font-when-substituting-fonts-during-l.patch
2017-10-18 14:59 jurajF Note Added: 0044556
2017-10-20 05:12 PeterBenedek Patch => Yes