[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] veeki-gsoc-experimental 977b7ed: GUI features and bug fixes.,
Veeki Yadav <=