freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master 3ecba00 3/7: [ftinspect] Add check box for auto


From: Werner LEMBERG
Subject: [freetype2-demos] master 3ecba00 3/7: [ftinspect] Add check box for auto-hinting.
Date: Fri, 06 May 2016 14:20:49 +0000

branch: master
commit 3ecba00d5d7f12c3cb84ac2990529364932096ce
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    [ftinspect] Add check box for auto-hinting.
    
    This allows easier hinting mode switch than having it in the hinting
    mode combo box.
    
    * src/ftinspect.cpp (MainGUI::checkAutoHinting): New method,
    containing almost stuff from ...
    (MainGUI::checkHintingMode): Updated.
    (MainGUI::createLayout): Updated; we also indent check boxes
    dependent on auto-hinting.
    (MainGUI::createConnections, MainGUI::setDefaults): Updated.
    
    * src/ftinspect.h: Updated.
    (HintingModes): Remove `HintingMode_AutoHinting' enum value.
---
 ChangeLog         |   17 +++++++++++++++++
 src/ftinspect.cpp |   55 +++++++++++++++++++++++++++++++++++++++++------------
 src/ftinspect.h   |   10 ++++++++--
 3 files changed, 68 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3473e1c..c750b17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
 2016-05-06  Werner Lemberg  <address@hidden>
 
+       [ftinspect] Add check box for auto-hinting.
+
+       This allows easier hinting mode switch than having it in the hinting
+       mode combo box.
+
+       * src/ftinspect.cpp (MainGUI::checkAutoHinting): New method,
+       containing almost stuff from ...
+       (MainGUI::checkHintingMode): Updated.
+       (MainGUI::createLayout): Updated; we also indent check boxes
+       dependent on auto-hinting.
+       (MainGUI::createConnections, MainGUI::setDefaults): Updated.
+
+       * src/ftinspect.h: Updated.
+       (HintingModes): Remove `HintingMode_AutoHinting' enum value.
+
+2016-05-06  Werner Lemberg  <address@hidden>
+
        [ftinspect] Disable unavailable items in anti-aliasing combo box.
 
        * src/ftinspect.h (MainGUI): Make `setDefaults' public.
diff --git a/src/ftinspect.cpp b/src/ftinspect.cpp
index 3a7e143..7ae21d0 100644
--- a/src/ftinspect.cpp
+++ b/src/ftinspect.cpp
@@ -476,10 +476,18 @@ void
 MainGUI::checkHintingMode()
 {
   int index = hintingModeComboBoxx->currentIndex();
-  int AAcurrIndex = antiAliasingComboBoxx->currentIndex();
 
-  if (index == HintingMode_AutoHinting)
+  // XXX to be completed
+}
+
+
+void
+MainGUI::checkAutoHinting()
+{
+  if (autoHintingCheckBox->isChecked())
   {
+    hintingModeComboBoxx->setEnabled(false);
+
     horizontalHintingCheckBox->setEnabled(true);
     verticalHintingCheckBox->setEnabled(true);
     blueZoneHintingCheckBox->setEnabled(true);
@@ -490,6 +498,8 @@ MainGUI::checkHintingMode()
   }
   else
   {
+    hintingModeComboBoxx->setEnabled(true);
+
     horizontalHintingCheckBox->setEnabled(false);
     verticalHintingCheckBox->setEnabled(false);
     blueZoneHintingCheckBox->setEnabled(false);
@@ -498,7 +508,7 @@ MainGUI::checkHintingMode()
 
     antiAliasingComboBoxx->setItemEnabled(AntiAliasing_Slight, false);
 
-    if (AAcurrIndex == AntiAliasing_Slight)
+    if (antiAliasingComboBoxx->currentIndex() == AntiAliasing_Slight)
       antiAliasingComboBoxx->setCurrentIndex(AntiAliasing_Normal);
   }
 }
@@ -746,10 +756,9 @@ MainGUI::createLayout()
                                    tr("CFF (FreeType)"));
   hintingModeComboBoxx->insertItem(HintingMode_CFF_Adobe,
                                    tr("CFF (Adobe)"));
-  hintingModeComboBoxx->insertItem(HintingMode_AutoHinting,
-                                   tr("Auto-Hinting"));
   hintingModeLabel->setBuddy(hintingModeComboBoxx);
 
+  autoHintingCheckBox = new QCheckBox(tr("Auto-Hinting"));
   horizontalHintingCheckBox = new QCheckBox(tr("Horizontal Hinting"));
   verticalHintingCheckBox = new QCheckBox(tr("Vertical Hinting"));
   blueZoneHintingCheckBox = new QCheckBox(tr("Blue-Zone Hinting"));
@@ -820,6 +829,26 @@ MainGUI::createLayout()
   hintingModeLayout->addWidget(hintingModeLabel);
   hintingModeLayout->addWidget(hintingModeComboBoxx);
 
+  horizontalHintingLayout = new QHBoxLayout;
+  horizontalHintingLayout->addSpacing(20); // XXX px
+  horizontalHintingLayout->addWidget(horizontalHintingCheckBox);
+
+  verticalHintingLayout = new QHBoxLayout;
+  verticalHintingLayout->addSpacing(20); // XXX px
+  verticalHintingLayout->addWidget(verticalHintingCheckBox);
+
+  blueZoneHintingLayout = new QHBoxLayout;
+  blueZoneHintingLayout->addSpacing(20); // XXX px
+  blueZoneHintingLayout->addWidget(blueZoneHintingCheckBox);
+
+  segmentDrawingLayout = new QHBoxLayout;
+  segmentDrawingLayout->addSpacing(20); // XXX px
+  segmentDrawingLayout->addWidget(segmentDrawingCheckBox);
+
+  warpingLayout = new QHBoxLayout;
+  warpingLayout->addSpacing(20); // XXX px
+  warpingLayout->addWidget(warpingCheckBox);
+
   antiAliasingLayout = new QHBoxLayout;
   antiAliasingLayout->addWidget(antiAliasingLabel);
   antiAliasingLayout->addWidget(antiAliasingComboBoxx);
@@ -834,11 +863,12 @@ MainGUI::createLayout()
 
   generalTabLayout = new QVBoxLayout;
   generalTabLayout->addLayout(hintingModeLayout);
-  generalTabLayout->addWidget(horizontalHintingCheckBox);
-  generalTabLayout->addWidget(verticalHintingCheckBox);
-  generalTabLayout->addWidget(blueZoneHintingCheckBox);
-  generalTabLayout->addWidget(segmentDrawingCheckBox);
-  generalTabLayout->addWidget(warpingCheckBox);
+  generalTabLayout->addWidget(autoHintingCheckBox);
+  generalTabLayout->addLayout(horizontalHintingLayout);
+  generalTabLayout->addLayout(verticalHintingLayout);
+  generalTabLayout->addLayout(blueZoneHintingLayout);
+  generalTabLayout->addLayout(segmentDrawingLayout);
+  generalTabLayout->addLayout(warpingLayout);
   generalTabLayout->addSpacing(20); // XXX px
   generalTabLayout->addStretch(1);
   generalTabLayout->addLayout(antiAliasingLayout);
@@ -1009,6 +1039,8 @@ MainGUI::createConnections()
   connect(antiAliasingComboBoxx, SIGNAL(currentIndexChanged(int)), this,
           SLOT(checkAntiAliasing()));
 
+  connect(autoHintingCheckBox, SIGNAL(clicked()), this,
+          SLOT(checkAutoHinting()));
   connect(showPointsCheckBox, SIGNAL(clicked()), this,
           SLOT(checkShowPoints()));
 
@@ -1121,8 +1153,6 @@ MainGUI::setDefaults()
   currentFaceIndex = -1;
   currentInstanceIndex = -1;
 
-  // XXX only dummy values right now
-
   hintingModeComboBoxx->setCurrentIndex(HintingMode_TrueType_v35);
   antiAliasingComboBoxx->setCurrentIndex(AntiAliasing_LCD);
   lcdFilterComboBox->setCurrentIndex(LCDFilter_Light);
@@ -1135,6 +1165,7 @@ MainGUI::setDefaults()
   showOutlinesCheckBox->setChecked(true);
 
   checkHintingMode();
+  checkAutoHinting();
   checkAntiAliasing();
   checkShowPoints();
   checkUnits();
diff --git a/src/ftinspect.h b/src/ftinspect.h
index 5a06039..a7a28e7 100644
--- a/src/ftinspect.h
+++ b/src/ftinspect.h
@@ -161,6 +161,7 @@ protected:
 private slots:
   void about();
   void checkAntiAliasing();
+  void checkAutoHinting();
   void checkCurrentFaceIndex();
   void checkCurrentFontIndex();
   void checkCurrentInstanceIndex();
@@ -191,6 +192,7 @@ private:
   QAction *exitAct;
   QAction *loadFontsAct;
 
+  QCheckBox *autoHintingCheckBox;
   QCheckBox *blueZoneHintingCheckBox;
   QCheckBox *horizontalHintingCheckBox;
   QCheckBox *segmentDrawingCheckBox;
@@ -216,12 +218,17 @@ private:
   QHash<int, int> hintingModesCFFHash;
 
   QHBoxLayout *antiAliasingLayout;
+  QHBoxLayout *blueZoneHintingLayout;
+  QHBoxLayout *ftinspectLayout;
   QHBoxLayout *gammaLayout;
   QHBoxLayout *hintingModeLayout;
-  QHBoxLayout *ftinspectLayout;
+  QHBoxLayout *horizontalHintingLayout;
   QHBoxLayout *lcdFilterLayout;
   QHBoxLayout *navigationLayout;
+  QHBoxLayout *segmentDrawingLayout;
   QHBoxLayout *sizeLayout;
+  QHBoxLayout *verticalHintingLayout;
+  QHBoxLayout *warpingLayout;
   QHBoxLayout *watchLayout;
 
   QLabel *antiAliasingLabel;
@@ -292,7 +299,6 @@ private:
     HintingMode_TrueType_v40,
     HintingMode_CFF_FreeType,
     HintingMode_CFF_Adobe,
-    HintingMode_AutoHinting
   };
   enum LCDFilter
   {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]