View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0017546 | Scribus | Fonts | public | 2025-05-30 15:13 | 2025-05-30 22:42 |
| Reporter | ale | Assigned To | ale | ||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | assigned | Resolution | open | ||
| Product Version | 1.7.1.svn | ||||
| Summary | 0017546: [SUSPENDED] Document setup: deactivate unused fonts | ||||
| Description | The attached patch deactivates the fonts that are not used in the document. While it does do its work, it's currently useless, since Scribus does not manage the fonts on a document basis. I'm attaching the patch as a reference for future work, when Scribus eventually will be able to show different fonts for each document. | ||||
| Tags | No tags attached. | ||||
| Patch | No | ||||
|
|
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 |
|---|---|---|---|
| 2025-05-30 15:13 | ale | New Issue | |
| 2025-05-30 15:15 | ale | Assigned To | => ale |
| 2025-05-30 15:15 | ale | Status | new => assigned |
| 2025-05-30 15:15 | ale | Summary | Document setup: deactivate unused fonts => [SUSPENDED] Document setup: deactivate unused fonts |
| 2025-05-30 15:22 | ale | Note Added: 0052688 | |
| 2025-05-30 15:22 | ale | File Added: activate-used-only.diff |