freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] veeki-gsoc-experimental 977b7ed: GUI features and bug


From: Veeki Yadav
Subject: [freetype2-demos] veeki-gsoc-experimental 977b7ed: GUI features and bug fixes.
Date: Sat, 17 Aug 2019 07:03:26 -0400 (EDT)

branch: veeki-gsoc-experimental
commit 977b7edb00a1bce6015a7a56d6964a78b153669e
Author: gevic <address@hidden>
Commit: gevic <address@hidden>

    GUI features and bug fixes.
    
    'Reset' button added to reset the state.
    Preserve zoom state on view change.
    Added alert box for Multi View.
    Minor bug fixes.
---
 src/ftinspect/AmstelvarAlpha-Variations.ttf | Bin 134984 -> 0 bytes
 src/ftinspect/arial.ttf                     | Bin 367112 -> 0 bytes
 src/ftinspect/ftinspect.cpp                 |   2 +-
 src/ftinspect/maingui.cpp                   | 211 +++++++++++++++++++++++++---
 src/ftinspect/maingui.hpp                   |   9 ++
 src/ftinspect/rendering/glyphbitmap.cpp     |   1 -
 src/ftinspect/rendering/view.cpp            |   1 +
 7 files changed, 203 insertions(+), 21 deletions(-)

diff --git a/src/ftinspect/AmstelvarAlpha-Variations.ttf 
b/src/ftinspect/AmstelvarAlpha-Variations.ttf
deleted file mode 100644
index cb9289d..0000000
Binary files a/src/ftinspect/AmstelvarAlpha-Variations.ttf and /dev/null differ
diff --git a/src/ftinspect/arial.ttf b/src/ftinspect/arial.ttf
deleted file mode 100644
index ff0815c..0000000
Binary files a/src/ftinspect/arial.ttf and /dev/null differ
diff --git a/src/ftinspect/ftinspect.cpp b/src/ftinspect/ftinspect.cpp
index 66686b0..504ec8b 100644
--- a/src/ftinspect/ftinspect.cpp
+++ b/src/ftinspect/ftinspect.cpp
@@ -26,7 +26,7 @@ main(int argc,
 
   for (int i = 1; i < QCoreApplication::arguments().size(); i++)
   {
-    QString homeDir = "/mnt/d/" + QCoreApplication::arguments().at(i);
+    QString homeDir = app.applicationDirPath() + "/" + 
QCoreApplication::arguments().at(i);
     gui.files.append(homeDir);
   }
 
diff --git a/src/ftinspect/maingui.cpp b/src/ftinspect/maingui.cpp
index f453f75..75eb343 100644
--- a/src/ftinspect/maingui.cpp
+++ b/src/ftinspect/maingui.cpp
@@ -11,6 +11,7 @@
 #include <QFileDialog>
 #include <QMessageBox>
 #include <QSettings>
+#include <QtDebug>
 
 #include FT_DRIVER_H
 #include FT_TRUETYPE_TABLES_H
@@ -427,15 +428,18 @@ MainGUI::loadFonts()
 {
   int oldSize = fontList.size();
 
-  if (files.size() <= 0)
+  if (arg == 0)
   {
-      QStringList files = QFileDialog::getOpenFileNames(
+      files = QFileDialog::getOpenFileNames(
                         this,
                         tr("Load one or more fonts"),
                         QDir::homePath(),
                         "",
                         NULL,
                         QFileDialog::ReadOnly);
+  } else
+  {
+    arg = 0;
   }
 
   // XXX sort data, uniquify elements
@@ -663,7 +667,7 @@ MainGUI::checkRenderingMode()
   } else if (!(renderingModeComboBoxx->itemText(index).compare("Waterfall")))
   {
     render_mode = 5;
-    glyphView->setDragMode(QGraphicsView::NoDrag);
+    //glyphView->setDragMode(QGraphicsView::NoDrag);
   } else
   {
     render_mode = 6;
@@ -810,10 +814,43 @@ MainGUI::checkAutoHinting()
 
 
 void
+MainGUI::resetView()
+{
+  if (allGlyphs->isChecked())
+  {
+    renderAll();
+    zoomSpinBox->setValue(1);
+    sizeDoubleSpinBox->setValue(20);
+  } else if (comparatorView->isChecked())
+  {
+    comparatorViewRender();
+    zoomSpinBox->setValue(1);
+    sizeDoubleSpinBox->setValue(20);
+  } else if (gridView->isChecked())
+  {
+    gridViewRender();
+    sizeDoubleSpinBox->setValue(20);
+    zoomSpinBox->setValue(20);
+  }
+}
+
+
+void
+MainGUI::mmViewRender()
+{
+  QMessageBox msgBox;
+  msgBox.setText("This feature hasn't been implemented yet.");
+  msgBox.exec();
+}
+
+
+void
 MainGUI::comparatorViewRender()
 {
     // Basic definition
   FT_Size size;
+
+  comparatorCount += 1;
   
   // Basic Initialization
   size = engine->getFtSize();
@@ -844,6 +881,46 @@ MainGUI::comparatorViewRender()
       currentComparatorItem = NULL;
     }
 
+    if (currentGlyphBitmapItem)
+    {
+      glyphScene->removeItem(currentGlyphBitmapItem);
+      delete currentGlyphBitmapItem;
+
+      currentGlyphBitmapItem = NULL;
+    }
+
+    if (currentGlyphSegmentItem)
+    {
+      glyphScene->removeItem(currentGlyphSegmentItem);
+      delete currentGlyphSegmentItem;
+
+      currentGlyphSegmentItem = NULL;
+    }
+
+    if (currentGlyphOutlineItem)
+    {
+      glyphScene->removeItem(currentGlyphOutlineItem);
+      delete currentGlyphOutlineItem;
+
+      currentGlyphOutlineItem = NULL;
+    }
+
+    if (currentGlyphPointsItem)
+    {
+      glyphScene->removeItem(currentGlyphPointsItem);
+      delete currentGlyphPointsItem;
+
+      currentGlyphPointsItem = NULL;
+    }
+
+    if (currentGlyphPointNumbersItem)
+    {
+      glyphScene->removeItem(currentGlyphPointNumbersItem);
+      delete currentGlyphPointNumbersItem;
+
+      currentGlyphPointNumbersItem = NULL;
+    }
+
     for (int col = 0; col < 3; col++)
     {
       // load flags
@@ -892,6 +969,11 @@ MainGUI::comparatorViewRender()
     int column = columnComboBoxx->currentIndex();
     load_flags[column] |= engine->getFlags();
 
+    showPointNumbersCheckBox->setChecked(false);
+    showBitmapCheckBox->setChecked(false);
+    showPointsCheckBox->setChecked(false);
+    showOutlinesCheckBox->setChecked(false);
+
     // Diable unused parameters
     showPointNumbersCheckBox->setEnabled(false);
     showBitmapCheckBox->setEnabled(false);
@@ -899,11 +981,6 @@ MainGUI::comparatorViewRender()
     showOutlinesCheckBox->setEnabled(false);
     navigationLayout->setEnabled(false);
 
-    showPointNumbersCheckBox->setChecked(false);
-    showBitmapCheckBox->setChecked(false);
-    showPointsCheckBox->setChecked(false);
-    showOutlinesCheckBox->setChecked(false);
-
       // diable glyph buttons
     toStartButtonx->setEnabled(false);
     toM1000Buttonx->setEnabled(false);
@@ -945,9 +1022,13 @@ MainGUI::comparatorViewRender()
                                 (gammaSlider->value()/10.0),
                                 engine->getFlags());
     glyphScene->addItem(currentComparatorItem);
-    sizeDoubleSpinBox->setValue(11);
+  }
+
+  if (comparatorCount < 2)
+  {
     zoomSpinBox->setValue(1);
   }
+
 }
 
 
@@ -972,6 +1053,46 @@ MainGUI::gridViewRender()
       currentComparatorItem = NULL;
     }
 
+    if (currentGlyphBitmapItem)
+    {
+      glyphScene->removeItem(currentGlyphBitmapItem);
+      delete currentGlyphBitmapItem;
+
+      currentGlyphBitmapItem = NULL;
+    }
+
+    if (currentGlyphSegmentItem)
+    {
+      glyphScene->removeItem(currentGlyphSegmentItem);
+      delete currentGlyphSegmentItem;
+
+      currentGlyphSegmentItem = NULL;
+    }
+
+    if (currentGlyphOutlineItem)
+    {
+      glyphScene->removeItem(currentGlyphOutlineItem);
+      delete currentGlyphOutlineItem;
+
+      currentGlyphOutlineItem = NULL;
+    }
+
+    if (currentGlyphPointsItem)
+    {
+      glyphScene->removeItem(currentGlyphPointsItem);
+      delete currentGlyphPointsItem;
+
+      currentGlyphPointsItem = NULL;
+    }
+
+    if (currentGlyphPointNumbersItem)
+    {
+      glyphScene->removeItem(currentGlyphPointNumbersItem);
+      delete currentGlyphPointNumbersItem;
+
+      currentGlyphPointNumbersItem = NULL;
+    }
+
     // enable parameters
     showPointNumbersCheckBox->setEnabled(true);
     showBitmapCheckBox->setEnabled(true);
@@ -998,18 +1119,17 @@ MainGUI::gridViewRender()
     hintingCheckBox->setEnabled(true);
     autoHintingCheckBox->setEnabled(true);
     antiAliasingComboBoxx->setEnabled(true);
+    showBitmapCheckBox->setChecked(true);
+    showOutlinesCheckBox->setChecked(true);
 
     fontNameLabel->setEnabled(true);
     glyphNameLabel->setEnabled(true);
     glyphIndexLabel->setEnabled(true);
-    showBitmapCheckBox->setChecked(true);
 
     currentGridItem = new Grid(gridPen, axisPen);
     glyphScene->addItem(currentGridItem);
-    zoomSpinBox->setValue(20);
-    //drawGlyph();
   }
-
+  drawGlyph();
 }
 
 
@@ -1033,6 +1153,8 @@ MainGUI::renderAll()
   kerningModeComboBoxx->setEnabled(false);
   stroke_Slider->setEnabled(false);
 
+  renderAllCount += 1;
+
   if (render_mode == 3)
   {
     stroke_Slider->setEnabled(true);
@@ -1057,11 +1179,17 @@ MainGUI::renderAll()
     slant_Slider->setEnabled(false);
   }
 
+  showPointNumbersCheckBox->setChecked(false);
+  showBitmapCheckBox->setChecked(false);
+  showPointsCheckBox->setChecked(false);
+  showOutlinesCheckBox->setChecked(false);
+
   // Diable unused parameters
   showPointNumbersCheckBox->setEnabled(false);
   showBitmapCheckBox->setEnabled(false);
   showPointsCheckBox->setEnabled(false);
   showOutlinesCheckBox->setEnabled(false);
+  navigationLayout->setEnabled(false);
 
   // Embolden factors
   double x_factor = embolden_x_Slider->value()/1000.0;
@@ -1112,10 +1240,45 @@ MainGUI::renderAll()
     currentRenderAllItem = NULL;
   }
 
-  showPointNumbersCheckBox->setChecked(false);
-  showBitmapCheckBox->setChecked(false);
-  showPointsCheckBox->setChecked(false);
-  showOutlinesCheckBox->setChecked(false);
+      if (currentGlyphBitmapItem)
+    {
+      glyphScene->removeItem(currentGlyphBitmapItem);
+      delete currentGlyphBitmapItem;
+
+      currentGlyphBitmapItem = NULL;
+    }
+
+    if (currentGlyphSegmentItem)
+    {
+      glyphScene->removeItem(currentGlyphSegmentItem);
+      delete currentGlyphSegmentItem;
+
+      currentGlyphSegmentItem = NULL;
+    }
+
+    if (currentGlyphOutlineItem)
+    {
+      glyphScene->removeItem(currentGlyphOutlineItem);
+      delete currentGlyphOutlineItem;
+
+      currentGlyphOutlineItem = NULL;
+    }
+
+    if (currentGlyphPointsItem)
+    {
+      glyphScene->removeItem(currentGlyphPointsItem);
+      delete currentGlyphPointsItem;
+
+      currentGlyphPointsItem = NULL;
+    }
+
+    if (currentGlyphPointNumbersItem)
+    {
+      glyphScene->removeItem(currentGlyphPointNumbersItem);
+      delete currentGlyphPointNumbersItem;
+
+      currentGlyphPointNumbersItem = NULL;
+    }
 
   // disable glyph buttons
   toStartButtonx->setEnabled(false);
@@ -1165,8 +1328,11 @@ MainGUI::renderAll()
                                   engine->getFlags(),
                                   (gammaSlider->value()/10.0));
   glyphScene->addItem(currentRenderAllItem);
-  sizeDoubleSpinBox->setValue(20);
-  zoomSpinBox->setValue(1);
+
+  if (renderAllCount < 2)
+  {
+    zoomSpinBox->setValue(1);
+  }
 }
 
 
@@ -2008,6 +2174,8 @@ MainGUI::createLayout()
   programNavigationLayout->addStretch(1);
   programNavigationLayout->addWidget(multiView);
   programNavigationLayout->addStretch(1);
+  programNavigationLayout->addWidget(reset);
+  programNavigationLayout->addStretch(1);
   programNavigationLayout->addStretch(2);
 
 
@@ -2106,6 +2274,10 @@ MainGUI::createConnections()
           SLOT(gridViewRender()));
   connect(comparatorView, SIGNAL(clicked()),
           SLOT(comparatorViewRender()));
+  connect(multiView, SIGNAL(clicked()),
+          SLOT(mmViewRender()));
+  connect(reset, SIGNAL(clicked()),
+          SLOT(resetView()));
 
   connect(autoHintingCheckBox, SIGNAL(clicked()),
           SLOT(checkAutoHinting()));
@@ -2374,6 +2546,7 @@ MainGUI::setDefaults()
 
   if (files.size() != 0)
   {
+    arg = 1;
     loadFonts();
   }
 }
diff --git a/src/ftinspect/maingui.hpp b/src/ftinspect/maingui.hpp
index f4f67d4..f5728c8 100644
--- a/src/ftinspect/maingui.hpp
+++ b/src/ftinspect/maingui.hpp
@@ -72,6 +72,11 @@ public:
   void update(Engine*);
   QStringList files;
 
+  // modes count
+  int comparatorCount = 0;
+  int renderAllCount = 0;
+  int arg = 0;
+
   friend class Engine;
   friend FT_Error faceRequester(FTC_FaceID,
                                 FT_Library,
@@ -119,6 +124,8 @@ private slots:
   void gammaChange();
   void gridViewRender();
   void comparatorViewRender();
+  void mmViewRender();
+  void resetView();
 
 private:
   Engine* engine;
@@ -261,6 +268,8 @@ private:
   QRadioButton *allGlyphs = new QRadioButton(tr("All Glyphs"));
   QRadioButton *comparatorView = new QRadioButton(tr("Comparator"));
   QRadioButton *multiView = new QRadioButton(tr("Multi View"));
+  QPushButton *reset  = new QPushButton(tr("Reset"));;
+
 
   QList<int> hintingModesAlwaysDisabled;
 
diff --git a/src/ftinspect/rendering/glyphbitmap.cpp 
b/src/ftinspect/rendering/glyphbitmap.cpp
index f82289c..eae5fba 100644
--- a/src/ftinspect/rendering/glyphbitmap.cpp
+++ b/src/ftinspect/rendering/glyphbitmap.cpp
@@ -8,7 +8,6 @@
 #include <cmath>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
-#include <QtDebug>
 
 
 GlyphBitmap::GlyphBitmap(FT_Outline* outline,
diff --git a/src/ftinspect/rendering/view.cpp b/src/ftinspect/rendering/view.cpp
index 2579e2d..fa8ed06 100644
--- a/src/ftinspect/rendering/view.cpp
+++ b/src/ftinspect/rendering/view.cpp
@@ -7,6 +7,7 @@
 #include <QFile>
 #include <QImage>
 #include <iostream>
+#include <QSettings>
 #include <QtDebug>
 
 #define ft_render_mode_normal  FT_RENDER_MODE_NORMAL



reply via email to

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