freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master cf79199: [ftinspect] Improve combo box setup.


From: Werner LEMBERG
Subject: [freetype2-demos] master cf79199: [ftinspect] Improve combo box setup.
Date: Sun, 01 May 2016 04:58:16 +0000

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

    [ftinspect] Improve combo box setup.
    
    * src/ftinspect.h (MainGUI): New enums `AntiAliasing',
    `HintingModes', and `LCDFilter'.
    
    * src/ftinspect.cpp (MainGUI::createLayout): Use new enums to set
    items in combo boxes.
    Also simplify computation of maximum width.
---
 ChangeLog         |   11 +++++++++
 src/ftinspect.cpp |   66 ++++++++++++++++++++++++++++-------------------------
 src/ftinspect.h   |   27 ++++++++++++++++++++++
 3 files changed, 73 insertions(+), 31 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7dee389..920a3ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-05-01  Werner Lemberg  <address@hidden>
+
+       [ftinspect] Improve combo box setup.
+
+       * src/ftinspect.h (MainGUI): New enums `AntiAliasing',
+       `HintingModes', and `LCDFilter'.
+
+       * src/ftinspect.cpp (MainGUI::createLayout): Use new enums to set
+       items in combo boxes.
+       Also simplify computation of maximum width.
+
 2016-04-30  Werner Lemberg  <address@hidden>
 
        * src/ftinspect.cpp (MainGUI::createLayout): Fix memory leak.
diff --git a/src/ftinspect.cpp b/src/ftinspect.cpp
index 4b97056..853162a 100644
--- a/src/ftinspect.cpp
+++ b/src/ftinspect.cpp
@@ -70,13 +70,19 @@ MainGUI::createLayout()
   // left side
   hintingModeLabel = new QLabel(tr("Hinting Mode"));
   hintingModeLabel->setAlignment(Qt::AlignRight);
-  QStringList hintingModeStringList;
-  hintingModeStringList << tr("TrueType v35")
-                        << tr("TrueType v38")
-                        << tr("TrueType v40")
-                        << tr("Auto-Hinting");
   hintingModeComboBox = new QComboBox;
-  hintingModeComboBox->insertItems(0, hintingModeStringList);
+  hintingModeComboBox->insertItem(HintingMode_TrueType_v35,
+                                  tr("TrueType v35"));
+  hintingModeComboBox->insertItem(HintingMode_TrueType_v38,
+                                  tr("TrueType v38"));
+  hintingModeComboBox->insertItem(HintingMode_TrueType_v40,
+                                  tr("TrueType v40"));
+  hintingModeComboBox->insertItem(HintingMode_CFF_FreeType,
+                                  tr("CFF (FreeType)"));
+  hintingModeComboBox->insertItem(HintingMode_CFF_Adobe,
+                                  tr("CFF(Adobe)"));
+  hintingModeComboBox->insertItem(HintingMode_AutoHinting,
+                                  tr("Auto-Hinting"));
   hintingModeLabel->setBuddy(hintingModeComboBox);
 
   hortizontalHintingCheckBox = new QCheckBox(tr("Horizontal Hinting"));
@@ -87,32 +93,35 @@ MainGUI::createLayout()
 
   antiAliasingLabel = new QLabel(tr("Anti-Aliasing"));
   antiAliasingLabel->setAlignment(Qt::AlignRight);
-  QStringList antiAliasingStringList;
-  antiAliasingStringList << tr("None")
-                         << tr("Normal")
-                         << tr("Slight")
-                         << tr("LCD (horiz. RGB)")
-                         << tr("LCD (horiz. BGR)")
-                         << tr("LCD (vert. RGB)")
-                         << tr("LCD (vert. BGR)");
   antiAliasingComboBox = new QComboBox;
-  antiAliasingComboBox->insertItems(0, antiAliasingStringList);
+  antiAliasingComboBox->insertItem(AntiAliasing_None,
+                                   tr("None"));
+  antiAliasingComboBox->insertItem(AntiAliasing_Normal,
+                                   tr("Normal"));
+  antiAliasingComboBox->insertItem(AntiAliasing_Slight,
+                                   tr("Slight"));
+  antiAliasingComboBox->insertItem(AntiAliasing_LCD_RGB,
+                                   tr("LCD (RGB)"));
+  antiAliasingComboBox->insertItem(AntiAliasing_LCD_BGR,
+                                   tr("LCD (BGR)"));
+  antiAliasingComboBox->insertItem(AntiAliasing_LCD_Vertical_RGB,
+                                   tr("LCD (vert. RGB)"));
+  antiAliasingComboBox->insertItem(AntiAliasing_LCD_Vertical_BGR,
+                                   tr("LCD (vert. BGR)"));
   antiAliasingLabel->setBuddy(antiAliasingComboBox);
 
   lcdFilterLabel = new QLabel(tr("LCD Filter"));
   lcdFilterLabel->setAlignment(Qt::AlignRight);
-  QStringList lcdFilterStringList;
-  lcdFilterStringList << tr("Default")
-                      << tr("Light")
-                      << tr("None")
-                      << tr("Legacy");
   lcdFilterComboBox = new QComboBox;
-  lcdFilterComboBox->insertItems(0, lcdFilterStringList);
+  lcdFilterComboBox->insertItem(LCD_Default, tr("Default"));
+  lcdFilterComboBox->insertItem(LCD_Light, tr("Light"));
+  lcdFilterComboBox->insertItem(LCD_None, tr("None"));
+  lcdFilterComboBox->insertItem(LCD_Legacy, tr("Legacy"));
   lcdFilterLabel->setBuddy(lcdFilterComboBox);
 
-  int width = 0;
+  int width;
   // make all labels have the same width
-  width = qMax(hintingModeLabel->minimumSizeHint().width(), width);
+  width = hintingModeLabel->minimumSizeHint().width();
   width = qMax(antiAliasingLabel->minimumSizeHint().width(), width);
   width = qMax(lcdFilterLabel->minimumSizeHint().width(), width);
   hintingModeLabel->setMinimumWidth(width);
@@ -121,14 +130,9 @@ MainGUI::createLayout()
 
   // ensure that all items in combo boxes fit completely;
   // also make all combo boxes have the same width
-  QStringList dummyComboStringList;
-  dummyComboStringList << hintingModeStringList
-                       << antiAliasingStringList
-                       << lcdFilterStringList;
-  QComboBox *dummyComboBox = new QComboBox;
-  dummyComboBox->insertItems(0, dummyComboStringList);
-  width = dummyComboBox->minimumSizeHint().width();
-  delete dummyComboBox;
+  width = hintingModeComboBox->minimumSizeHint().width();
+  width = qMax(antiAliasingComboBox->minimumSizeHint().width(), width);
+  width = qMax(lcdFilterComboBox->minimumSizeHint().width(), width);
   hintingModeComboBox->setMinimumWidth(width);
   antiAliasingComboBox->setMinimumWidth(width);
   lcdFilterComboBox->setMinimumWidth(width);
diff --git a/src/ftinspect.h b/src/ftinspect.h
index 5ab0ed6..e109fe9 100644
--- a/src/ftinspect.h
+++ b/src/ftinspect.h
@@ -118,6 +118,33 @@ private:
   QWidget *rightWidget;
   QWidget *mmgxTabWidget;
 
+  enum AntiAliasing
+  {
+    AntiAliasing_None,
+    AntiAliasing_Normal,
+    AntiAliasing_Slight,
+    AntiAliasing_LCD_RGB,
+    AntiAliasing_LCD_BGR,
+    AntiAliasing_LCD_Vertical_RGB,
+    AntiAliasing_LCD_Vertical_BGR
+  };
+  enum HintingModes
+  {
+    HintingMode_TrueType_v35,
+    HintingMode_TrueType_v38,
+    HintingMode_TrueType_v40,
+    HintingMode_CFF_FreeType,
+    HintingMode_CFF_Adobe,
+    HintingMode_AutoHinting
+  };
+  enum LCDFilter
+  {
+    LCD_Default,
+    LCD_Light,
+    LCD_None,
+    LCD_Legacy
+  };
+
   void createActions();
   void createConnections();
   void createLayout();



reply via email to

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