View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0008722 | Scribus | Fonts | public | 2010-01-17 22:25 | 2025-05-29 06:07 |
Reporter | berberic | Assigned To | ale | ||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | assigned | Resolution | open | ||
Platform | amd64 | OS | Debian GNU/Linux | OS Version | testing |
Product Version | 1.3.5 | ||||
Summary | 0008722: handling lots of fonts better. | ||||
Description | scribus always presents a list of all available fonts (can be a lot), which makes selecting fonts tedious. There should be a way to make it easy to select the few fonts that are used in this document easily. Suggestions: · font-select-menues only show the fonts, that are used in the document and a “others”-entry, clicking on “others” then gives a full list. · an easy way to select per-document fontslist. In the document-settings-dialog the fontlist misses a button to deselect all (unused) fonts at the moment. | ||||
Tags | font selection | ||||
Patch | Yes | ||||
related to | 0007901 | new | add choice to display all or used fonts in SE, preferences and styles | |
related to | 0008435 | assigned | subik | improve Font Preview |
has duplicate | 0010042 | closed | jghali | Improve Available Fonts Preference |
has duplicate | 0010636 | closed | jghali | Fewer fonts in the drop down list |
related to | 0009222 | new | save Available as font-profile | |
related to | 0009346 | new | Inconsistent sorting of fonts in dialogs | |
child of | 0017535 | new | Metabug: fonts management for Scribus 1.8 |
|
Similar bugs are 0008435 and 0007901. |
|
+ 1 for the "used fonts" button... |
|
Deselecting fonts on a per-document basis is possible in the Prefs dialogue. It involves a lot of click-work. A simple fix to this would be: a new "Inverse Selection Button" in Prefs/Fonts. Just deselect the few fonts you want from your hundreds of installed. Then press the new "Inverse Selection" button. Thats it. If you need more fonts later, just click them. |
|
If the "Document Setup / Fonts" selection was saved with the document - rather than as Scribus-wide (as it is now, on 1.4.5 OSX anyway) - the user could set-up a document with the fonts they want to be available then save it as a template. Then just select the appropriate template with the appropriate fonts when creating a new document. (For example, you could create a template for each client - or purpose - with only "their fonts" initially available.) However, I agree that a "Used Fonts" button(?) would be great, and an "Invert Selection" button on the "Fonts" tab in "Preferences" and "Document Setup" dialogs would be nice too. |
|
As long as there is a "font setup" in the "Document preferences", this dialog should only display the really used fonts and should not display the fonts that are not related to the document. (But since changing the settings in that dialog changes a global file, it has impacts on all scribus documents : it changes both the UI and the way the PDFs are created. IMO its dangerous to keep that dialog in the document preferences) In the "application settings" dialog, some "filtering" buttons would help the work : - view otf or ttf or type1 fonts only - view "use fonts" only (not "used" since this is meaningless in a global context) - view fonts with"AR" (for example) in name only - view subseted fonts only |
|
I'm of the opinion that nothing in "Document Setup" should make global changes. Changes in there should only affect the current document. If something in there affects the global environment then it should be removed as it is - at best - confusing. By all means leave it in "Preferences", but not in "Document Setup". I'd also give my backing to more font selection/filtering techniques as you have mentioned. Text/Fonts are such a major part of Scribus that more control would seem very sensible. Also - and this is probably stretching this particular issue, but it is related as it's about selecting fonts - a little "font preview" in the drop-down selection menu would be very useful. Something simple like what GIMP does with the little "Aa" graphic would be enough. Each menu item would then be something like "Aa <fontname> <type>". (I'm guessing that - for most users - the preview would be more useful than what the font type is.) |
|
The attached patch adds an entry to the context menu in the fonts' document settings for setting as active only the fonts in use. Some notes: - The action should only be added to the document settings and not to the preferences, but I could not find a way to check if a document is set or if I'm in the document settings. - The action is of little use, without a few other patch, but it won't harm if committed now - There are other patches needed referenced in this ticket notes and in the linked tickets: implementing a few of them will help making the patch proposed useful): as an example, it should be possible to activate / deactivate fonts on a per document basis. activate-used-only.diff (2,988 bytes)
diff --git a/scribus/ui/fontlistview.cpp b/scribus/ui/fontlistview.cpp index b07ca9046..2fd35e512 100644 --- a/scribus/ui/fontlistview.cpp +++ b/scribus/ui/fontlistview.cpp @@ -7,6 +7,8 @@ for which a new license (GPL+exception) is in place. #include "fontlistview.h" #include "fontlistmodel.h" +#include "commonstrings.h" + #include <QMenu> #include <QModelIndex> #include <QPoint> @@ -17,7 +19,8 @@ FontListView::FontListView(QWidget * parent) activateAction(new QAction(tr("&Activate"), this)), deactivateAction(new QAction(tr("&Deactivate"), this)), subsetAction(new QAction(tr("&Subset"), this)), - notSubsetAction(new QAction(tr("Do ¬ subset"), this)) + notSubsetAction(new QAction(tr("Do ¬ subset"), this)), + activateUsedOnlyAction(new QAction(tr("Only activate &used fonts"), this)) { setSelectionMode(QAbstractItemView::ExtendedSelection); setSelectionBehavior(QAbstractItemView::SelectRows); @@ -32,11 +35,14 @@ FontListView::FontListView(QWidget * parent) contextMenu->addAction(deactivateAction); contextMenu->addAction(subsetAction); contextMenu->addAction(notSubsetAction); + contextMenu->addSeparator(); + contextMenu->addAction(activateUsedOnlyAction); connect(activateAction, &QAction::triggered, this, &FontListView::activateSelection); connect(deactivateAction, &QAction::triggered, this, &FontListView::deactivateSelection); connect(subsetAction, &QAction::triggered, this, &FontListView::subsetSelection); connect(notSubsetAction, &QAction::triggered, this, &FontListView::notSubsetSelection); + connect(activateUsedOnlyAction, &QAction::triggered, this, &FontListView::activateUsedOnly); connect(this, &QTableView::customContextMenuRequested, this, &FontListView::customContextMenuRequested); } @@ -119,3 +125,19 @@ void FontListView::notSubsetSelection() fontModel->setData(fontModel->index(selectedRow.row(), FontListModel::FontSubset), Qt::Unchecked, Qt::CheckStateRole); } } + +void FontListView::activateUsedOnly() +{ + FontListModel* fontModel = qobject_cast<FontListModel*>(model()); + for (int i = 0; i < fontModel->rowCount(); i++) + { + if (fontModel->data(fontModel->index(i, FontListModel::FontInDoc)).toString() == CommonStrings::trYes) + { + fontModel->setData(fontModel->index(i, FontListModel::FontUsable), Qt::Checked, Qt::CheckStateRole); + } + else + { + fontModel->setData(fontModel->index(i, FontListModel::FontUsable), Qt::Unchecked, Qt::CheckStateRole); + } + } +} diff --git a/scribus/ui/fontlistview.h b/scribus/ui/fontlistview.h index bbf0dc744..78224717d 100644 --- a/scribus/ui/fontlistview.h +++ b/scribus/ui/fontlistview.h @@ -38,10 +38,12 @@ class SCRIBUS_API FontListView : public QTableView QAction* deactivateAction; QAction* subsetAction; QAction* notSubsetAction; + QAction* activateUsedOnlyAction; void activateSelection(); void deactivateSelection(); void subsetSelection(); void notSubsetSelection(); + void activateUsedOnly(); }; #endif |
Date Modified | Username | Field | Change |
---|---|---|---|
2010-01-17 22:25 | berberic | New Issue | |
2010-01-18 17:40 | Mike | Note Added: 0023102 | |
2010-01-20 17:58 | ale | Note Added: 0023118 | |
2010-07-02 03:27 | christoph_s | Relationship added | has duplicate 0009222 |
2010-07-02 03:27 | christoph_s | Relationship deleted | has duplicate 0009222 |
2010-07-02 03:27 | christoph_s | Relationship added | related to 0009222 |
2011-06-12 17:32 | jghali | Relationship added | has duplicate 0010042 |
2011-06-27 10:13 | StefanM | Note Added: 0026484 | |
2011-06-27 10:14 | StefanM | Note Edited: 0026484 | |
2012-03-21 14:43 | jghali | Relationship added | has duplicate 0010636 |
2015-04-17 11:27 | GarryP | Note Added: 0034939 | |
2015-04-17 12:44 | JLuc | Note Added: 0034940 | |
2015-04-17 12:44 | JLuc | Note Edited: 0034940 | |
2015-04-17 13:23 | GarryP | Note Added: 0034941 | |
2016-04-04 16:15 | Kunda | Relationship added | related to 0007901 |
2016-04-04 16:15 | Kunda | Relationship added | related to 0008435 |
2016-04-04 16:16 | Kunda | Tag Attached: font selection | |
2016-04-05 00:24 | Kunda | Relationship added | related to 0009346 |
2025-05-28 08:35 | ale | Assigned To | => ale |
2025-05-28 08:35 | ale | Status | new => assigned |
2025-05-28 10:43 | ale | Note Added: 0052666 | |
2025-05-28 10:43 | ale | File Added: activate-used-only.diff | |
2025-05-28 10:43 | ale | Patch | => Yes |
2025-05-28 14:18 | ale | Note Edited: 0052666 | |
2025-05-29 06:07 | ale | Relationship added | child of 0017535 |