Author: jghali
Date: Thu Nov  9 11:48:22 2017
New Revision: 22218

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22218
Log:
#14189: Fonts can't be outlined when exporting PDF/X

Added:
    trunk/Scribus/scribus/ui/fontembeddingcombo.cpp
    trunk/Scribus/scribus/ui/fontembeddingcombo.h
    trunk/Scribus/scribus/ui/fontembeddingmodel.cpp
    trunk/Scribus/scribus/ui/fontembeddingmodel.h
Modified:
    trunk/Scribus/scribus/CMakeLists.txt
    trunk/Scribus/scribus/ui/prefs_pdfexport.cpp
    trunk/Scribus/scribus/ui/prefs_pdfexportbase.ui
    trunk/Scribus/scribus/ui/tabpdfoptions.cpp
    trunk/Scribus/scribus/ui/tabpdfoptions.ui
    trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj
    trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj.filters
    trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj
    trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters

Modified: trunk/Scribus/scribus/CMakeLists.txt
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/scribus/CMakeLists.txt
==============================================================================
--- trunk/Scribus/scribus/CMakeLists.txt        (original)
+++ trunk/Scribus/scribus/CMakeLists.txt        Thu Nov  9 11:48:22 2017
@@ -354,6 +354,8 @@
        ui/extimageprops.h
        ui/filedialogeventcatcher.h
        ui/fontcombo.h
+       ui/fontembeddingcombo.h
+       ui/fontembeddingmodel.h
        ui/fontlistview.h
        ui/fontreplacedialog.h
        ui/gradientaddedit.h
@@ -832,6 +834,8 @@
        ui/extimageprops.cpp
        ui/filedialogeventcatcher.cpp
        ui/fontcombo.cpp
+       ui/fontembeddingcombo.cpp
+       ui/fontembeddingmodel.cpp
        ui/fontlistview.cpp
        ui/fontreplacedialog.cpp
        ui/gradientaddedit.cpp

Modified: trunk/Scribus/scribus/ui/prefs_pdfexport.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/scribus/ui/prefs_pdfexport.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/prefs_pdfexport.cpp        (original)
+++ trunk/Scribus/scribus/ui/prefs_pdfexport.cpp        Thu Nov  9 11:48:22 2017
@@ -110,12 +110,12 @@
 
 PDFOptions::PDFFontEmbedding Prefs_PDFExport::fontEmbeddingMode()
 {
-       return (PDFOptions::PDFFontEmbedding) 
fontEmbeddingCombo->currentIndex();
+       return fontEmbeddingCombo->embeddingMode();
 }
 
 QStringList Prefs_PDFExport::fontsToEmbed()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
        if (embeddingMode != PDFOptions::EmbedFonts)
                return QStringList();
 
@@ -127,7 +127,7 @@
 
 QStringList Prefs_PDFExport::fontsToSubset()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
        if (embeddingMode != PDFOptions::EmbedFonts)
                return QStringList();
 
@@ -139,7 +139,7 @@
 
 QStringList Prefs_PDFExport::fontsToOutline()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
        if (embeddingMode != PDFOptions::OutlineFonts)
                return QStringList();
 
@@ -303,6 +303,7 @@
        maxExportResolutionSpinBox->setValue(prefsData->pdfPrefs.PicRes);
        maxExportResolutionSpinBox->setEnabled(prefsData->pdfPrefs.RecalcPic);
 
+       fontEmbeddingCombo->setEmbeddingMode(prefsData->pdfPrefs.FontEmbedding);
        if (m_doc != 0 && exportingPDF)
        {
 //     Build a list of all Fonts used in Annotations;
@@ -691,7 +692,7 @@
        prefsData->pdfPrefs.MirrorV = pageMirrorVerticalToolButton->isChecked();
        prefsData->pdfPrefs.RotateDeg = rotationComboBox->currentIndex() * 90;
        prefsData->pdfPrefs.Articles = 
saveLinkedTextFramesAsArticlesCheckBox->isChecked();
-       prefsData->pdfPrefs.FontEmbedding = (PDFOptions::PDFFontEmbedding) 
fontEmbeddingCombo->currentIndex();
+       prefsData->pdfPrefs.FontEmbedding = fontEmbeddingCombo->embeddingMode();
        prefsData->pdfPrefs.Encrypt = useEncryptionCheckBox->isChecked();
        prefsData->pdfPrefs.UseLPI = useCustomRenderingCheckBox->isChecked();
        prefsData->pdfPrefs.UseSpotColors = 
!convertSpotsToProcessCheckBox->isChecked();
@@ -1060,7 +1061,7 @@
 
        if (i < 3)  // not PDF/X
        {
-               fontEmbeddingCombo->setEnabled(true);
+               fontEmbeddingCombo->setNoEmbeddingEnabled(true);
                enablePDFXWidgets(false);
                tabWidget->setTabEnabled(2, true);
                outputIntentionComboBox->setEnabled(true);
@@ -1097,13 +1098,18 @@
                        emit hasInfo();
        }
 
-       fontEmbeddingCombo->setCurrentIndex(0);
-       fontEmbeddingCombo->setEnabled(false);
-
-       embeddedFontsListWidget->setEnabled(true);
-       embedAllButton->setEnabled(true);
-       subsettedFontsListWidget->setEnabled(true);
-       subsetAllButton->setEnabled(true);
+       PDFOptions::PDFFontEmbedding oldEmbeddingMode = 
fontEmbeddingCombo->embeddingMode();
+       fontEmbeddingCombo->setNoEmbeddingEnabled(false);
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
+
+       if (oldEmbeddingMode != embeddingMode)
+               embeddedFontsListWidget->clearSelection();
+       embeddedFontsListWidget->setEnabled(embeddingMode == 
PDFOptions::EmbedFonts);
+       embedAllButton->setEnabled(embeddingMode == PDFOptions::EmbedFonts);
+       if (oldEmbeddingMode != embeddingMode)
+               subsettedFontsListWidget->clearSelection();
+       subsettedFontsListWidget->setEnabled(embeddingMode == 
PDFOptions::EmbedFonts);
+       subsetAllButton->setEnabled(embeddingMode == PDFOptions::EmbedFonts);
        toSubsetButton->setEnabled(true);
        fromSubsetButton->setEnabled(true);
 
@@ -1365,7 +1371,7 @@
 
 void Prefs_PDFExport::EmbeddingModeChange()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
 
        embeddedFontsListWidget->setEnabled(embeddingMode == 
PDFOptions::EmbedFonts);
        embedAllButton->setEnabled(embeddingMode == PDFOptions::EmbedFonts);

Modified: trunk/Scribus/scribus/ui/prefs_pdfexportbase.ui
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/scribus/ui/prefs_pdfexportbase.ui
==============================================================================
--- trunk/Scribus/scribus/ui/prefs_pdfexportbase.ui     (original)
+++ trunk/Scribus/scribus/ui/prefs_pdfexportbase.ui     Thu Nov  9 11:48:22 2017
@@ -1306,23 +1306,7 @@
           </widget>
          </item>
          <item>
-          <widget class="QComboBox" name="fontEmbeddingCombo">
-           <item>
-            <property name="text">
-             <string>Embed or Subset</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>Outline All Fonts</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>Do Not Embed</string>
-            </property>
-           </item>
-          </widget>
+          <widget class="FontEmbeddingCombo" name="fontEmbeddingCombo"/>
          </item>
         </layout>
        </item>
@@ -1803,6 +1787,11 @@
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
    <header>ui/scrspinbox.h</header>
+  </customwidget>
+  <customwidget>
+   <class>FontEmbeddingCombo</class>
+   <extends>QComboBox</extends>
+   <header>ui/fontembeddingcombo.h</header>
   </customwidget>
   <customwidget>
    <class>NewMarginWidget</class>

Modified: trunk/Scribus/scribus/ui/tabpdfoptions.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/scribus/ui/tabpdfoptions.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/tabpdfoptions.cpp  (original)
+++ trunk/Scribus/scribus/ui/tabpdfoptions.cpp  Thu Nov  9 11:48:22 2017
@@ -295,12 +295,12 @@
 
 PDFOptions::PDFFontEmbedding TabPDFOptions::fontEmbeddingMode()
 {
-       return (PDFOptions::PDFFontEmbedding) 
fontEmbeddingCombo->currentIndex();
+       return fontEmbeddingCombo->embeddingMode();
 }
 
 QStringList TabPDFOptions::fontsToEmbed()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
        if (embeddingMode != PDFOptions::EmbedFonts)
                return QStringList();
 
@@ -312,7 +312,7 @@
 
 QStringList TabPDFOptions::fontsToSubset()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
        if (embeddingMode != PDFOptions::EmbedFonts)
                return QStringList();
 
@@ -324,7 +324,7 @@
 
 QStringList TabPDFOptions::fontsToOutline()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
        if (embeddingMode != PDFOptions::OutlineFonts)
                return QStringList();
 
@@ -396,7 +396,11 @@
                Opts.Version == PDFOptions::PDFVersion_X3  ||
                Opts.Version == PDFOptions::PDFVersion_X4 )
        {
-               Opts.FontEmbedding = PDFOptions::EmbedFonts;
+               if (Opts.FontEmbedding != PDFOptions::EmbedFonts &&
+                       Opts.FontEmbedding != PDFOptions::OutlineFonts)
+               {
+                       Opts.FontEmbedding = PDFOptions::EmbedFonts;
+               }
        }
        fontEmbeddingCombo->setCurrentIndex((int) Opts.FontEmbedding);
 
@@ -744,7 +748,7 @@
        pdfOptions.pageRangeSelection = AllPages->isChecked() ? 0 : 1;
        pdfOptions.pageRangeString = PageNr->text();
        pdfOptions.Articles = Article->isChecked();
-       pdfOptions.FontEmbedding =  (PDFOptions::PDFFontEmbedding) 
fontEmbeddingCombo->currentIndex();
+       pdfOptions.FontEmbedding =  fontEmbeddingCombo->embeddingMode();
        pdfOptions.Encrypt = Encry->isChecked();
        pdfOptions.UseLPI = UseLPI->isChecked();
        pdfOptions.UseSpotColors = !useSpot->isChecked();
@@ -937,7 +941,7 @@
 
        if (a < 3)  // not PDF/X
        {
-               fontEmbeddingCombo->setEnabled(true);
+               fontEmbeddingCombo->setNoEmbeddingEnabled(true);
                X3Group->setEnabled(false);
                setTabEnabled(indexOf(tabSecurity), true);
                OutCombo->setEnabled(true);
@@ -969,15 +973,20 @@
                EmbedProfs2->setEnabled(false);
        }
 
-       fontEmbeddingCombo->setCurrentIndex(0);
-       fontEmbeddingCombo->setEnabled(false);
-
-       EmbedList->setEnabled(true);
-       EmbedFonts->setEnabled(true);
-       SubsetList->setEnabled(true);
-       SubsetFonts->setEnabled(true);
-       ToSubset->setEnabled(true);
-       FromSubset->setEnabled(true);
+       PDFOptions::PDFFontEmbedding oldEmbeddingMode = 
fontEmbeddingCombo->embeddingMode();
+       fontEmbeddingCombo->setNoEmbeddingEnabled(false);
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
+
+       if (oldEmbeddingMode != embeddingMode)
+               EmbedList->clearSelection();
+       EmbedList->setEnabled(embeddingMode == PDFOptions::EmbedFonts);
+       EmbedFonts->setEnabled(embeddingMode == PDFOptions::EmbedFonts);
+       if (oldEmbeddingMode != embeddingMode)
+               SubsetList->clearSelection();
+       SubsetList->setEnabled(embeddingMode == PDFOptions::EmbedFonts);
+       SubsetFonts->setEnabled(embeddingMode == PDFOptions::EmbedFonts);
+       ToSubset->setEnabled(false); // Will be enabled when user select a font 
in appropriate list
+       FromSubset->setEnabled(false); // Will be enabled when user select a 
font in appropriate list
 
        EmbedAll();
        CheckBox10->setChecked(false);
@@ -1320,7 +1329,7 @@
 
 void TabPDFOptions::EmbeddingModeChange()
 {
-       PDFOptions::PDFFontEmbedding embeddingMode = fontEmbeddingMode();
+       PDFOptions::PDFFontEmbedding embeddingMode = 
fontEmbeddingCombo->embeddingMode();
 
        EmbedList->clearSelection();
        EmbedList->setEnabled(embeddingMode == PDFOptions::EmbedFonts);

Modified: trunk/Scribus/scribus/ui/tabpdfoptions.ui
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/scribus/ui/tabpdfoptions.ui
==============================================================================
--- trunk/Scribus/scribus/ui/tabpdfoptions.ui   (original)
+++ trunk/Scribus/scribus/ui/tabpdfoptions.ui   Thu Nov  9 11:48:22 2017
@@ -516,23 +516,7 @@
           </widget>
          </item>
          <item>
-          <widget class="QComboBox" name="fontEmbeddingCombo">
-           <item>
-            <property name="text">
-             <string>Embed or Subset</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>Outline All Fonts</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>Do Not Embed</string>
-            </property>
-           </item>
-          </widget>
+          <widget class="FontEmbeddingCombo" name="fontEmbeddingCombo"/>
          </item>
         </layout>
        </item>
@@ -1925,6 +1909,11 @@
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
    <header>ui/scrspinbox.h</header>
+  </customwidget>
+  <customwidget>
+   <class>FontEmbeddingCombo</class>
+   <extends>QComboBox</extends>
+   <header>ui/fontembeddingcombo.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>

Modified: trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj
==============================================================================
--- trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj   (original)
+++ trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj   Thu Nov  9 
11:48:22 2017
@@ -577,6 +577,8 @@
     <moc Include="..\..\..\scribus\ui\propertywidget_pathtext.h" />
     <moc Include="..\..\..\scribus\ui\propertywidget_textcolor.h" />
     <moc Include="..\..\..\scribus\ui\pagepropertiesdialog.h" />
+    <moc Include="..\..\..\scribus\ui\fontembeddingcombo.h" />
+    <moc Include="..\..\..\scribus\ui\fontembeddingmodel.h" />
     <ClInclude Include="..\..\..\scribus\ui\propertywidgetbase.h" />
     <moc Include="..\..\..\scribus\pslib.h" />
     <moc Include="..\..\..\scribus\ui\query.h" />
@@ -954,6 +956,8 @@
     <ClCompile Include="..\..\..\scribus\filewatcher.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\fontcombo.cpp" />
     <ClCompile Include="..\..\..\scribus\fontlistmodel.cpp" />
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingcombo.cpp" />
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingmodel.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\fontlistview.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\fontreplacedialog.cpp" />
     <ClCompile Include="..\..\..\scribus\fpoint.cpp" />

Modified: trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj.filters
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj.filters
==============================================================================
--- trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj.filters   
(original)
+++ trunk/Scribus/win32/msvc2012/scribus-main/Scribus.vcxproj.filters   Thu Nov 
 9 11:48:22 2017
@@ -725,6 +725,12 @@
     <ClInclude Include="..\..\..\scribus\fonts\fontfeatures.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\scribus\ui\fontembeddingmodel.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\scribus\ui\fontembeddingcombo.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\scribus\desaxe\digester.cpp">
@@ -2324,6 +2330,12 @@
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\scribus\fonts\fontfeatures.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingcombo.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingmodel.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>

Modified: trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj
==============================================================================
--- trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj   (original)
+++ trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj   Thu Nov  9 
11:48:22 2017
@@ -577,6 +577,8 @@
     <moc Include="..\..\..\scribus\ui\propertywidget_pathtext.h" />
     <moc Include="..\..\..\scribus\ui\propertywidget_textcolor.h" />
     <moc Include="..\..\..\scribus\ui\pagepropertiesdialog.h" />
+    <moc Include="..\..\..\scribus\ui\fontembeddingcombo.h" />
+    <moc Include="..\..\..\scribus\ui\fontembeddingmodel.h" />
     <ClInclude Include="..\..\..\scribus\ui\propertywidgetbase.h" />
     <moc Include="..\..\..\scribus\pslib.h" />
     <moc Include="..\..\..\scribus\ui\query.h" />
@@ -954,6 +956,8 @@
     <ClCompile Include="..\..\..\scribus\filewatcher.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\fontcombo.cpp" />
     <ClCompile Include="..\..\..\scribus\fontlistmodel.cpp" />
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingcombo.cpp" />
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingmodel.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\fontlistview.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\fontreplacedialog.cpp" />
     <ClCompile Include="..\..\..\scribus\fpoint.cpp" />

Modified: trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22218&path=/trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters
==============================================================================
--- trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters   
(original)
+++ trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters   Thu Nov 
 9 11:48:22 2017
@@ -725,6 +725,12 @@
     <ClInclude Include="..\..\..\scribus\fonts\fontfeatures.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\scribus\ui\fontembeddingmodel.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\scribus\ui\fontembeddingcombo.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\scribus\desaxe\digester.cpp">
@@ -2324,6 +2330,12 @@
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\scribus\fonts\fontfeatures.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingmodel.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\scribus\ui\fontembeddingcombo.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>


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

Reply via email to