Author: craig
Date: Sun Dec 11 20:49:19 2016
New Revision: 21642

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=21642
Log:
#14430: Hide disabled fonts via model in Font Preview

Modified:
    trunk/Scribus/scribus/fontlistmodel.cpp
    trunk/Scribus/scribus/fontlistmodel.h
    trunk/Scribus/scribus/plugins/fontpreview/fontpreview.cpp
    trunk/Scribus/scribus/ui/prefs_fonts.cpp

Modified: trunk/Scribus/scribus/fontlistmodel.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=21642&path=/trunk/Scribus/scribus/fontlistmodel.cpp
==============================================================================
--- trunk/Scribus/scribus/fontlistmodel.cpp     (original)
+++ trunk/Scribus/scribus/fontlistmodel.cpp     Sun Dec 11 20:49:19 2016
@@ -13,41 +13,40 @@
 #include "prefsmanager.h"
 #include "scribusdoc.h"
 
-FontListModel::FontListModel(QObject * parent, ScribusDoc * doc)
+FontListModel::FontListModel(QObject * parent, ScribusDoc * doc, bool 
includeDisabled)
        : QAbstractTableModel(parent),
        m_doc(doc),
-       m_fonts(PrefsManager::instance()->appPrefs.fontPrefs.AvailFonts)
+       m_fonts(PrefsManager::instance()->appPrefs.fontPrefs.AvailFonts),
+       m_includeDisabled(includeDisabled)
 {
        ttfFont = IconManager::instance()->loadPixmap("font_truetype16.png");
        otfFont = IconManager::instance()->loadPixmap("font_otf16.png");
        psFont = IconManager::instance()->loadPixmap("font_type1_16.png");
        substFont = IconManager::instance()->loadPixmap("font_subst16.png");
 
-       m_font_values = m_fonts.values();
-       m_font_names = m_fonts.keys();
-       for (int i = 0; i < m_font_names.length(); ++i)
-       {
-               ScFace font = m_fonts[m_font_names[i]];
-               m_enabledFonts.append(font.usable());
-       }
+       setFonts(m_fonts.keys());
 }
 
 void FontListModel::setFonts(QList<QString> f)
 {
        beginResetModel();
-       m_font_names = f;
+       m_font_names.clear();
        m_font_values.clear();
        m_enabledFonts.clear();
        m_embedFlags.clear();
-       for (int i = 0; i < m_font_names.length(); ++i)
-       {
-               ScFace font = m_fonts[m_font_names[i]];
-               m_font_values.append(font);
-               m_enabledFonts.append(font.usable());
-               int embedFlags = 0;
-               embedFlags |= font.embedPs() ? EmbedPS : 0;
-               embedFlags |= font.subset()  ? SubsetPDF : 0;
-               m_embedFlags.append(embedFlags);
+       for (int i = 0; i < f.length(); ++i)
+       {
+               ScFace &font = m_fonts[f[i]];
+               if (font.usable() || m_includeDisabled)
+               {
+                       m_font_names.append(f[i]);
+                       m_font_values.append(font);
+                       m_enabledFonts.append(font.usable());
+                       int embedFlags = 0;
+                       embedFlags |= font.embedPs() ? EmbedPS : 0;
+                       embedFlags |= font.subset()  ? SubsetPDF : 0;
+                       m_embedFlags.append(embedFlags);
+               }
        }
        endResetModel();
 }

Modified: trunk/Scribus/scribus/fontlistmodel.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=21642&path=/trunk/Scribus/scribus/fontlistmodel.h
==============================================================================
--- trunk/Scribus/scribus/fontlistmodel.h       (original)
+++ trunk/Scribus/scribus/fontlistmodel.h       Sun Dec 11 20:49:19 2016
@@ -32,7 +32,7 @@
        Q_OBJECT
 
        public:
-               FontListModel(QObject * parent = 0, ScribusDoc * doc = 0);
+               FontListModel(QObject * parent = 0, ScribusDoc * doc = 0, bool 
includeDisabled = false);
 
                enum ColumnTypes {
             FontUsable = 0,
@@ -57,7 +57,7 @@
                int columnCount(const QModelIndex&) const;
                /*! Required inherited method. See Qt4 docs.
                It handles displaying for user itself.
-               \Note the Qt::CheckStateRole stuff is handling
+               \note the Qt::CheckStateRole stuff is handling
                user input. And should not be removed. */
                QVariant data(const QModelIndex & index,
                                          int role = Qt::DisplayRole) const;
@@ -70,7 +70,7 @@
                Qt::ItemFlags flags(const QModelIndex &index) const;
 
                //! Returns the font list
-               QList<QString> fonts() { return m_font_names; };
+               QList<QString> fonts() { return m_font_names; }
                //! Sets font list and refresh the model. This will detach the 
model from the main Scribus font list!
                void setFonts(QList<QString> f);
 
@@ -112,6 +112,8 @@
                QVariant headerData(int section,
                                                        Qt::Orientation 
orientation,
                                                        int role = 
Qt::DisplayRole) const;
+
+               bool m_includeDisabled;
 };
 
 #endif

Modified: trunk/Scribus/scribus/plugins/fontpreview/fontpreview.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=21642&path=/trunk/Scribus/scribus/plugins/fontpreview/fontpreview.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/fontpreview/fontpreview.cpp   (original)
+++ trunk/Scribus/scribus/plugins/fontpreview/fontpreview.cpp   Sun Dec 11 
20:49:19 2016
@@ -30,7 +30,7 @@
 
        languageChange();
 
-       fontModel = new FontListModel(this, m_Doc);
+       fontModel = new FontListModel(this, m_Doc, false);
 
        proxyModel = new QSortFilterProxyModel();
        proxyModel->setDynamicSortFilter(true);

Modified: trunk/Scribus/scribus/ui/prefs_fonts.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=21642&path=/trunk/Scribus/scribus/ui/prefs_fonts.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/prefs_fonts.cpp    (original)
+++ trunk/Scribus/scribus/ui/prefs_fonts.cpp    Sun Dec 11 20:49:19 2016
@@ -49,7 +49,7 @@
 
        setMinimumSize(fontMetrics().width( tr( "Available Fonts" )+ tr( "Font 
Substitutions" )+ tr( "Additional Paths" ))+180, 200);
 
-       fontListTableView->setModel(new FontListModel(fontListTableView, 
m_doc));
+       fontListTableView->setModel(new FontListModel(fontListTableView, m_doc, 
true));
 
        fontSubstitutionsTableWidget->setRowCount(RList.count());
        fontSubstitutionsTableWidget->setColumnCount(2);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to