Olena-patches
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2013
- 9 participants
- 139 discussions

olena-2.0-195-g0bdc290 mln/util/ztree_of_shapes.hh: Add area_2face attribute.
by Guillaume Lazzara 25 Feb '13
by Guillaume Lazzara 25 Feb '13
25 Feb '13
---
milena/ChangeLog | 4 ++++
milena/mln/util/ztree_of_shapes.hh | 9 ++++++++-
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 20dff54..3ba10a9 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,7 @@
+2013-02-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/util/ztree_of_shapes.hh: Add area_2face attribute.
+
2013-02-12 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/util/ztree_of_shapes.hh: Fix warnings.
diff --git a/milena/mln/util/ztree_of_shapes.hh b/milena/mln/util/ztree_of_shapes.hh
index 7e8ddeb..7ea3718 100644
--- a/milena/mln/util/ztree_of_shapes.hh
+++ b/milena/mln/util/ztree_of_shapes.hh
@@ -66,6 +66,7 @@ namespace mln
tag = None;
own_area = 0;
area = 0;
+ area_2face = 0;
nchild = 0;
color = literal::black;
is_leaf = true;
@@ -90,11 +91,16 @@ namespace mln
// It is stored on any representatives.
unsigned own_area;
- // Corresponds to the number of pixels of all the sub-shapes and
+ // Corresponds to the number of faces of all the sub-shapes and
// at the same level.
// It is stored on any representatives.
unsigned area;
+ // Corresponds to the number of 2-faces of all the sub-shapes and
+ // at the same level.
+ // It is stored on any representatives.
+ unsigned area_2face;
+
// The bounding box.
// It is stored on 0-representatives ONLY.
box2d bbox;
@@ -194,6 +200,7 @@ namespace mln
return l.tag == r.tag
&& l.own_area == r.own_area
&& l.area == r.area
+ && l.area_2face == r.area_2face
&& l.bbox == r.bbox
&& l.color == r.color
&& l.nchild == r.nchild
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/viewer-new has been created
at c471441b433eb1f1b6e662737905d09ffd541e2a (commit)
- Log -----------------------------------------------------------------
c471441 Try to implement Makefile.am
-----------------------------------------------------------------------
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0
---
GScribo/BUGS | 1 -
GScribo/GScribo.pro | 83 ---
GScribo/GScribo.pro.user | 405 ----------
GScribo/GScribo.pro.user.1.3 | 283 -------
GScribo/PagesWidget/pagesdelegate.cpp | 20 -
GScribo/PagesWidget/pagesdelegate.h | 18 -
GScribo/PagesWidget/pagesmodel.cpp | 55 --
GScribo/PagesWidget/pagesmodel.h | 43 --
GScribo/PagesWidget/pageswidget.cpp | 49 --
GScribo/PagesWidget/pageswidget.h | 55 --
GScribo/Preferences/generaloptions.cpp | 44 --
GScribo/Preferences/generaloptions.h | 34 -
GScribo/Preferences/generaloptions.ui | 100 ---
GScribo/Preferences/ocroptions.cpp | 53 --
GScribo/Preferences/ocroptions.h | 33 -
GScribo/Preferences/ocroptions.ui | 62 --
GScribo/Preferences/optionwidget.h | 15 -
GScribo/Preferences/preferencesdialog.cpp | 98 ---
GScribo/Preferences/preferencesdialog.h | 42 --
GScribo/Preferences/preferencesdialog.ui | 121 ---
GScribo/Preferences/preprocessingoptions.cpp | 45 --
GScribo/Preferences/preprocessingoptions.h | 32 -
GScribo/Preferences/preprocessingoptions.ui | 76 --
GScribo/Preferences/segmentationoptions.cpp | 33 -
GScribo/Preferences/segmentationoptions.h | 31 -
GScribo/Preferences/segmentationoptions.ui | 52 --
GScribo/Processing/preprocess.cpp | 11 -
GScribo/Processing/preprocess.h | 26 -
GScribo/Processing/process.cpp | 21 -
GScribo/Processing/process.h | 29 -
GScribo/Processing/progressdialog.cpp | 16 -
GScribo/Processing/progressdialog.h | 22 -
GScribo/Processing/runner.cpp | 183 -----
GScribo/Processing/runner.h | 58 --
GScribo/Rendering/abstractregionitem.h | 13 -
GScribo/Rendering/backgroundtexture.h | 12 -
GScribo/Rendering/graphicsview.cpp | 150 ----
GScribo/Rendering/graphicsview.h | 43 --
GScribo/Rendering/regionitem.cpp | 59 --
GScribo/Rendering/regionitem.h | 80 --
GScribo/Rendering/rootgraphicsitem.h | 30 -
GScribo/Rendering/scene.cpp | 273 -------
GScribo/Rendering/scene.h | 118 ---
GScribo/Rendering/selection.cpp | 36 -
GScribo/Rendering/selection.h | 20 -
GScribo/TODO | 100 ---
GScribo/XmlWidget/attributesmodel.cpp | 69 --
GScribo/XmlWidget/attributesmodel.h | 48 --
GScribo/XmlWidget/selectionproxy.h | 47 --
GScribo/XmlWidget/xmlattributes.cpp | 23 -
GScribo/XmlWidget/xmlattributes.h | 33 -
GScribo/XmlWidget/xmldelegate.h | 30 -
GScribo/XmlWidget/xmlitem.cpp | 43 --
GScribo/XmlWidget/xmlitem.h | 90 ---
GScribo/XmlWidget/xmlmodel.cpp | 87 ---
GScribo/XmlWidget/xmlmodel.h | 44 --
GScribo/XmlWidget/xmlview.cpp | 88 ---
GScribo/XmlWidget/xmlview.h | 79 --
GScribo/XmlWidget/xmlwidget.cpp | 34 -
GScribo/XmlWidget/xmlwidget.h | 54 --
GScribo/aboutdialog.h | 25 -
GScribo/aboutdialog.ui | 136 ----
GScribo/configs.h | 134 ----
GScribo/dir.h | 7 -
GScribo/dockwidget.h | 22 -
GScribo/main.cpp | 23 -
GScribo/mainwindow.cpp | 415 -----------
GScribo/mainwindow.h | 120 ---
GScribo/mainwindow.ui | 35 -
GScribo/region.h | 56 --
GScribo/regionwidget.cpp | 70 --
GScribo/regionwidget.h | 40 -
GScribo/variantpointer.h | 19 -
GScribo/xml.cpp | 206 ------
GScribo/xml.h | 93 ---
milena/tests/unit_test/unit-tests.mk | 4 +
scribo/demo/viewer/Makefile.am | 190 +++--
scribo/demo/viewer/browser_widget.cc | 138 ----
scribo/demo/viewer/browser_widget.hh | 50 --
scribo/demo/viewer/common.hh | 73 --
scribo/demo/viewer/config.cc | 182 -----
scribo/demo/viewer/config.hh | 78 --
scribo/demo/viewer/defs.hh | 31 -
scribo/demo/viewer/demodir.hh.in | 8 +-
scribo/demo/viewer/general_options.cc | 60 --
scribo/demo/viewer/general_options.hh | 40 -
scribo/demo/viewer/general_options.ui | 100 ---
scribo/demo/viewer/help_dialog.cc | 23 -
scribo/demo/viewer/help_dialog.hh | 31 -
scribo/demo/viewer/help_dialog.ui | 138 ----
scribo/demo/viewer/icons/olena_smaller.jpg | Bin 8028 -> 0 bytes
scribo/demo/viewer/image_region.cc | 138 ----
scribo/demo/viewer/image_region.hh | 79 --
scribo/demo/viewer/image_region.hxx | 106 ---
scribo/demo/viewer/image_scene.cc | 104 ---
scribo/demo/viewer/image_scene.hh | 45 --
scribo/demo/viewer/image_view.cc | 80 --
scribo/demo/viewer/image_view.hh | 42 --
scribo/demo/viewer/image_widget.cc | 61 --
scribo/demo/viewer/image_widget.hh | 47 --
scribo/demo/viewer/key_widget.cc | 162 ----
scribo/demo/viewer/key_widget.hh | 55 --
scribo/demo/viewer/main.cc | 44 +-
scribo/demo/viewer/ocr_options.cc | 74 --
scribo/demo/viewer/ocr_options.hh | 40 -
scribo/demo/viewer/ocr_options.ui | 62 --
scribo/demo/viewer/option_widget.cc | 30 -
scribo/demo/viewer/option_widget.hh | 30 -
scribo/demo/viewer/preferences_dialog.cc | 129 ----
scribo/demo/viewer/preferences_dialog.hh | 45 --
scribo/demo/viewer/preferences_dialog.ui | 121 ---
scribo/demo/viewer/preprocess.cc | 10 +-
scribo/demo/viewer/preprocess.hh | 33 +-
scribo/demo/viewer/preprocessing_options.cc | 66 --
scribo/demo/viewer/preprocessing_options.hh | 38 -
scribo/demo/viewer/preprocessing_options.ui | 76 --
scribo/demo/viewer/process.cc | 21 +-
scribo/demo/viewer/process.hh | 45 +-
scribo/demo/viewer/runner.cc | 304 ++++-----
scribo/demo/viewer/runner.hh | 95 ++--
scribo/demo/viewer/segmentation_options.cc | 56 --
scribo/demo/viewer/segmentation_options.hh | 37 -
scribo/demo/viewer/segmentation_options.ui | 52 --
scribo/demo/viewer/step_widget.cc | 178 -----
scribo/demo/viewer/step_widget.hh | 56 --
scribo/demo/viewer/viewer.cc | 1021 --------------------------
scribo/demo/viewer/viewer.hh | 132 ----
scribo/demo/viewer/viewer.hxx | 38 -
scribo/demo/viewer/viewer.qrc | 5 -
scribo/demo/viewer/xml_widget.cc | 164 ----
scribo/demo/viewer/xml_widget.hh | 48 --
131 files changed, 365 insertions(+), 10103 deletions(-)
delete mode 100644 GScribo/BUGS
delete mode 100644 GScribo/GScribo.pro
delete mode 100644 GScribo/GScribo.pro.user
delete mode 100644 GScribo/GScribo.pro.user.1.3
delete mode 100644 GScribo/PagesWidget/pagesdelegate.cpp
delete mode 100644 GScribo/PagesWidget/pagesdelegate.h
delete mode 100644 GScribo/PagesWidget/pagesmodel.cpp
delete mode 100644 GScribo/PagesWidget/pagesmodel.h
delete mode 100644 GScribo/PagesWidget/pageswidget.cpp
delete mode 100644 GScribo/PagesWidget/pageswidget.h
delete mode 100644 GScribo/Preferences/generaloptions.cpp
delete mode 100644 GScribo/Preferences/generaloptions.h
delete mode 100644 GScribo/Preferences/generaloptions.ui
delete mode 100644 GScribo/Preferences/ocroptions.cpp
delete mode 100644 GScribo/Preferences/ocroptions.h
delete mode 100644 GScribo/Preferences/ocroptions.ui
delete mode 100644 GScribo/Preferences/optionwidget.h
delete mode 100644 GScribo/Preferences/preferencesdialog.cpp
delete mode 100644 GScribo/Preferences/preferencesdialog.h
delete mode 100644 GScribo/Preferences/preferencesdialog.ui
delete mode 100644 GScribo/Preferences/preprocessingoptions.cpp
delete mode 100644 GScribo/Preferences/preprocessingoptions.h
delete mode 100644 GScribo/Preferences/preprocessingoptions.ui
delete mode 100644 GScribo/Preferences/segmentationoptions.cpp
delete mode 100644 GScribo/Preferences/segmentationoptions.h
delete mode 100644 GScribo/Preferences/segmentationoptions.ui
delete mode 100644 GScribo/Processing/preprocess.cpp
delete mode 100644 GScribo/Processing/preprocess.h
delete mode 100644 GScribo/Processing/process.cpp
delete mode 100644 GScribo/Processing/process.h
delete mode 100644 GScribo/Processing/progressdialog.cpp
delete mode 100644 GScribo/Processing/progressdialog.h
delete mode 100644 GScribo/Processing/runner.cpp
delete mode 100644 GScribo/Processing/runner.h
delete mode 100644 GScribo/Rendering/abstractregionitem.h
delete mode 100644 GScribo/Rendering/backgroundtexture.h
delete mode 100644 GScribo/Rendering/graphicsview.cpp
delete mode 100644 GScribo/Rendering/graphicsview.h
delete mode 100644 GScribo/Rendering/regionitem.cpp
delete mode 100644 GScribo/Rendering/regionitem.h
delete mode 100644 GScribo/Rendering/rootgraphicsitem.h
delete mode 100644 GScribo/Rendering/scene.cpp
delete mode 100644 GScribo/Rendering/scene.h
delete mode 100644 GScribo/Rendering/selection.cpp
delete mode 100644 GScribo/Rendering/selection.h
delete mode 100644 GScribo/TODO
delete mode 100644 GScribo/XmlWidget/attributesmodel.cpp
delete mode 100644 GScribo/XmlWidget/attributesmodel.h
delete mode 100644 GScribo/XmlWidget/selectionproxy.h
delete mode 100644 GScribo/XmlWidget/xmlattributes.cpp
delete mode 100644 GScribo/XmlWidget/xmlattributes.h
delete mode 100644 GScribo/XmlWidget/xmldelegate.h
delete mode 100644 GScribo/XmlWidget/xmlitem.cpp
delete mode 100644 GScribo/XmlWidget/xmlitem.h
delete mode 100644 GScribo/XmlWidget/xmlmodel.cpp
delete mode 100644 GScribo/XmlWidget/xmlmodel.h
delete mode 100644 GScribo/XmlWidget/xmlview.cpp
delete mode 100644 GScribo/XmlWidget/xmlview.h
delete mode 100644 GScribo/XmlWidget/xmlwidget.cpp
delete mode 100644 GScribo/XmlWidget/xmlwidget.h
delete mode 100644 GScribo/aboutdialog.h
delete mode 100644 GScribo/aboutdialog.ui
delete mode 100644 GScribo/configs.h
delete mode 100644 GScribo/dir.h
delete mode 100644 GScribo/dockwidget.h
delete mode 100644 GScribo/main.cpp
delete mode 100644 GScribo/mainwindow.cpp
delete mode 100644 GScribo/mainwindow.h
delete mode 100644 GScribo/mainwindow.ui
delete mode 100644 GScribo/region.h
delete mode 100644 GScribo/regionwidget.cpp
delete mode 100644 GScribo/regionwidget.h
delete mode 100644 GScribo/variantpointer.h
delete mode 100644 GScribo/xml.cpp
delete mode 100644 GScribo/xml.h
delete mode 100644 scribo/demo/viewer/browser_widget.cc
delete mode 100644 scribo/demo/viewer/browser_widget.hh
delete mode 100644 scribo/demo/viewer/common.hh
delete mode 100644 scribo/demo/viewer/config.cc
delete mode 100644 scribo/demo/viewer/config.hh
delete mode 100644 scribo/demo/viewer/defs.hh
delete mode 100644 scribo/demo/viewer/general_options.cc
delete mode 100644 scribo/demo/viewer/general_options.hh
delete mode 100644 scribo/demo/viewer/general_options.ui
delete mode 100644 scribo/demo/viewer/help_dialog.cc
delete mode 100644 scribo/demo/viewer/help_dialog.hh
delete mode 100644 scribo/demo/viewer/help_dialog.ui
delete mode 100644 scribo/demo/viewer/icons/olena_smaller.jpg
delete mode 100644 scribo/demo/viewer/image_region.cc
delete mode 100644 scribo/demo/viewer/image_region.hh
delete mode 100644 scribo/demo/viewer/image_region.hxx
delete mode 100644 scribo/demo/viewer/image_scene.cc
delete mode 100644 scribo/demo/viewer/image_scene.hh
delete mode 100644 scribo/demo/viewer/image_view.cc
delete mode 100644 scribo/demo/viewer/image_view.hh
delete mode 100644 scribo/demo/viewer/image_widget.cc
delete mode 100644 scribo/demo/viewer/image_widget.hh
delete mode 100644 scribo/demo/viewer/key_widget.cc
delete mode 100644 scribo/demo/viewer/key_widget.hh
delete mode 100644 scribo/demo/viewer/ocr_options.cc
delete mode 100644 scribo/demo/viewer/ocr_options.hh
delete mode 100644 scribo/demo/viewer/ocr_options.ui
delete mode 100644 scribo/demo/viewer/option_widget.cc
delete mode 100644 scribo/demo/viewer/option_widget.hh
delete mode 100644 scribo/demo/viewer/preferences_dialog.cc
delete mode 100644 scribo/demo/viewer/preferences_dialog.hh
delete mode 100644 scribo/demo/viewer/preferences_dialog.ui
delete mode 100644 scribo/demo/viewer/preprocessing_options.cc
delete mode 100644 scribo/demo/viewer/preprocessing_options.hh
delete mode 100644 scribo/demo/viewer/preprocessing_options.ui
delete mode 100644 scribo/demo/viewer/segmentation_options.cc
delete mode 100644 scribo/demo/viewer/segmentation_options.hh
delete mode 100644 scribo/demo/viewer/segmentation_options.ui
delete mode 100644 scribo/demo/viewer/step_widget.cc
delete mode 100644 scribo/demo/viewer/step_widget.hh
delete mode 100644 scribo/demo/viewer/viewer.cc
delete mode 100644 scribo/demo/viewer/viewer.hh
delete mode 100644 scribo/demo/viewer/viewer.hxx
delete mode 100644 scribo/demo/viewer/viewer.qrc
delete mode 100644 scribo/demo/viewer/xml_widget.cc
delete mode 100644 scribo/demo/viewer/xml_widget.hh
diff --git a/GScribo/BUGS b/GScribo/BUGS
deleted file mode 100644
index 48af52e..0000000
--- a/GScribo/BUGS
+++ /dev/null
@@ -1 +0,0 @@
-- In release compilation, when the first text region is selected in the xml widget, the program crashs.
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
deleted file mode 100644
index 1495495..0000000
--- a/GScribo/GScribo.pro
+++ /dev/null
@@ -1,83 +0,0 @@
-# -------------------------------------------------
-# Project created by QtCreator 2013-01-21T09:20:54
-# -------------------------------------------------
-QT += xml
-INCLUDEPATH += /lrde/home/stage/froger_a/olena/scribo/ \
- /lrde/home/stage/froger_a/olena/milena/ \
- /lrde/home/stage/froger_a/olena/_build/scribo/demo/
-QMAKE_CXXFLAGS += -DNDEBUG \
- -DMLN_WO_GLOBAL_VARS
-LIBS += -I/usr/include/graphicsImage \
- -lGraphicsMagick++ \
- -ltesseract_full \
- -ltiff
-TARGET = GScribo
-TEMPLATE = app
-SOURCES += regionwidget.cpp \
- mainwindow.cpp \
- main.cpp \
- xml.cpp \
- Rendering/scene.cpp \
- Rendering/selection.cpp \
- Rendering/regionitem.cpp \
- Rendering/graphicsview.cpp \
- PagesWidget/pageswidget.cpp \
- PagesWidget/pagesmodel.cpp \
- PagesWidget/pagesdelegate.cpp \
- Preferences/segmentationoptions.cpp \
- Preferences/preprocessingoptions.cpp \
- Preferences/ocroptions.cpp \
- Preferences/generaloptions.cpp \
- Preferences/preferencesdialog.cpp \
- Processing/progressdialog.cpp \
- Processing/preprocess.cpp \
- Processing/process.cpp \
- Processing/runner.cpp \
- XmlWidget/xmlwidget.cpp \
- XmlWidget/xmlmodel.cpp \
- XmlWidget/xmlitem.cpp \
- XmlWidget/xmlattributes.cpp \
- XmlWidget/attributesmodel.cpp \
- XmlWidget/xmlview.cpp
-HEADERS += mainwindow.h \
- variantpointer.h \
- regionwidget.h \
- aboutdialog.h \
- configs.h \
- region.h \
- dir.h \
- xml.h \
- Rendering/scene.h \
- Rendering/selection.h \
- Rendering/regionitem.h \
- Rendering/graphicsview.h \
- PagesWidget/pageswidget.h \
- PagesWidget/pagesmodel.h \
- Processing/preprocess.h \
- Processing/process.h \
- Processing/runner.h \
- Processing/progressdialog.h \
- Preferences/segmentationoptions.h \
- Preferences/preprocessingoptions.h \
- Preferences/ocroptions.h \
- Preferences/generaloptions.h \
- Preferences/optionwidget.h \
- Preferences/preferencesdialog.h \
- XmlWidget/xmlwidget.h \
- XmlWidget/xmlmodel.h \
- XmlWidget/xmlitem.h \
- XmlWidget/xmlattributes.h \
- XmlWidget/selectionproxy.h \
- XmlWidget/xmldelegate.h \
- XmlWidget/attributesmodel.h \
- PagesWidget/pagesdelegate.h \
- Rendering/rootgraphicsitem.h \
- XmlWidget/xmlview.h \
- dockwidget.h
-FORMS += mainwindow.ui \
- aboutdialog.ui \
- Preferences/preferencesdialog.ui \
- Preferences/ocroptions.ui \
- Preferences/segmentationoptions.ui \
- Preferences/generaloptions.ui \
- Preferences/preprocessingoptions.ui
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
deleted file mode 100644
index d765506..0000000
--- a/GScribo/GScribo.pro.user
+++ /dev/null
@@ -1,405 +0,0 @@
-<!DOCTYPE QtCreatorProject>
-<qtcreator>
- <data>
- <variable>RunConfiguration0-BaseEnvironmentBase</variable>
- <value type="int">2</value>
- </data>
- <data>
- <variable>RunConfiguration0-CommandLineArguments</variable>
- <valuelist type="QVariantList"/>
- </data>
- <data>
- <variable>RunConfiguration0-ProFile</variable>
- <value type="QString">GScribo.pro</value>
- </data>
- <data>
- <variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">GScribo</value>
- </data>
- <data>
- <variable>RunConfiguration0-UseDyldImageSuffix</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UseTerminal</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserEnvironmentChanges</variable>
- <valuelist type="QVariantList"/>
- </data>
- <data>
- <variable>RunConfiguration0-UserSetName</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserWorkingDirectory</variable>
- <value type="QString"></value>
- </data>
- <data>
- <variable>RunConfiguration0-type</variable>
- <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
- </data>
- <data>
- <variable>activeRunConfiguration</variable>
- <value type="int">0</value>
- </data>
- <data>
- <variable>activebuildconfiguration</variable>
- <value type="QString">Release</value>
- </data>
- <data>
- <variable>buildConfiguration-Debug</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <value key="QtVersionId" type="int">0</value>
- <value key="ToolChain" type="int">0</value>
- <value key="addQDumper" type=""></value>
- <value key="buildConfiguration" type="int">2</value>
- </valuemap>
- </data>
- <data>
- <variable>buildConfiguration-Release</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <value key="QtVersionId" type="int">0</value>
- <value key="ToolChain" type="int">0</value>
- <value key="addQDumper" type=""></value>
- <value key="buildConfiguration" type="int">0</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Debug-buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=23527</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=12582936</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo/GScribo.pro</value>
- <value type="QString">-spec</value>
- <value type="QString">linux-g++</value>
- <value type="QString">-r</value>
- <value type="QString">CONFIG+=debug</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
- <value key="abstractProcess.enabled" type="bool">false</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Debug-buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=23527</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=12582936</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Debug-cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=23527</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=12582936</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">clean</value>
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- <value key="cleanConfig" type="bool">true</value>
- <valuelist key="makeargs" type="QVariantList">
- <value type="QString">clean</value>
- </valuelist>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LANGUAGE=</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=23527</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo/GScribo.pro</value>
- <value type="QString">-spec</value>
- <value type="QString">linux-g++</value>
- <value type="QString">-r</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
- <value key="abstractProcess.enabled" type="bool">false</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LANGUAGE=</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=23527</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LANGUAGE=</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=23527</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">clean</value>
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- <value key="cleanConfig" type="bool">true</value>
- <valuelist key="makeargs" type="QVariantList">
- <value type="QString">clean</value>
- </valuelist>
- </valuemap>
- </data>
- <data>
- <variable>buildconfigurations</variable>
- <valuelist type="QVariantList">
- <value type="QString">Debug</value>
- <value type="QString">Release</value>
- </valuelist>
- </data>
- <data>
- <variable>buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- <value key="mkspec" type="QString"></value>
- </valuemap>
- </data>
- <data>
- <variable>buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- </valuemap>
- </data>
- <data>
- <variable>buildsteps</variable>
- <valuelist type="QVariantList">
- <value type="QString">trolltech.qt4projectmanager.qmake</value>
- <value type="QString">trolltech.qt4projectmanager.make</value>
- </valuelist>
- </data>
- <data>
- <variable>cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- <value key="clean" type="bool">true</value>
- </valuemap>
- </data>
- <data>
- <variable>cleansteps</variable>
- <valuelist type="QVariantList">
- <value type="QString">trolltech.qt4projectmanager.make</value>
- </valuelist>
- </data>
- <data>
- <variable>defaultFileEncoding</variable>
- <value type="QByteArray">System</value>
- </data>
- <data>
- <variable>project</variable>
- <valuemap type="QVariantMap"/>
- </data>
-</qtcreator>
diff --git a/GScribo/GScribo.pro.user.1.3 b/GScribo/GScribo.pro.user.1.3
deleted file mode 100644
index dce13f4..0000000
--- a/GScribo/GScribo.pro.user.1.3
+++ /dev/null
@@ -1,283 +0,0 @@
-<!DOCTYPE QtCreatorProject>
-<qtcreator>
- <data>
- <variable>RunConfiguration0-BaseEnvironmentBase</variable>
- <value type="int">2</value>
- </data>
- <data>
- <variable>RunConfiguration0-CommandLineArguments</variable>
- <valuelist type="QVariantList"/>
- </data>
- <data>
- <variable>RunConfiguration0-ProFile</variable>
- <value type="QString">GScribo.pro</value>
- </data>
- <data>
- <variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">GScribo</value>
- </data>
- <data>
- <variable>RunConfiguration0-UseDyldImageSuffix</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UseTerminal</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserEnvironmentChanges</variable>
- <valuelist type="QVariantList"/>
- </data>
- <data>
- <variable>RunConfiguration0-UserSetName</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserWorkingDirectory</variable>
- <value type="QString"></value>
- </data>
- <data>
- <variable>RunConfiguration0-type</variable>
- <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
- </data>
- <data>
- <variable>activeRunConfiguration</variable>
- <value type="int">0</value>
- </data>
- <data>
- <variable>activebuildconfiguration</variable>
- <value type="QString">Debug</value>
- </data>
- <data>
- <variable>buildConfiguration-Debug</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <value key="QtVersionId" type="int">0</value>
- <value key="ToolChain" type="int">0</value>
- <value key="addQDumper" type=""></value>
- <value key="buildConfiguration" type="int">2</value>
- </valuemap>
- </data>
- <data>
- <variable>buildConfiguration-Release</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <value key="QtVersionId" type="int">0</value>
- <value key="addQDumper" type=""></value>
- <value key="buildConfiguration" type="int">0</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Debug-buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-e8Ai0asIF8,guid=40cd8e30a2205708b63bff1e00011544</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LANGUAGE=</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=8827</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-zNmFSg8766/agent.8766</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm1MPCSW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360845394.397476-591106291</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo/GScribo.pro</value>
- <value type="QString">-spec</value>
- <value type="QString">linux-g++</value>
- <value type="QString">-r</value>
- <value type="QString">CONFIG+=debug</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
- <value key="abstractProcess.enabled" type="bool">false</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Debug-buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-e8Ai0asIF8,guid=40cd8e30a2205708b63bff1e00011544</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LANGUAGE=</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=8827</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-zNmFSg8766/agent.8766</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm1MPCSW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360845394.397476-591106291</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Debug-cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-e8Ai0asIF8,guid=40cd8e30a2205708b63bff1e00011544</value>
- <value type="QString">DESKTOP_SESSION=fluxbox</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">GDMSESSION=fluxbox</value>
- <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
- <value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value type="QString">GTK_MODULES=canberra-gtk-module</value>
- <value type="QString">HOME=/lrde/home/stage/froger_a</value>
- <value type="QString">LANG=fr_FR.UTF-8</value>
- <value type="QString">LANGUAGE=</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
- <value type="QString">LOGNAME=froger_a</value>
- <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
- <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
- <value type="QString">QTDIR=/usr/share/qt4</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=8827</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-zNmFSg8766/agent.8766</value>
- <value type="QString">TERM=xterm</value>
- <value type="QString">USER=froger_a</value>
- <value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm1MPCSW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360845394.397476-591106291</value>
- <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
- <value type="QString">XTERM_SHELL=/bin/bash</value>
- <value type="QString">XTERM_VERSION=XTerm(261)</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">clean</value>
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
- <value key="cleanConfig" type="bool">true</value>
- <valuelist key="makeargs" type="QVariantList">
- <value type="QString">clean</value>
- </valuelist>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfigurations</variable>
- <valuelist type="QVariantList">
- <value type="QString">Debug</value>
- <value type="QString">Release</value>
- </valuelist>
- </data>
- <data>
- <variable>buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- <value key="mkspec" type="QString"></value>
- </valuemap>
- </data>
- <data>
- <variable>buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- </valuemap>
- </data>
- <data>
- <variable>buildsteps</variable>
- <valuelist type="QVariantList">
- <value type="QString">trolltech.qt4projectmanager.qmake</value>
- <value type="QString">trolltech.qt4projectmanager.make</value>
- </valuelist>
- </data>
- <data>
- <variable>cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- <value key="clean" type="bool">true</value>
- </valuemap>
- </data>
- <data>
- <variable>cleansteps</variable>
- <valuelist type="QVariantList">
- <value type="QString">trolltech.qt4projectmanager.make</value>
- </valuelist>
- </data>
- <data>
- <variable>defaultFileEncoding</variable>
- <value type="QByteArray">System</value>
- </data>
- <data>
- <variable>project</variable>
- <valuemap type="QVariantMap"/>
- </data>
-</qtcreator>
diff --git a/GScribo/PagesWidget/pagesdelegate.cpp b/GScribo/PagesWidget/pagesdelegate.cpp
deleted file mode 100644
index 19a34c2..0000000
--- a/GScribo/PagesWidget/pagesdelegate.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "pagesdelegate.h"
-
-PagesDelegate::PagesDelegate(QObject *parent) :
- QStyledItemDelegate(parent)
-{
- pen_.setColor(QColor::fromRgb(255, 69, 0, 255));
- pen_.setWidth(2);
-}
-
-void PagesDelegate::paint(QPainter *painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
-{
- QStyledItemDelegate::paint(painter, option, index);
-
- if(index.row() == index.data(Qt::UserRole+1).toInt())
- {
- painter->setPen(pen_);
- painter->drawRect(option.rect);
- painter->fillRect(option.rect, QColor::fromRgb(255, 69, 0, 60));
- }
-}
diff --git a/GScribo/PagesWidget/pagesdelegate.h b/GScribo/PagesWidget/pagesdelegate.h
deleted file mode 100644
index ff422ca..0000000
--- a/GScribo/PagesWidget/pagesdelegate.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef PAGESDELEGATE_H
-#define PAGESDELEGATE_H
-
-#include <QStyledItemDelegate>
-#include <QPainter>
-
-class PagesDelegate :
- public QStyledItemDelegate
-{
- public:
- explicit PagesDelegate(QObject *parent = 0);
- void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
-
- private:
- QPen pen_;
-};
-
-#endif // PAGESDELEGATE_H
diff --git a/GScribo/PagesWidget/pagesmodel.cpp b/GScribo/PagesWidget/pagesmodel.cpp
deleted file mode 100644
index faccb74..0000000
--- a/GScribo/PagesWidget/pagesmodel.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#include "pagesmodel.h"
-
-PagesModel::PagesModel(QObject *parent):
- QAbstractListModel(parent)
-{
- currentRow_ = 0;
-}
-
-QVariant PagesModel::data(const QModelIndex& index, int role) const
-{
- if(!index.isValid())
- return QVariant();
-
- if(role == Qt::DecorationRole)
- return pixmaps_[index.row()];
-
- if(role == Qt::UserRole)
- return filenames_[index.row()];
-
- if(role == Qt::UserRole+1)
- return currentRow_;
-
- return QVariant();
-}
-
-void PagesModel::addPicture(const QString& filename, const QPixmap& pixmap)
-{
- beginInsertRows(QModelIndex(), 0, 0);
-
- pixmaps_.prepend(pixmap.scaled(QSize(200, 200), Qt::KeepAspectRatio, Qt::SmoothTransformation));
- filenames_.prepend(filename);
-
- endInsertRows();
-}
-
-void PagesModel::removePixmap(const QModelIndex &parent)
-{
- int row = parent.row();
-
- beginRemoveRows(parent, row, row);
-
- pixmaps_.removeAt(row);
- filenames_.removeAt(row);
-
- endRemoveRows();
-}
-
-void PagesModel::setCurrentRow(int currentRow)
-{
- beginResetModel();
-
- currentRow_ = currentRow;
-
- endResetModel();
-}
diff --git a/GScribo/PagesWidget/pagesmodel.h b/GScribo/PagesWidget/pagesmodel.h
deleted file mode 100644
index 4c18842..0000000
--- a/GScribo/PagesWidget/pagesmodel.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef PAGESMODEL_H
-#define PAGESMODEL_H
-
-#include <QAbstractListModel>
-#include <QIcon>
-#include <QList>
-
-class PagesModel:
- public QAbstractListModel
-{
- Q_OBJECT
-
- public:
- explicit PagesModel(QObject *parent = 0);
-
- inline QStringList filenames() const;
- inline int rowCount(const QModelIndex& parent = QModelIndex()) const;
-
- inline int currentRow() const;
- void setCurrentRow(int currentRow);
-
- QVariant data(const QModelIndex& index, int role = Qt::DecorationRole) const;
- void addPicture(const QString& filename, const QPixmap& pixmap);
-
- private:
- QStringList filenames_;
- QList<QPixmap> pixmaps_;
- int currentRow_;
-
- public slots:
- void removePixmap(const QModelIndex& parent);
-};
-
-inline QStringList PagesModel::filenames() const
-{ return filenames_; }
-
-inline int PagesModel::rowCount(const QModelIndex&) const
-{ return filenames_.count(); }
-
-inline int PagesModel::currentRow() const
-{ return currentRow_; }
-
-#endif // PAGESMODEL_H
diff --git a/GScribo/PagesWidget/pageswidget.cpp b/GScribo/PagesWidget/pageswidget.cpp
deleted file mode 100644
index 400046a..0000000
--- a/GScribo/PagesWidget/pageswidget.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "pageswidget.h"
-
-PagesWidget::PagesWidget(QWidget *parent):
- QListView(parent)
-{
- setUniformItemSizes(true);
- setSelectionMode(QAbstractItemView::ExtendedSelection);
- setViewMode(QListView::IconMode);
- setIconSize(QSize(200, 200));
- setMovement(QListView::Static);
- setResizeMode(QListView::Adjust);
- setSpacing(10);
-
- setModel(&model_);
- setItemDelegate(new PagesDelegate());
-
- QShortcut *remove = new QShortcut(Qt::Key_Delete, this);
- connect(remove, SIGNAL(activated()), this, SLOT(removeSelection()));
- connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(getPicture(QModelIndex)));
-}
-
-void PagesWidget::removeSelection()
-{
- QModelIndexList indexes = selectionModel()->selectedIndexes();
- if(hasFocus() && indexes.count() > 0)
- {
- // Sort the list because after the first removal, the second row index may not be the good one.
- qSort(indexes.begin(), indexes.end());
-
- // From the highest row to the smallest to be sure to remove the good index.
- for(int i = indexes.count()-1; i > -1; i--)
- model_.removePixmap(indexes[i]);
-
- // Draw new image on the scene.
- getPicture(model_.index(indexes[0].row()));
- clearSelection();
-
- model_.setCurrentRow(indexes[0].row());
- scrollTo(indexes[0]);
- }
-}
-
-void PagesWidget::getPicture(const QModelIndex& index)
-{
- QString filename = index.data(Qt::UserRole).toString();
- model_.setCurrentRow(index.row());
-
- emit imageSelectionned(filename);
-}
diff --git a/GScribo/PagesWidget/pageswidget.h b/GScribo/PagesWidget/pageswidget.h
deleted file mode 100644
index eb6488c..0000000
--- a/GScribo/PagesWidget/pageswidget.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef PAGESWIDGET_H
-#define PAGESWIDGET_H
-
-#include <QListView>
-#include <QShortcut>
-
-#include "pagesdelegate.h"
-#include "pagesmodel.h"
-
-class PagesWidget:
- public QListView
-{
- Q_OBJECT
-
- public:
- explicit PagesWidget(QWidget *parent = 0);
-
- inline QStringList filenames() const;
- inline int currentRow() const;
- inline void setCurrentRow(int currentRow);
-
- inline void addPicture(const QString& filename, const QPixmap& pixmap);
-
- protected:
- inline void focusOutEvent(QFocusEvent *event);
-
- private:
- PagesModel model_;
-
- public slots:
- void removeSelection();
-
- private slots:
- void getPicture(const QModelIndex& index);
-
- signals:
- void imageSelectionned(const QString& filename);
-};
-
-inline QStringList PagesWidget::filenames() const
-{ return model_.filenames(); }
-
-inline int PagesWidget::currentRow() const
-{ return model_.currentRow(); }
-
-inline void PagesWidget::setCurrentRow(int currentRow)
-{ model_.setCurrentRow(currentRow); }
-
-inline void PagesWidget::addPicture(const QString& filename, const QPixmap& pixmap)
-{ model_.addPicture(filename, pixmap); }
-
-inline void PagesWidget::focusOutEvent(QFocusEvent *event)
-{ QListView::focusOutEvent(event); clearSelection(); }
-
-#endif // PAGESWIDGET_H
diff --git a/GScribo/Preferences/generaloptions.cpp b/GScribo/Preferences/generaloptions.cpp
deleted file mode 100644
index 620a8fd..0000000
--- a/GScribo/Preferences/generaloptions.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "generaloptions.h"
-#include "ui_generaloptions.h"
-
-GeneralOptions::GeneralOptions(QWidget *parent) :
- OptionWidget(parent),
- ui(new Ui::GeneralOptions)
-{
- ui->setupUi(this);
- loadConfig();
-}
-
-GeneralOptions::~GeneralOptions()
-{
- delete ui;
-}
-
-void GeneralOptions::loadConfig()
-{
- Configs *const conf = Configs::getInstance();
-
- ui->saveXml->setChecked(conf->generalSaveXmlEnabled());
- ui->sameDir->setChecked(conf->generalSaveXmlSameDir());
- ui->customDir->setChecked(conf->generalSaveXmlCustomDir());
- ui->customDirValue->setText(conf->generalSaveXmlCustomDirPath());
-}
-
-
-void GeneralOptions::saveConfig()
-{
- Configs *const conf = Configs::getInstance();
-
- conf->setGeneralSaveXmlEnabled(ui->saveXml->isChecked());
- conf->setGeneralSaveXmlSameDir(ui->sameDir->isChecked());
- conf->setGeneralSaveXmlCustomDir(ui->customDir->isChecked());
- conf->setGeneralSaveXmlCustomDirPath(ui->customDirValue->text());
-}
-
-void GeneralOptions::onCustomDirBrowseBtnClicked()
-{
- QString dir = QFileDialog::getExistingDirectory(0, "Choose a directory");
-
- if (!dir.isEmpty())
- ui->customDirValue->setText(dir);
-}
diff --git a/GScribo/Preferences/generaloptions.h b/GScribo/Preferences/generaloptions.h
deleted file mode 100644
index 0c07129..0000000
--- a/GScribo/Preferences/generaloptions.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef GENERALOPTIONS_H
-#define GENERALOPTIONS_H
-
-#include <QFileDialog>
-
-#include "optionwidget.h"
-#include "configs.h"
-
-namespace Ui
-{
- class GeneralOptions;
-}
-
-class GeneralOptions :
- public OptionWidget
-{
- Q_OBJECT
-
- public:
- explicit GeneralOptions(QWidget *parent = 0);
- ~GeneralOptions();
-
- virtual void loadConfig();
- virtual void saveConfig();
-
- private:
- Ui::GeneralOptions *ui;
-
- private slots:
- void onCustomDirBrowseBtnClicked();
-
-};
-
-#endif // GENERAL_OPTIONS_H
diff --git a/GScribo/Preferences/generaloptions.ui b/GScribo/Preferences/generaloptions.ui
deleted file mode 100644
index 5839c27..0000000
--- a/GScribo/Preferences/generaloptions.ui
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>GeneralOptions</class>
- <widget class="QWidget" name="GeneralOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QGroupBox" name="saveXml">
- <property name="title">
- <string>Save segmentation results</string>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QRadioButton" name="sameDir">
- <property name="text">
- <string>In the same directory as the input image</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QRadioButton" name="customDir">
- <property name="text">
- <string>In the following directory</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Maximum</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QLineEdit" name="customDirValue"/>
- </item>
- <item>
- <widget class="QPushButton" name="customDirBrowseBtn">
- <property name="text">
- <string>Browse</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/GScribo/Preferences/ocroptions.cpp b/GScribo/Preferences/ocroptions.cpp
deleted file mode 100644
index fff05b2..0000000
--- a/GScribo/Preferences/ocroptions.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#include "ocroptions.h"
-#include "ui_ocroptions.h"
-
-static const char *language[][2] =
-{
- { "English", "eng" },
- { "French", "fra" },
- { 0, 0 }
-};
-
-OcrOptions::OcrOptions(QWidget *parent) :
- OptionWidget(parent),
- ui(new Ui::OcrOptions)
-{
- ui->setupUi(this);
-
- for (unsigned i = 0; language[i][0]; ++i)
- ui->ocr_language->insertItem(i, language[i][0]);
-
- loadConfig();
-}
-
-OcrOptions::~OcrOptions()
-{
- delete ui;
-}
-
-int OcrOptions::findIndex(const QString& lang)
-{
- for (unsigned i = 0; language[i][0]; ++i)
- if (lang == language[i][1])
- return i;
-
- return 0;
-}
-
-
-void OcrOptions::loadConfig()
-{
- Configs *const conf = Configs::getInstance();
-
- ui->enable_ocr->setChecked(conf->ocrEnabled());
- ui->ocr_language->setCurrentIndex(findIndex(conf->ocrLanguage()));
-}
-
-
-void OcrOptions::saveConfig()
-{
- Configs *const conf = Configs::getInstance();
-
- conf->setOcrEnabled(ui->enable_ocr->isChecked());
- conf->setOcrLanguage(language[ui->ocr_language->currentIndex()][1]);
-}
diff --git a/GScribo/Preferences/ocroptions.h b/GScribo/Preferences/ocroptions.h
deleted file mode 100644
index 9ba8d53..0000000
--- a/GScribo/Preferences/ocroptions.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef OCR_OPTIONS_H
-#define OCR_OPTIONS_H
-
-//#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-#include "optionwidget.h"
-#include "configs.h"
-#include "region.h"
-
-namespace Ui
-{
- class OcrOptions;
-}
-
-class OcrOptions :
- public OptionWidget
-{
- Q_OBJECT
-
- public:
- explicit OcrOptions(QWidget *parent = 0);
- ~OcrOptions();
-
- void loadConfig();
- void saveConfig();
-
- private:
- int findIndex(const QString& lang);
-
- Ui::OcrOptions *ui;
-};
-
-#endif // OCR_OPTIONS_H
diff --git a/GScribo/Preferences/ocroptions.ui b/GScribo/Preferences/ocroptions.ui
deleted file mode 100644
index d001c64..0000000
--- a/GScribo/Preferences/ocroptions.ui
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>OcrOptions</class>
- <widget class="QWidget" name="OcrOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>366</width>
- <height>112</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QGroupBox" name="enable_ocr">
- <property name="title">
- <string>Enable OCR</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="1" column="1">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Language</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QComboBox" name="ocr_language"/>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/GScribo/Preferences/optionwidget.h b/GScribo/Preferences/optionwidget.h
deleted file mode 100644
index e0979d2..0000000
--- a/GScribo/Preferences/optionwidget.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef OPTIONWIDGET_H
-#define OPTIONWIDGET_H
-
-#include <QWidget>
-
-struct OptionWidget :
- public QWidget
-{
- explicit OptionWidget(QWidget * parent) : QWidget(parent) {}
-
- virtual void loadConfig() {}
- virtual void saveConfig() {}
-};
-
-#endif // OPTIONWIDGET_H
diff --git a/GScribo/Preferences/preferencesdialog.cpp b/GScribo/Preferences/preferencesdialog.cpp
deleted file mode 100644
index 23a0dd6..0000000
--- a/GScribo/Preferences/preferencesdialog.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "preferencesdialog.h"
-#include "ui_preferencesdialog.h"
-
-PreferencesDialog::PreferencesDialog(QWidget *parent) :
- QDialog(parent, Qt::Dialog),
- ui(new Ui::PreferencesDialog)
-{
- ui->setupUi(this);
-
- // We may want to remove this useless object in the ui file.
- delete ui->widget;
-
- connect(ui->optionList, SIGNAL(currentRowChanged(int)), this, SLOT(onOptionListCurrentRowChanged(int)));
- setAttribute(Qt::WA_DeleteOnClose);
-
- loadOptionList();
- ui->optionList->setCurrentRow(0);
-}
-
-PreferencesDialog::~PreferencesDialog()
-{
- delete ui;
-}
-
-void PreferencesDialog::loadOptionList()
-{
- static const char *options[] = { "General", "Preprocessing", "Segmentation", "OCR", 0 };
-
- int i;
- for (i = 0; options[i]; ++i)
- ui->optionList->insertItem(i, options[i]);
-
- widgets.fill(0, i);
-}
-
-void PreferencesDialog::selectOptionWidget(int row)
-{
- if(!widgets[row])
- {
- QWidget *widget = 0;
-
- switch(row)
- {
- case 0:
- widget = new GeneralOptions(this);
- break;
-
- case 1:
- widget = new PreprocessingOptions(this);
- break;
-
- case 2:
- widget = new SegmentationOptions(this);
- break;
-
- case 3:
- widget = new OcrOptions(this);
- break;
- }
-
- if(widget)
- widgets[row] = widget;
- }
-
- if(ui->horizontalLayout_2->count() == 2)
- {
- QWidget *current_widget = ui->horizontalLayout_2->itemAt(1)->widget();
- ui->horizontalLayout_2->removeWidget(current_widget);
- current_widget->hide();
- }
-
- ui->horizontalLayout_2->insertWidget(1, widgets[row]);
- widgets[row]->show();
-}
-
-
-void PreferencesDialog::accept()
-{
- for (int i = 0; i < widgets.size(); ++i)
- {
- if (widgets[i])
- {
- static_cast<OptionWidget *>(widgets[i])->saveConfig();
- delete widgets[i];
- }
- }
-
- QDialog::accept();
-}
-
-
-void PreferencesDialog::reject()
-{
- for (int i = 0; i < widgets.size(); ++i)
- delete widgets[i];
-
- QDialog::reject();
-}
diff --git a/GScribo/Preferences/preferencesdialog.h b/GScribo/Preferences/preferencesdialog.h
deleted file mode 100644
index b0b9b61..0000000
--- a/GScribo/Preferences/preferencesdialog.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef PREFERENCESDIALOG_H
-#define PREFERENCESDIALOG_H
-
-#include <QDialog>
-
-#include "preprocessingoptions.h"
-#include "segmentationoptions.h"
-#include "generaloptions.h"
-#include "ocroptions.h"
-
-namespace Ui
-{
- class PreferencesDialog;
-}
-
-class PreferencesDialog :
- public QDialog
-{
- Q_OBJECT
-
- public:
- explicit PreferencesDialog(QWidget *parent = 0);
- ~PreferencesDialog();
-
- private:
- void loadOptionList();
- void selectOptionWidget(int row);
-
- Ui::PreferencesDialog *ui;
- QVector<QWidget *> widgets;
-
- private slots:
- inline void onOptionListCurrentRowChanged(int row);
- virtual void accept();
- virtual void reject();
-
-};
-
-inline void PreferencesDialog::onOptionListCurrentRowChanged(int row)
-{ selectOptionWidget(row); }
-
-#endif // PREFERENCESDIALOG_H
diff --git a/GScribo/Preferences/preferencesdialog.ui b/GScribo/Preferences/preferencesdialog.ui
deleted file mode 100644
index 1d40563..0000000
--- a/GScribo/Preferences/preferencesdialog.ui
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PreferencesDialog</class>
- <widget class="QDialog" name="PreferencesDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>668</width>
- <height>418</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Preferences</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Preferences</span></p></body></html></string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QListWidget" name="optionList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Maximum" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>200</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="baseSize">
- <size>
- <width>100</width>
- <height>0</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QWidget" name="widget" native="true"/>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>PreferencesDialog</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>248</x>
- <y>254</y>
- </hint>
- <hint type="destinationlabel">
- <x>157</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>buttonBox</sender>
- <signal>rejected()</signal>
- <receiver>PreferencesDialog</receiver>
- <slot>reject()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>316</x>
- <y>260</y>
- </hint>
- <hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/GScribo/Preferences/preprocessingoptions.cpp b/GScribo/Preferences/preprocessingoptions.cpp
deleted file mode 100644
index 6639bae..0000000
--- a/GScribo/Preferences/preprocessingoptions.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "preprocessingoptions.h"
-#include "ui_preprocessingoptions.h"
-
-using namespace scribo::toolchain::internal;
-
-PreprocessingOptions::PreprocessingOptions(QWidget *parent) :
- OptionWidget(parent),
- ui(new Ui::PreprocessingOptions)
-{
- ui->setupUi(this);
-
- ui->bin_algoCbox->insertItem(Convert, "Violent convert");
- ui->bin_algoCbox->insertItem(Sauvola, "Local threshold");
- ui->bin_algoCbox->insertItem(SauvolaMs, "Local threshold multiscale");
-
- loadConfig();
-}
-
-PreprocessingOptions::~PreprocessingOptions()
-{
- delete ui;
-}
-
-void PreprocessingOptions::loadConfig()
-{
- Configs *const conf = Configs::getInstance();
-
- ui->subsampleCb->setChecked(conf->preprocessingSubsample());
- ui->remove_bgCb->setChecked(conf->preprocessingRemoveBg());
- ui->deskewCb->setChecked(conf->preprocessingDeskew());
- ui->remove_noiseCb->setChecked(conf->preprocessingRemoveNoise());
- ui->bin_algoCbox->setCurrentIndex(conf->preprocessingBinAlgo());
-}
-
-
-void PreprocessingOptions::saveConfig()
-{
- Configs *const conf = Configs::getInstance();
-
- conf->setPreprocessingSubsample(ui->subsampleCb->isChecked());
- conf->setPreprocessingRemoveBg(ui->remove_bgCb->isChecked());
- conf->setPreprocessingDeskew(ui->deskewCb->isChecked());
- conf->setPreprocessingRemoveNoise(ui->remove_noiseCb->isChecked());
- conf->setPreprocessingBinAlgo(ui->bin_algoCbox->currentIndex());
-}
diff --git a/GScribo/Preferences/preprocessingoptions.h b/GScribo/Preferences/preprocessingoptions.h
deleted file mode 100644
index 6cc0081..0000000
--- a/GScribo/Preferences/preprocessingoptions.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef PREPROCESSINGOPTIONS_H
-#define PREPROCESSINGOPTIONS_H
-
-#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-#include "optionwidget.h"
-#include "region.h"
-#include "configs.h"
-
-namespace Ui
-{
- class PreprocessingOptions;
-}
-
-class PreprocessingOptions :
- public OptionWidget
-{
- Q_OBJECT
-
- public:
- explicit PreprocessingOptions(QWidget *parent = 0);
- ~PreprocessingOptions();
-
- void loadConfig();
- void saveConfig();
-
- private:
- Ui::PreprocessingOptions *ui;
-
-};
-
-#endif // PREPROCESSINGOPTIONS_H
diff --git a/GScribo/Preferences/preprocessingoptions.ui b/GScribo/Preferences/preprocessingoptions.ui
deleted file mode 100644
index 962cf49..0000000
--- a/GScribo/Preferences/preprocessingoptions.ui
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PreprocessingOptions</class>
- <widget class="QWidget" name="PreprocessingOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>466</width>
- <height>198</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Configure toolchain</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Binarization method:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="bin_algoCbox"/>
- </item>
- </layout>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="subsampleCb">
- <property name="text">
- <string>Run on subsampled image</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QCheckBox" name="remove_bgCb">
- <property name="text">
- <string>Remove background (slow)</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
- <widget class="QCheckBox" name="deskewCb">
- <property name="text">
- <string>Deskew</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0">
- <widget class="QCheckBox" name="remove_noiseCb">
- <property name="text">
- <string>Remove noise</string>
- </property>
- </widget>
- </item>
- <item row="5" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>48</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/GScribo/Preferences/segmentationoptions.cpp b/GScribo/Preferences/segmentationoptions.cpp
deleted file mode 100644
index d35209f..0000000
--- a/GScribo/Preferences/segmentationoptions.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "segmentationoptions.h"
-#include "ui_segmentationoptions.h"
-
-SegmentationOptions::SegmentationOptions(QWidget *parent) :
- OptionWidget(parent),
- ui(new Ui::SegmentationOptions)
-{
- ui->setupUi(this);
-
- ui->find_sepsCbox->insertItem(Separator::Lines, "Lines");
- ui->find_sepsCbox->insertItem(Separator::Whitespaces, "Whitespaces");
- ui->find_sepsCbox->insertItem(Separator::Both, "Lines and whitespaces");
-
- loadConfig();
-}
-
-SegmentationOptions::~SegmentationOptions()
-{
- delete ui;
-}
-
-void SegmentationOptions::loadConfig()
-{
- Configs *const conf = Configs::getInstance();
- ui->find_sepsCbox->setCurrentIndex(conf->segmentationFindSeps());
-}
-
-
-void SegmentationOptions::saveConfig()
-{
- Configs *const conf = Configs::getInstance();
- conf->setSegmentationFindSeps(ui->find_sepsCbox->currentIndex());
-}
diff --git a/GScribo/Preferences/segmentationoptions.h b/GScribo/Preferences/segmentationoptions.h
deleted file mode 100644
index 1506bfa..0000000
--- a/GScribo/Preferences/segmentationoptions.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef SEGMENTATIONOPTIONS_H
-#define SEGMENTATIONOPTIONS_H
-
-//#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-#include "optionwidget.h"
-#include "configs.h"
-#include "region.h"
-
-namespace Ui
-{
- class SegmentationOptions;
-}
-
-class SegmentationOptions :
- public OptionWidget
-{
- Q_OBJECT
-
- public:
- explicit SegmentationOptions(QWidget *parent = 0);
- ~SegmentationOptions();
-
- void loadConfig();
- void saveConfig();
-
- private:
- Ui::SegmentationOptions *ui;
-};
-
-#endif // SEGMENTATIONOPTIONS_H
diff --git a/GScribo/Preferences/segmentationoptions.ui b/GScribo/Preferences/segmentationoptions.ui
deleted file mode 100644
index 485e448..0000000
--- a/GScribo/Preferences/segmentationoptions.ui
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SegmentationOptions</class>
- <widget class="QWidget" name="SegmentationOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Find separators</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="find_sepsCbox">
- <property name="editable">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="1" column="0">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>258</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/GScribo/Processing/preprocess.cpp b/GScribo/Processing/preprocess.cpp
deleted file mode 100644
index f012d88..0000000
--- a/GScribo/Processing/preprocess.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "preprocess.h"
-
-void Preprocess::on_progress()
-{
- emit progress();
-}
-
-void Preprocess::on_new_progress_label(const char *label)
-{
- emit newProgressLabel(QString(label));
-}
diff --git a/GScribo/Processing/preprocess.h b/GScribo/Processing/preprocess.h
deleted file mode 100644
index d65357f..0000000
--- a/GScribo/Processing/preprocess.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef PREPROCESS_H
-#define PREPROCESS_H
-
-#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-#include <mln/core/image/image2d.hh>
-#include <mln/value/rgb8.hh>
-#include <QObject>
-
-using namespace scribo::toolchain::internal;
-
-class Preprocess :
- public QObject,
- public text_in_doc_preprocess_functor<mln::image2d<mln::value::rgb8> >
-{
- Q_OBJECT
-
- public:
- virtual void on_progress();
- virtual void on_new_progress_label(const char *label);
-
- signals:
- void newProgressLabel(const QString& label);
- void progress();
-};
-
-#endif // PREPROCESS_H
diff --git a/GScribo/Processing/process.cpp b/GScribo/Processing/process.cpp
deleted file mode 100644
index bd37480..0000000
--- a/GScribo/Processing/process.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "process.h"
-
-Process::Process(const char *doc_filename)
- : superT(doc_filename)
-{
-}
-
-void Process::on_progress()
-{
- emit progress();
-}
-
-void Process::on_new_progress_label(const char *label)
-{
- emit newProgressLabel(QString(label));
-}
-
-void Process::on_xml_saved()
-{
- emit xmlSaved(QString(output_file.c_str()));
-}
diff --git a/GScribo/Processing/process.h b/GScribo/Processing/process.h
deleted file mode 100644
index 579a988..0000000
--- a/GScribo/Processing/process.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef PROCESS_H
-#define PROCESS_H
-
-#include <scribo/toolchain/internal/content_in_doc_functor.hh>
-#include <mln/core/image/image2d.hh>
-#include <QObject>
-
-using namespace scribo::toolchain::internal;
-
-struct Process :
- public QObject,
- public content_in_doc_functor<mln::image2d<bool> >
-{
- Q_OBJECT
- typedef content_in_doc_functor<mln::image2d<bool> > superT;
-
- public :
- explicit Process(const char *docFilename);
- virtual void on_progress();
- virtual void on_new_progress_label(const char *label);
- virtual void on_xml_saved();
-
- signals:
- void newProgressLabel(const QString& label);
- void progress();
- void xmlSaved(const QString& filename);
-};
-
-#endif // PROCESS_H
diff --git a/GScribo/Processing/progressdialog.cpp b/GScribo/Processing/progressdialog.cpp
deleted file mode 100644
index 7f9d833..0000000
--- a/GScribo/Processing/progressdialog.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "progressdialog.h"
-
-ProgressDialog::ProgressDialog(QWidget *parent):
- QProgressDialog(parent, Qt::Dialog)
-{
- setAutoClose(false);
- setCancelButton(0);
- hide();
-}
-
-void ProgressDialog::reset()
-{
- setValue(0);
- setLabelText("Initilization");
- show();
-}
diff --git a/GScribo/Processing/progressdialog.h b/GScribo/Processing/progressdialog.h
deleted file mode 100644
index 822d9ba..0000000
--- a/GScribo/Processing/progressdialog.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef PROGRESSDIALOG_H
-#define PROGRESSDIALOG_H
-
-#include <QProgressDialog>
-
-class ProgressDialog :
- public QProgressDialog
-{
- Q_OBJECT
-
- public:
- explicit ProgressDialog(QWidget *parent = 0);
- void reset();
-
- public slots:
- inline void run();
-};
-
-void ProgressDialog::run()
-{ setValue(value()+1); }
-
-#endif // PROGRESSDIALOG_H
diff --git a/GScribo/Processing/runner.cpp b/GScribo/Processing/runner.cpp
deleted file mode 100644
index c02223c..0000000
--- a/GScribo/Processing/runner.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-#include "runner.h"
-
-using namespace mln;
-using namespace scribo::toolchain::internal;
-
-static QString get_pathto(const QString& file, const QString localdirsuffix = QString())
-{
- QFile f(SCRIBO_LOCAL_DEMODIR "/" + localdirsuffix + "/" + file);
- if (f.exists())
- return SCRIBO_LOCAL_DEMODIR "/" + localdirsuffix;
- f.setFileName(SCRIBO_PREFIX_BINDIR "/" + file);
- if (f.exists())
- return SCRIBO_PREFIX_BINDIR;
-
- return "";
-}
-
-Runner::Runner(QObject *parent) :
- QThread(parent)
-{
- moveToThread(this);
-}
-
-void Runner::run()
-{
- if(mode_ == Demat)
- {
- image2d<value::rgb8> ima;
- for(int i = 0; i < args_.count(); i++)
- {
- io::magick::load(ima, args_.at(i).toUtf8().constData());
- image2d<bool> bin_ima = preprocess(ima);
- process(ima, bin_ima, i);
- }
- }
-
- else if(mode_ == Export)
- export_as();
-
- emit finished();
-}
-
-void Runner::stop()
-{
- terminate();
-}
-
-// Demat related stuff
-void Runner::start_demat(const QStringList& filenames)
-{
- args_.clear();
- args_ = filenames;
- mode_ = Demat;
- QThread::start();
-}
-
-
-image2d<bool> Runner::preprocess(const image2d<value::rgb8>& ima)
-{
- emit new_step("Preprocessing");
- Preprocess f;
-
- // Load config.
- Configs *const conf = Configs::getInstance();
-
- connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
- connect(&f, SIGNAL(newProgressLabel(QString)),
- this, SIGNAL(new_progress_label(const QString&)));
-
- f.enable_subsample = conf->preprocessingSubsample();
- f.enable_fg_extraction = conf->preprocessingRemoveBg();
- f.enable_deskew = conf->preprocessingDeskew();
- f.enable_denoising = conf->preprocessingRemoveNoise();
-
- f.binarization_algo = static_cast<Binarization_Algo>(conf->preprocessingBinAlgo());
-
- emit new_progress_max_value(f.nsteps());
-
- // Perform preprocessing.
- f(ima);
-
- return f.output;
-}
-
-
-void Runner::process(const image2d<value::rgb8>& original_ima,
- const image2d<bool>& processed_ima, int arg)
-{
- emit new_step("Page segmentation");
-
- Process f(args_.at(arg).toUtf8().constData());
-
- connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
- connect(&f, SIGNAL(newProgressLabel(QString)),
- this, SIGNAL(new_progress_label(QString)));
- connect(&f, SIGNAL(xmlSaved(QString)),
- this, SIGNAL(xml_saved(const QString&)));
-
- // Load config.
- Configs *const conf = Configs::getInstance();
-
- Separator::FindSeparator find_seps = static_cast<Separator::FindSeparator>(conf->segmentationFindSeps());
- f.enable_line_seps = (find_seps == Separator::Lines
- || find_seps == Separator::Both);
- f.enable_whitespace_seps = (find_seps == Separator::Whitespaces
- || find_seps == Separator::Both);
- f.enable_ocr = conf->ocrEnabled();
- f.ocr_language = conf->ocrLanguage().toAscii().data();
- f.xml_format = scribo::io::xml::PageExtended;
-
-
- f.save_doc_as_xml = true;
- QFileInfo file(args_.at(arg));
- QString output_dir = QDir::tempPath();
- if (conf->generalSaveXmlEnabled())
- {
- if (conf->generalSaveXmlSameDir())
- output_dir = file.absolutePath();
- else if (conf->generalSaveXmlCustomDir())
- output_dir = conf->generalSaveXmlCustomDirPath();
-
- QDir dir(output_dir);
- if (!dir.exists() && !dir.mkpath(output_dir))
- output_dir = QDir::tempPath();
- }
- QString filename = (output_dir + "/" + file.baseName() + "_gui.xml");
- f.output_file = filename.toUtf8().constData();
- emit new_progress_max_value(f.nsteps());
-
- // Perform text detection.
- f(original_ima, processed_ima);
-}
-
-// Export related stuff
-void Runner::start_export(const QString& imgfile,
- const QString& xmlfile, const QString& outfile)
-{
- args_.clear();
- args_ << imgfile << xmlfile << outfile;
- mode_ = Export;
-
- QThread::start();
-}
-
-void Runner::export_as()
-{
- emit new_step("Exporting document");
- emit new_progress_max_value(2);
-
- // Checking output format
- QFileInfo f(args_.at(2));
-
- QString pathto_xml2doc = get_pathto("scribo-xml2doc", "xml2doc");
-
- if (pathto_xml2doc.isEmpty())
- {
- QMessageBox::critical(0, "Fatal error", "Cannot export! Cannot find scribo-xml2doc program!");
- return;
- }
-
- emit progress();
-
- int rvalue = 0;
- if (f.suffix() == "pdf")
- {
- emit new_step("Exporting as PDF");
- rvalue = system(QString("%1/scribo-xml2doc --pdf %2 %3 %4")
- .arg(pathto_xml2doc).arg(args_.at(1)).arg(args_.at(0))
- .arg(args_.at(2)).toAscii().constData());
- }
- else if (f.suffix() == "html" || f.suffix() == "htm")
- {
- emit new_step("Exporting as HTML");
- rvalue = system(QString("%1/scribo-xml2doc --html %2 %3 %4")
- .arg(pathto_xml2doc).arg(args_.at(1)).arg(args_.at(0))
- .arg(args_.at(2)).toAscii().constData());
- }
- else
- QMessageBox::critical(0, "Fatal error", "Cannot export! Invalid output format!");
-
- if (rvalue != 0)
- QMessageBox::critical(0, "Fatal error", "Cannot export! Return value is not 0!");
-}
diff --git a/GScribo/Processing/runner.h b/GScribo/Processing/runner.h
deleted file mode 100644
index 721086a..0000000
--- a/GScribo/Processing/runner.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef RUNNER_H
-#define RUNNER_H
-
-#include <mln/core/image/image2d.hh>
-#include <mln/io/magick/load.hh>
-#include <mln/value/rgb8.hh>
-#include <QStringList>
-#include <QMessageBox>
-#include <QThread>
-#include <QFile>
-
-#include "preprocess.h"
-#include "process.h"
-#include "configs.h"
-#include "region.h"
-#include "dir.h"
-
-using namespace mln;
-
-enum RunMode
-{
- Demat,
- Export
-};
-
-class Runner :
- public QThread
-{
- Q_OBJECT
-
- public:
- explicit Runner(QObject *parent = 0);
- void start_demat(const QStringList& filenames);
- void start_export(const QString& imgfile, const QString& xmlfile, const QString& outfile);
-
- private:
- image2d<bool> preprocess(const image2d<value::rgb8>& ima);
- void process(const image2d<value::rgb8>& original_ima, const image2d<bool>& processed_ima, int arg);
- void export_as();
- virtual void run();
- template <typename V> unsigned find_best_scale(const mln::image2d<V>& ima);
-
- QStringList args_;
- RunMode mode_;
-
- public slots:
- void stop();
-
- signals:
- void new_step(const QString& step_name);
- void new_progress_max_value(int i);
- void new_progress_label(const QString& msg);
- void xml_saved(const QString& filename);
- void progress();
- void finished();
-};
-
-#endif // RUNNER_H
diff --git a/GScribo/Rendering/abstractregionitem.h b/GScribo/Rendering/abstractregionitem.h
deleted file mode 100644
index 02b889b..0000000
--- a/GScribo/Rendering/abstractregionitem.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef ABSTRACTREGIONITEM_H
-#define ABSTRACTREGIONITEM_H
-
-#include <QGraphicsItem>
-
-class AbstractRegionItem :
- public QGraphicsItem
-{
- public:
- explicit AbstractRegionItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
-};
-
-#endif // ABSTRACTREGIONITEM_H
diff --git a/GScribo/Rendering/backgroundtexture.h b/GScribo/Rendering/backgroundtexture.h
deleted file mode 100644
index 22c8d0c..0000000
--- a/GScribo/Rendering/backgroundtexture.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef BACKGROUNDTEXTURE_H
-#define BACKGROUNDTEXTURE_H
-
-#include <QPixmap>
-
-class BackgroundTexture : public QPixmap
-{
- public:
- explicit BackgroundTexture(const QPixmap& );
-};
-
-#endif // BACKGROUNDTEXTURE_H
diff --git a/GScribo/Rendering/graphicsview.cpp b/GScribo/Rendering/graphicsview.cpp
deleted file mode 100644
index 336d5c2..0000000
--- a/GScribo/Rendering/graphicsview.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-#include "graphicsview.h"
-#include <QDebug>
-
-GraphicsView::GraphicsView(QWidget *parent) :
- QGraphicsView(parent)
-{
- init();
-}
-
-GraphicsView::GraphicsView(QGraphicsScene *scene, QWidget *parent) :
- QGraphicsView(scene, parent)
-{
- init();
-}
-
-void GraphicsView::init()
-{
- isRightClicking_ = false;
- scaleRatio_ = QSizeF(1, 1);
- setTransformationAnchor(GraphicsView::AnchorUnderMouse);
- setBackgroundBrush(QBrush(Qt::lightGray));
-
- // Important to hide scroll bars : when they appear, it triggers the resizeEvent.
- setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-}
-
-void GraphicsView::mousePressEvent(QMouseEvent *event)
-{
- if(event->button() == Qt::RightButton)
- {
- emit beginDrag();
- setDragMode(QGraphicsView::ScrollHandDrag);
- }
-
- QMouseEvent *mouseEvent = new QMouseEvent(QEvent::MouseButtonPress, event->pos(), Qt::LeftButton,
- Qt::LeftButton, Qt::MetaModifier);
- event->ignore();
- QGraphicsView::mousePressEvent(mouseEvent);
-}
-
-void GraphicsView::mouseReleaseEvent(QMouseEvent *event)
-{
- if(event->button() == Qt::RightButton)
- {
- setDragMode(GraphicsView::NoDrag);
- emit endDrag();
- }
-
- QGraphicsView::mouseReleaseEvent(event);
-}
-
-void GraphicsView::wheelEvent(QWheelEvent *event)
-{
- if(event->modifiers() & Qt::ControlModifier)
- {
- // Current wheel have an angle of 15 degrees by steps with a delta of + or - 120. A good scale is +- 0.1 in that case.
- // So we have to adapt for wheel whith better precision.
- qreal degrees = 1 + static_cast<qreal>(event->delta()) / 1200;
- qreal nextScaleRatio = degrees * isWidthGreater_ ? scaleRatio_.width() :
- scaleRatio_.height();
- if(event->delta() > 0)
- {
- if(nextScaleRatio <= 20)
- {
- scaleRatio_ *= degrees;
- scale(degrees, degrees);
- }
- }
- else
- {
- if(nextScaleRatio >= 1.1)
- {
- scaleRatio_ *= degrees;
- scale(degrees, degrees);
- }
- else if(isContainedInView_)
- {
- QGraphicsView::fitInView(scene()->sceneRect(), Qt::KeepAspectRatio);
- scaleRatio_ = QSizeF(1, 1);
- }
- }
- }
- else
- QGraphicsView::wheelEvent(event);
-}
-
-void GraphicsView::keyPressEvent(QKeyEvent* event)
-{
- // Bitwise AND to check if at least CTRL is pushed.
- if(event->modifiers() & Qt::ControlModifier)
- {
- qreal nextScaleRatio;
- if(event->key() == Qt::Key_Plus)
- {
- nextScaleRatio = 1.2 * isWidthGreater_ ? scaleRatio_.width() :
- scaleRatio_.height();
- if(nextScaleRatio <= 19)
- {
- scaleRatio_ *= 1.2;
- scale(1.2, 1.2);
- }
- }
- else if(event->key() == Qt::Key_Minus)
- {
- nextScaleRatio = 0.8 * isWidthGreater_ ? scaleRatio_.width() :
- scaleRatio_.height();
- if(nextScaleRatio >= 1.2)
- {
- scaleRatio_ *= 0.8;
- scale(0.8, 0.8);
- }
- else if(isContainedInView_)
- {
- QGraphicsView::fitInView(scene()->sceneRect(), Qt::KeepAspectRatio);
- scaleRatio_ = QSizeF(1, 1);
- }
- }
- }
-
- QGraphicsView::keyPressEvent(event);
-}
-
-void GraphicsView::fitInView(const QRectF& rect)
-{
- setFocus();
- isWidthGreater_ = static_cast<qreal>(rect.width()) / static_cast<qreal>(rect.height()) > 1 ? true :
- false;
- qreal ratio = isWidthGreater_ ? static_cast<qreal>(width()) / static_cast<qreal>(rect.width()) :
- static_cast<qreal>(height()) / static_cast<qreal>(rect.height());
-
- isContainedInView_ = ratio < 1 ? true : false;
- if(isContainedInView_)
- {
- scaleRatio_ = QSizeF(1, 1);
- QGraphicsView::fitInView(rect, Qt::KeepAspectRatio);
- }
-}
-
-void GraphicsView::resizeEvent(QResizeEvent *event)
-{
- if(scene()->items().count() > 1)
- {
- qreal ratio = isWidthGreater_ ? static_cast<qreal>(event->size().width()) / static_cast<qreal>(event->oldSize().width()) :
- static_cast<qreal>(event->size().height()) / static_cast<qreal>(event->oldSize().height());
- scale(ratio, ratio);
- }
-
- QGraphicsView::resizeEvent(event);
-}
diff --git a/GScribo/Rendering/graphicsview.h b/GScribo/Rendering/graphicsview.h
deleted file mode 100644
index 285f4cd..0000000
--- a/GScribo/Rendering/graphicsview.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef GRAPHICSVIEW_H
-#define GRAPHICSVIEW_H
-
-#include <QGraphicsView>
-#include <QWheelEvent>
-#include <QScrollBar>
-
-class GraphicsView :
- public QGraphicsView
-{
- Q_OBJECT
-
- public:
- explicit GraphicsView(QWidget *parent = 0);
- explicit GraphicsView(QGraphicsScene *scene, QWidget *parent = 0);
-
- protected:
- void init();
-
- void resizeEvent(QResizeEvent *event);
-
- void wheelEvent(QWheelEvent *event);
- void keyPressEvent(QKeyEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
-
- private:
- bool isWidthGreater_;
- bool isContainedInView_;
- QSizeF scaleRatio_;
-
- bool isRightClicking_;
- QPointF prevMousePos_;
-
- public slots:
- void fitInView(const QRectF& rect);
-
- signals:
- void beginDrag();
- void endDrag();
-};
-
-#endif // GRAPHICSVIEW_H
diff --git a/GScribo/Rendering/regionitem.cpp b/GScribo/Rendering/regionitem.cpp
deleted file mode 100644
index 77cbcb3..0000000
--- a/GScribo/Rendering/regionitem.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#include "regionitem.h"
-
-RegionItem::RegionItem(QGraphicsItem *parent, QGraphicsScene *scene)
- : QGraphicsPolygonItem(parent, scene)
-{
- init();
-}
-
-RegionItem::RegionItem(const QPolygonF& polygon, QGraphicsItem *parent, QGraphicsScene *scene):
- QGraphicsPolygonItem(polygon, parent, scene)
-{
- init();
-}
-
-void RegionItem::init()
-{
- xmlItem_ = 0;
-
- selectedPen_.setStyle(Qt::SolidLine);
- unselectedPen_.setStyle(Qt::SolidLine);
-
- selectedPen_.setWidthF(2);
- unselectedPen_.setWidth(0);
-
- selectedPen_.setCapStyle(Qt::SquareCap);
- unselectedPen_.setCapStyle(Qt::SquareCap);
-
- selectedBrush_.setStyle(Qt::SolidPattern);
- unselectedBrush_.setStyle(Qt::SolidPattern);
-}
-
-void RegionItem::setColor(const QColor& color)
-{
- selectedPen_.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 255));
- unselectedPen_.setColor(color);
-
- selectedBrush_.setColor(color);
- unselectedBrush_.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 40));
-
- setPen(unselectedPen_);
- setBrush(unselectedBrush_);
-}
-
-void RegionItem::setSelected(bool isSelected)
-{
- if(isSelected)
- {
- isSelected_ = true;
- setPen(selectedPen_);
- setBrush(selectedBrush_);
- }
-
- else
- {
- isSelected_ = false;
- setPen(unselectedPen_);
- setBrush(unselectedBrush_);
- }
-}
diff --git a/GScribo/Rendering/regionitem.h b/GScribo/Rendering/regionitem.h
deleted file mode 100644
index 3e8eb11..0000000
--- a/GScribo/Rendering/regionitem.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef RegionITEM_H
-#define RegionITEM_H
-
-#include <QGraphicsPolygonItem>
-#include <QTreeWidgetItem>
-#include <QPen>
-
-#include "variantpointer.h"
-#include "region.h"
-
-class XmlItem;
-
-class RegionItem :
- public QGraphicsPolygonItem
-{
- public:
- explicit RegionItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
- explicit RegionItem(const QPolygonF& path, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
-
- void setColor(const QColor& color);
- inline QColor color() const;
-
- inline void setXmlItem(XmlItem *xmlItem);
- inline XmlItem *xmlItem() const;
-
- inline void loadData(const GraphicsRegion::Data& data);
- inline int region() const;
-
- inline bool intersects(const QRectF& rect);
- inline bool contains(const QPointF& point);
-
- void setSelected(bool isSelected);
- inline bool isSelected();
- inline void unselect();
- inline void select();
-
- private:
- void init();
-
- XmlItem *xmlItem_;
- int region_;
- bool isSelected_;
-
- QPen selectedPen_;
- QPen unselectedPen_;
- QBrush selectedBrush_;
- QBrush unselectedBrush_;
-};
-
-inline void RegionItem::setXmlItem(XmlItem *xmlItem)
-{ xmlItem_ = xmlItem; }
-
-inline XmlItem *RegionItem::xmlItem() const
-{ return xmlItem_; }
-
-inline QColor RegionItem::color() const
-{ return selectedBrush_.color(); }
-
-inline int RegionItem::region() const
-{ return region_; }
-
-inline bool RegionItem::isSelected()
-{ return isSelected_; }
-
-inline void RegionItem::select()
-{ setSelected(true); }
-
-inline void RegionItem::unselect()
-{ setSelected(false); }
-
-inline void RegionItem::loadData(const GraphicsRegion::Data& data)
-{ region_ = data.region; setColor(data.color); setZValue(data.zValue); }
-
-inline bool RegionItem::contains(const QPointF& point)
-{ return (boundingRect().width() * boundingRect().height() == 0 || boundingRect().contains(point)) && shape().contains(point); }
-
-inline bool RegionItem::intersects(const QRectF& rect)
-{ return (boundingRect().width() * boundingRect().height() == 0 || boundingRect().intersects(rect)) && shape().intersects(rect); }
-
-#endif // RegionITEM_H
diff --git a/GScribo/Rendering/rootgraphicsitem.h b/GScribo/Rendering/rootgraphicsitem.h
deleted file mode 100644
index 2e95297..0000000
--- a/GScribo/Rendering/rootgraphicsitem.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef ROOTGRAPHICSITEM_H
-#define ROOTGRAPHICSITEM_H
-
-#include <QGraphicsItem>
-
-#include "region.h"
-
-class RootGraphicsItem :
- public QGraphicsPolygonItem
-{
- public:
- explicit RootGraphicsItem(int numberRegion)
- { childsFromRegion_.fill(QList<QGraphicsItem *>(), numberRegion); }
- ~RootGraphicsItem()
- { foreach(QList<QGraphicsItem *> list, childsFromRegion_) { foreach(QGraphicsItem *child, list) delete child; } }
-
- inline void addItemFrom(QGraphicsItem *graphicalItem, const GraphicsRegion::Id& region);
- inline QList<QGraphicsItem *> childsFrom(const GraphicsRegion::Id& region) const;
-
- private:
- QVector<QList<QGraphicsItem *> > childsFromRegion_;
-};
-
-inline QList<QGraphicsItem *> RootGraphicsItem::childsFrom(const GraphicsRegion::Id& region) const
-{ return childsFromRegion_[region]; }
-
-inline void RootGraphicsItem::addItemFrom(QGraphicsItem *graphicalItem, const GraphicsRegion::Id& region)
-{ childsFromRegion_[region] << graphicalItem; }
-
-#endif // ROOTGRAPHICSITEM_H
diff --git a/GScribo/Rendering/scene.cpp b/GScribo/Rendering/scene.cpp
deleted file mode 100644
index 903bb97..0000000
--- a/GScribo/Rendering/scene.cpp
+++ /dev/null
@@ -1,273 +0,0 @@
-#include "scene.h"
-
-Scene::Scene(QObject *parent):
- QGraphicsScene(parent)
-{
- init();
-}
-
-Scene::Scene(const QRectF &sceneRect, QObject *parent):
- QGraphicsScene(sceneRect, parent)
-{
- init();
-}
-
-Scene::Scene(qreal x, qreal y, qreal width, qreal height, QObject *parent):
- QGraphicsScene(x, y, width, height, parent)
-{
- init();
-}
-
-void Scene::init()
-{
- isPressing_ = false;
- isSelectionDisabled_ = false;
- backgroundPixmap_ = 0;
- root_ = 0;
-
- selection_.hide();
- addItem(&selection_);
-}
-
-void Scene::clearAll()
-{
- if(root_)
- delete root_;
-
- if(backgroundPixmap_)
- delete backgroundPixmap_;
-
- selectedRegions_.clear();
- backgroundPath_ = QString();
- backgroundPixmap_ = 0;
- root_ = 0;
-}
-
-void Scene::clearRegions()
-{
- if(root_)
- delete root_;
-
- selectedRegions_.clear();
- root_ = 0;
-}
-
-void Scene::clearSelection()
-{
- QGraphicsItem *child;
- RegionItem *regionItem;
-
- // Unselect all items.
- foreach(child, selectedRegions_)
- {
- regionItem = static_cast<RegionItem *>(child);
- regionItem->unselect();
- }
-
- selectedRegions_.clear();
- emit selectionCleared();
-}
-
-void Scene::selectAll()
-{
- RegionItem *item;
- foreach(QGraphicsItem *child, root_->childItems())
- {
- item = static_cast<RegionItem *>(child);
- item->select();
- selectedRegions_ << item;
- }
-}
-
-void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- if(!backgroundPath_.isEmpty() && event->button() == Qt::LeftButton && !isSelectionDisabled_)
- {
- isPressing_ = true;
-
- baseSelection_.clear();
- pressPos_ = event->scenePos();
- selection_.show();
- }
-}
-
-void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
-{
- if(isPressing_)
- {
- // Adapt if the selection rectangle has a negative size.
- if(pressPos_.x() < event->scenePos().x())
- selection_.setRect(pressPos_.x(), 0, event->scenePos().x()-pressPos_.x(), 0);
- else
- selection_.setRect(event->scenePos().x(), 0, pressPos_.x()-event->scenePos().x(), 0);
-
- if(pressPos_.y() < event->scenePos().y())
- selection_.setRect(selection_.rect().x(), pressPos_.y(), selection_.rect().width(), event->scenePos().y()-pressPos_.y());
- else
- selection_.setRect(selection_.rect().x(), event->scenePos().y(), selection_.rect().width(), pressPos_.y()-event->scenePos().y());
- }
-}
-
-void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
-{
- if(event->button() == Qt::LeftButton)
- {
- isPressing_ = false;
-
- // Redraw all items in selection.
- if(root_)
- {
- clearSelection();
-
- // Check if it is a click.
- if(selection_.rect().width() * selection_.rect().height() == 0)
- select(event->scenePos());
- else
- select(selection_.rect());
-
- baseSelection_ = selectedRegions();
- emit newSelection(selectedRegions_);
- }
-
- selection_.setRect(QRect());
- selection_.hide();
- }
-}
-
-void Scene::select(QGraphicsItem *root, const QPointF& point, const QRectF& rect)
-{
- QGraphicsItem *child;
- RegionItem *regionItem;
-
- // Check if it is a click.
- if(!point.isNull())
- {
- foreach(child, root->childItems())
- {
- regionItem = static_cast<RegionItem *>(child);
-
- if(regionItem->contains(point))
- {
- regionItem->select();
- selectedRegions_ << regionItem;
- }
- }
- }
- else
- {
- foreach(child, root->childItems())
- {
- regionItem = static_cast<RegionItem *>(child);
-
- if(regionItem->intersects(rect))
- {
- regionItem->select();
- selectedRegions_ << regionItem;
- }
- }
- }
-
- emit newSelection();
-}
-
-void Scene::select(const QList<RegionItem *>& selectedRegions)
-{
- RegionItem *child;
- foreach(child, selectedRegions)
- {
- if(!child->isSelected())
- {
- child->select();
- selectedRegions_ << child;
- }
- }
-
- ensureVisible(selectedRegions_.last());
- emit newSelection();
-}
-
-void Scene::unselect(const QList<RegionItem *>& unselectedRegions)
-{
- RegionItem *child;
- foreach(child, unselectedRegions)
- {
- if(child->isSelected())
- {
- child->unselect();
- selectedRegions_.removeOne(child);
- }
- }
-
- // Check if after the removal, the selected list isn't empty.
- if(!selectedRegions_.isEmpty())
- ensureVisible(selectedRegions_.last());
-
- emit newSelection();
-}
-
-
-void Scene::ensureVisible(QGraphicsItem *graphicalItem)
-{
- QGraphicsView *view;
- foreach (view, views())
- view->ensureVisible(graphicalItem);
-}
-
-void Scene::setVisible(const GraphicsRegion::Id& region, bool visible)
-{
- if(root_)
- {
- QGraphicsItem *child;
-
- if(visible)
- {
- foreach(child, root_->childsFrom(region))
- child->setVisible(true);
- }
-
- else
- {
- foreach(child, root_->childsFrom(region))
- child->setVisible(false);
- }
- }
-}
-
-void Scene::setRoot(RootGraphicsItem *root)
-{
- // Delete all items.
- clearRegions();
-
- root_ = root;
- addItem(root);
-
- // Add typo lines separately because can't be selected.
- QGraphicsItem *line;
- foreach(line, root->childsFrom(GraphicsRegion::Baseline))
- addItem(line);
-
- foreach(line, root->childsFrom(GraphicsRegion::Meanline))
- addItem(line);
-}
-
-void Scene::changeScene(const QString& filename, RootGraphicsItem *root)
-{
- // Delete all items.
- clearAll();
- backgroundPath_ = filename;
-
- if(!filename.isEmpty())
- {
- QPixmap pixmap(filename);
- setSceneRect(pixmap.rect());
- // Create the background item and dock it at the maximal depth of the scene.
- backgroundPixmap_ = new QGraphicsPixmapItem(pixmap, 0, this);
- backgroundPixmap_->setZValue(INT_MIN);
- }
- else
- setSceneRect(QRectF());
-
- // Add new items.
- if(root)
- setRoot(root);
-}
diff --git a/GScribo/Rendering/scene.h b/GScribo/Rendering/scene.h
deleted file mode 100644
index 129359b..0000000
--- a/GScribo/Rendering/scene.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef SCENE_H
-#define SCENE_H
-
-#include <QGraphicsSceneMouseEvent>
-#include <QGraphicsView>
-#include <QGraphicsScene>
-#include <QFileDialog>
-#include <climits>
-
-#include "rootgraphicsitem.h"
-#include "regionitem.h"
-#include "selection.h"
-
-class Scene :
- public QGraphicsScene
-{
- Q_OBJECT
-
- public:
- explicit Scene(QObject *parent = 0);
- explicit Scene(const QRectF &sceneRect, QObject *parent = 0);
- explicit Scene(qreal x, qreal y, qreal width, qreal height, QObject *parent = 0);
-
- inline QString backgroundPath() const;
- inline QGraphicsPixmapItem *backgroundPixmap() const;
-
- inline QList<RegionItem *> selectedRegions() const;
-
- void setRoot(RootGraphicsItem *rootItem);
- inline RootGraphicsItem *root() const;
-
- void select(const QRectF& rect);
- void select(const QPointF& point);
- void selectAll();
-
- inline bool selectionEnable() const;
- inline void setSelectionEnable(bool enable);
-
- void changeScene(const QString& filename, RootGraphicsItem *root = 0);
-
- protected:
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
- void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
- void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
-
- private:
- void init();
- void select(QGraphicsItem *root, const QPointF& point, const QRectF& rect);
-
- QGraphicsView *mainView_;
- RootGraphicsItem *root_;
-
- QString backgroundPath_;
- QGraphicsPixmapItem *backgroundPixmap_;
-
- Selection selection_;
- QList<RegionItem *> selectedRegions_;
- QList<RegionItem *> baseSelection_;
-
- QPointF pressPos_;
- bool isPressing_;
- bool isSelectionDisabled_;
-
- public slots:
- void clearAll();
- void clearRegions();
- void clearSelection();
-
- void select(const QList<RegionItem *>& selectedRegions);
- inline void selectBase();
- void unselect(const QList<RegionItem *>& unselectedItems);
-
- void setVisible(const GraphicsRegion::Id& region, bool visible);
- void ensureVisible(QGraphicsItem *graphicsItem);
-
- inline void disableSelection();
- inline void enableSelection();
-
- signals:
- void selectionCleared();
- void newSelection();
- void newSelection(const QList<RegionItem *>& selectedRegions);
-};
-
-inline QString Scene::backgroundPath() const
-{ return backgroundPath_; }
-
-inline QGraphicsPixmapItem *Scene::backgroundPixmap() const
-{ return backgroundPixmap_; }
-
-inline RootGraphicsItem *Scene::root() const
-{ return root_; }
-
-inline QList<RegionItem *> Scene::selectedRegions() const
-{ return selectedRegions_; }
-
-inline void Scene::selectBase()
-{ select(baseSelection_); }
-
-inline void Scene::select(const QPointF& point)
-{ select(root_, point, QRectF()); }
-
-inline void Scene::select(const QRectF& rect)
-{ select(root_, QPointF(), rect); }
-
-inline void Scene::setSelectionEnable(bool enable)
-{ isSelectionDisabled_ = !enable; }
-
-inline bool Scene::selectionEnable() const
-{ return isSelectionDisabled_; }
-
-inline void Scene::disableSelection()
-{ setSelectionEnable(false); }
-
-inline void Scene::enableSelection()
-{ setSelectionEnable(true); }
-
-#endif // SCENE_H
diff --git a/GScribo/Rendering/selection.cpp b/GScribo/Rendering/selection.cpp
deleted file mode 100644
index f5c3f4a..0000000
--- a/GScribo/Rendering/selection.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "selection.h"
-
-Selection::Selection(QGraphicsScene *scene):
- QGraphicsRectItem(0, scene)
-{
- init();
-}
-
-Selection::Selection(const QRectF &rect, QGraphicsScene *scene):
- QGraphicsRectItem(rect, 0, scene)
-{
- init();
-}
-
-Selection::Selection(qreal x, qreal y, qreal width, qreal height, QGraphicsScene *scene):
- QGraphicsRectItem(x, y, width, height, 0, scene)
-{
- init();
-}
-
-void Selection::init()
-{
- // Always drawn on top of the scene.
- setZValue(INT_MAX);
-
- QPen pen;
- pen.setStyle(Qt::SolidLine);
- pen.setCapStyle(Qt::SquareCap);
- pen.setCosmetic(true);
- setPen(pen);
-
- QBrush brush;
- brush.setStyle(Qt::SolidPattern);
- brush.setColor(QColor::fromRgb(80, 200, 10, 60));
- setBrush(brush);
-}
diff --git a/GScribo/Rendering/selection.h b/GScribo/Rendering/selection.h
deleted file mode 100644
index ace8f01..0000000
--- a/GScribo/Rendering/selection.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef SELECTION_H
-#define SELECTION_H
-
-#include <QGraphicsRectItem>
-#include <climits>
-#include <QPen>
-
-class Selection :
- public QGraphicsRectItem
-{
- public:
- explicit Selection(QGraphicsScene *scene = 0);
- explicit Selection(const QRectF& rect, QGraphicsScene *scene = 0);
- explicit Selection(qreal x, qreal y, qreal width, qreal height, QGraphicsScene *scene = 0);
-
- private:
- void init();
-};
-
-#endif // SELECTION_H
diff --git a/GScribo/TODO b/GScribo/TODO
deleted file mode 100644
index 8e7b556..0000000
--- a/GScribo/TODO
+++ /dev/null
@@ -1,100 +0,0 @@
-* Concerning the configurations :
- - Register the location of the different widget and if they are visible/ invisible to restore it on the next utilisation of the gui.
-
-
-* Concerning the menu bar :
- - Assign shortcuts for each buttons.
-
-
-* Concerning the xml widget :
- - Can modify in real time the proxy with a regular expression. When the user click on a check box in the region widget, a new regular expression is created an sent to the xml widget but the proxy is not modified by this regular expression.
- - In the table tree (the attributes tree), set the max of the header splitter. Currently it can be moved indefinitely to the right.
- - Fit the splitter to the content of the first column when an attributes node is loaded.
- - My be some color corresponding to the graphics item of the scene.
- - The organisation of the class and the two views are not perfect.
-
-
-* Concerning the scene :
- - Give the possibility to the user to remove some region.
- - Can create/ fusion some region : sometimes two line regions are splitted but will not be.
- - Optimize the collision between the rectangle item and the regions. Currently it do not take into account if the region is visible by the view before calculating the collision.
- - Use OpenGL to speed up graphics rendering (the gui has been developped with Qt 4.7, OpenGL was still experimental so it was really slow when updating the scene).
- - Create a little widget at the bottom of the scene with the % of scale, the possibility to fit the scene rect or to scale it at 100% (just like gwenview).
- - May be give the possibility to change the color.
- - May be some options one right click.
-
-
-* Concerning the region widget :
- - As stated bove, connect this widget with the xml widget.
- - Find a better way to get region names and colors.
-
-
-* Concerning the page widget :
- - Load less thumbnails (just the necessary to draw it on the widget) because sometimes, pictures are heavy.
- - May be use a progress dialog during the loading where a large number of pictures are loaded.
- - Offer the possibility to down/ upscale thumbnails.
- - Allow the user to move ine the widget with arrow keys.
- - Create also a button to delete selected items (rather than the key 'delete').
- - During the segmentation, give the possibility to segment selected thumbnails, all thumbnails or juste the current.
- - For each thumbnails, paint at his bottom a little progress dialog to check if the picture has already been segmented, not segmented or ongoing segmentation.
-
-* Concerning the progress dialog :
- - Center on the main window.
-
-
-* Concerning the xml file :
- - Stop using the static array representation of the internal data structure for graphics region.
- - Change the way we check if the user allows OCR to recognize the text or just segment.
- - Find a better way to run through all node representing a graphics item without knowing it in advance. For exemple, the xml file looks like this :
-
-
-
- -Metadata
- |- ...
- |- ...
- |- ... Some informations about the creator etc...
- -Page
- |- TextRegion
-
- |- Coords
-
- |- Points
- ... ...
-
- |- Line
-
- |- Coords
-
- |- Points
- ...
- ... <---- All the graphical stuff is here.
- ...
-
- |- VerticalSeparatorRegion
-
- |- Coords
-
- |- Points
- ...
- ...
- ...
-
-
- Graphical items are after pages and node containing informations looks like : *Region -> Coords -> Points and is located in the root node named "Page" so there is a way to find graphical item without knowing their location and name before.
-
-
-* Concerning tool bar :
- - Create one \o/.
- - Create icons to replace text.
- - Add new functionnalities.
-
-
-* Create a text viewer :
- - Give the possibility to modify the text.
- - ______________________ move picture.
- - ______________________ load arrays, tables, etc ...
- - Create a custom tool bar to save, load, etc ...
-
-
-* For other idea of interfaces using Qt :
- - gwenview (picture visionnary, good ideas here).
diff --git a/GScribo/XmlWidget/attributesmodel.cpp b/GScribo/XmlWidget/attributesmodel.cpp
deleted file mode 100644
index 783fafb..0000000
--- a/GScribo/XmlWidget/attributesmodel.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#include "attributesmodel.h"
-
-AttributesModel::AttributesModel(const XmlAttributes& attributes, QObject *parent) :
- QAbstractItemModel(parent)
-{
- attributes_ = attributes;
-}
-
-AttributesModel::AttributesModel(const XmlAttributes& attributes, QAbstractItemModelPrivate& dd, QObject *parent) :
- QAbstractItemModel(dd, parent)
-{
- attributes_ = attributes;
-}
-
-QVariant AttributesModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if(orientation == Qt::Horizontal && role == Qt::DisplayRole)
- {
- switch(section)
- {
- case 0:
- return tr("Name");
-
- case 1:
- return tr("Value");
-
- default:
- return QVariant();
- }
- }
-
- return QVariant();
-}
-
-QVariant AttributesModel::data(const QModelIndex& index, int role) const
-{
- if(!index.isValid())
- return QVariant();
-
- switch(role)
- {
- case Qt::UserRole:
- return attributes_.names()[index.row()];
-
- case Qt::UserRole+1:
- return attributes_.values()[index.row()];
-
- default:
- return QVariant();
- }
-}
-
-void AttributesModel::load(const XmlAttributes& attributes)
-{
- beginResetModel();
-
- attributes_ = attributes;
-
- endResetModel();
-}
-
-void AttributesModel::reset()
-{
- beginResetModel();
-
- attributes_ = XmlAttributes();
-
- endResetModel();
-}
diff --git a/GScribo/XmlWidget/attributesmodel.h b/GScribo/XmlWidget/attributesmodel.h
deleted file mode 100644
index 1dd3289..0000000
--- a/GScribo/XmlWidget/attributesmodel.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef ATTRIBUTESMODEL_H
-#define ATTRIBUTESMODEL_H
-
-#include <QAbstractItemModel>
-
-#include "xmlattributes.h"
-
-class AttributesModel :
- public QAbstractItemModel
-{
- Q_OBJECT
-
- public:
- explicit AttributesModel(const XmlAttributes& attributes = XmlAttributes(), QObject *parent = 0);
- explicit AttributesModel(const XmlAttributes& attributes, QAbstractItemModelPrivate& dd, QObject *parent = 0);
-
- inline int rowCount(const QModelIndex& parent) const;
- inline int columnCount(const QModelIndex& parent) const;
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- QVariant data(const QModelIndex& index, int role) const;
-
- inline QModelIndex index(int row, int column, const QModelIndex &parent) const;
- inline QModelIndex parent(const QModelIndex &child) const;
-
- public slots:
- void reset();
-
- private:
- XmlAttributes attributes_;
-
- public slots:
- void load(const XmlAttributes& attributes);
-};
-
-inline int AttributesModel::rowCount(const QModelIndex&) const
-{ return attributes_.names().count(); }
-
-inline int AttributesModel::columnCount(const QModelIndex&) const
-{ return 2; }
-
-inline QModelIndex AttributesModel::index(int row, int column, const QModelIndex& parent) const
-{ if(!hasIndex(row, column, parent)) return QModelIndex(); return createIndex(row, column, 0); }
-
-inline QModelIndex AttributesModel::parent(const QModelIndex&) const
-{ return QModelIndex(); }
-
-#endif // ATTRIBUTESMODEL_H
diff --git a/GScribo/XmlWidget/selectionproxy.h b/GScribo/XmlWidget/selectionproxy.h
deleted file mode 100644
index 604c46a..0000000
--- a/GScribo/XmlWidget/selectionproxy.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef SELECTIONPROXY_H
-#define SELECTIONPROXY_H
-
-#include <QSortFilterProxyModel>
-#include <QDebug>
-
-#include "xmlitem.h"
-
-class SelectionProxy :
- public QSortFilterProxyModel
-{
- public:
- explicit SelectionProxy(QObject *parent = 0) : QSortFilterProxyModel(parent) { isAllDisplayed_ = true; }
-
- inline void displayAll();
- inline bool isAllDisplayed();
-
- inline void beginResetModel();
- inline void endResetModel();
- inline void invalidateFilter();
-
- protected:
- inline bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const;
-
- private:
- bool isAllDisplayed_;
-};
-
-inline bool SelectionProxy::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const
-{ return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent) && (isAllDisplayed_ || sourceModel()->index(sourceRow, 0, sourceParent).data(Qt::UserRole+2).value<XmlItem *>()->isVisible()); }
-
-inline void SelectionProxy::beginResetModel()
-{ isAllDisplayed_ = false; QSortFilterProxyModel::beginResetModel(); }
-
-inline void SelectionProxy::endResetModel()
-{ QSortFilterProxyModel::endResetModel(); }
-
-inline void SelectionProxy::displayAll()
-{ isAllDisplayed_ = true; }
-
-inline bool SelectionProxy::isAllDisplayed()
-{ return isAllDisplayed_; }
-
-inline void SelectionProxy::invalidateFilter()
-{ QSortFilterProxyModel::invalidateFilter(); }
-
-#endif // SELECTIONPROXY_H
diff --git a/GScribo/XmlWidget/xmlattributes.cpp b/GScribo/XmlWidget/xmlattributes.cpp
deleted file mode 100644
index 0c4221f..0000000
--- a/GScribo/XmlWidget/xmlattributes.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "xmlattributes.h"
-
-XmlAttributes::XmlAttributes()
-{
-}
-
-XmlAttributes::XmlAttributes(const QDomNamedNodeMap& node)
-{
- load(node);
-}
-
-void XmlAttributes::load(const QDomNamedNodeMap& node)
-{
- QDomAttr attr;
-
- for(int i = 0; i < node.count(); i++)
- {
- attr = node.item(i).toAttr();
-
- names_ << attr.name();
- values_ << attr.value();
- }
-}
diff --git a/GScribo/XmlWidget/xmlattributes.h b/GScribo/XmlWidget/xmlattributes.h
deleted file mode 100644
index 8dbf547..0000000
--- a/GScribo/XmlWidget/xmlattributes.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef XMLATTRIBUTES_H
-#define XMLATTRIBUTES_H
-
-#include <QDomNamedNodeMap>
-#include <QStringList>
-#include <QVariant>
-
-class XmlAttributes
-{
- public:
- explicit XmlAttributes();
- explicit XmlAttributes(const QDomNamedNodeMap& node);
-
- void load(const QDomNamedNodeMap& node);
-
- inline QStringList names() const;
- inline QStringList values() const;
-
- private:
- QStringList names_;
- QStringList values_;
-};
-
-inline QStringList XmlAttributes::names() const
-{ return names_; }
-
-inline QStringList XmlAttributes::values() const
-{ return values_; }
-
-Q_DECLARE_METATYPE(XmlAttributes)
-Q_DECLARE_METATYPE(XmlAttributes *)
-
-#endif // XMLATTRIBUTES_H
diff --git a/GScribo/XmlWidget/xmldelegate.h b/GScribo/XmlWidget/xmldelegate.h
deleted file mode 100644
index 3751a94..0000000
--- a/GScribo/XmlWidget/xmldelegate.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef XMLDELEGATE_H
-#define XMLDELEGATE_H
-
-#include <QStyledItemDelegate>
-#include<QPainter>
-
-class XmlDelegate :
- public QStyledItemDelegate
-{
- public:
- explicit XmlDelegate(int role = Qt::DisplayRole, QObject *parent = 0) : QStyledItemDelegate(parent) { role_ = role; }
- inline void paint(QPainter *painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
-
- inline void setRole(int role);
- inline int role() const;
-
- private:
- int role_;
-};
-
-inline void XmlDelegate::paint(QPainter *painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
-{ QStyledItemDelegate::paint(painter, option, index); painter->drawText(option.rect, index.data(role_).toString()); }
-
-inline void XmlDelegate::setRole(int role)
-{ role_ = role; }
-
-inline int XmlDelegate::role() const
-{ return role_; }
-
-#endif // XMLDELEGATE_H
diff --git a/GScribo/XmlWidget/xmlitem.cpp b/GScribo/XmlWidget/xmlitem.cpp
deleted file mode 100644
index 53d09aa..0000000
--- a/GScribo/XmlWidget/xmlitem.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "xmlitem.h"
-
-XmlItem::XmlItem(XmlItem *parent, XmlItem *precItem)
-{
- init(parent, precItem);
-}
-
-XmlItem::XmlItem(const QDomElement& node, XmlItem *parent, XmlItem *precItem)
-{
- init(parent, precItem);
- load(node);
-}
-
-XmlItem::~XmlItem()
-{
- // Delete all childs.
- XmlItem *child;
- foreach(child, childs_)
- delete child;
-}
-
-void XmlItem::init(XmlItem *parent, XmlItem *precItem)
-{
- isVisible_ = false;
- regionItem_ = 0;
- parent_ = parent;
-
- if(parent)
- parent->addChild(this);
-
- if(precItem)
- row_ = precItem->row()+1;
- else
- row_ = 0;
-}
-
-void XmlItem::load(const QDomElement& node)
-{
- text_ = node.tagName();
-
- // Load attributes.
- attributes_.load(node.attributes());
-}
diff --git a/GScribo/XmlWidget/xmlitem.h b/GScribo/XmlWidget/xmlitem.h
deleted file mode 100644
index 5b14ba7..0000000
--- a/GScribo/XmlWidget/xmlitem.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef XMLITEM_H
-#define XMLITEM_H
-
-#include <QDomElement>
-
-#include "xmlattributes.h"
-
-class RegionItem;
-
-class XmlItem
-{
- public:
- explicit XmlItem(XmlItem *parent = 0, XmlItem *precItem = 0);
- explicit XmlItem(const QDomElement& node, XmlItem *parent = 0, XmlItem *precItem = 0);
- ~XmlItem();
-
- void load(const QDomElement& node);
-
- inline QList<XmlItem *> childs() const;
- inline XmlItem *child(int i) const;
- inline void addChild(XmlItem *child);
- inline XmlItem *parent() const;
-
- inline RegionItem *regionItem();
- inline void setRegionItem(RegionItem *regionItem);
-
- inline bool isVisible() const;
- inline void setVisible(bool visible);
- inline void show();
- inline void hide();
-
- inline QString text() const;
- inline int row() const;
- inline XmlAttributes attributes() const;
-
- private:
- void init(XmlItem *parent = 0, XmlItem *precItem = 0);
-
- int row_;
- bool isVisible_;
- QList<XmlItem *> childs_;
- XmlItem *parent_;
- RegionItem *regionItem_;
- QString text_;
- XmlAttributes attributes_;
-};
-
-inline QList<XmlItem *> XmlItem::childs() const
-{ return childs_; }
-
-inline XmlItem *XmlItem::child(int i) const
-{ if(i > -1 && i < childs_.count()) return childs_[i]; return 0; }
-
-inline void XmlItem::addChild(XmlItem *child)
-{ childs_ << child; }
-
-inline XmlItem *XmlItem::parent() const
-{ return parent_; }
-
-inline RegionItem *XmlItem::regionItem()
-{ return regionItem_; }
-
-inline void XmlItem::setRegionItem(RegionItem *regionItem)
-{ regionItem_ = regionItem; }
-
-inline bool XmlItem::isVisible() const
-{ return isVisible_; }
-
-inline void XmlItem::setVisible(bool visible)
-{ isVisible_ = visible; }
-
-inline void XmlItem::show()
-{ isVisible_ = true; }
-
-inline void XmlItem::hide()
-{ isVisible_ = false; }
-
-inline QString XmlItem::text() const
-{ return text_; }
-
-inline int XmlItem::row() const
-{ return row_; }
-
-inline XmlAttributes XmlItem::attributes() const
-{ return attributes_; }
-
-Q_DECLARE_METATYPE(XmlItem)
-Q_DECLARE_METATYPE(XmlItem *)
-
-#endif // XMLITEM_H
diff --git a/GScribo/XmlWidget/xmlmodel.cpp b/GScribo/XmlWidget/xmlmodel.cpp
deleted file mode 100644
index 0f58075..0000000
--- a/GScribo/XmlWidget/xmlmodel.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#include "xmlmodel.h"
-
-XmlModel::XmlModel(XmlItem *rootItem, QObject *parent) :
- QAbstractItemModel(parent)
-{
- rootItem_ = rootItem;
-}
-
-XmlModel::XmlModel(XmlItem *rootItem, QAbstractItemModelPrivate& dd, QObject *parent) :
- QAbstractItemModel(dd, parent)
-{
- rootItem_ = rootItem;
-}
-
-XmlModel::~XmlModel()
-{
- if(rootItem_)
- delete rootItem_;
-}
-
-QVariant XmlModel::headerData(int, Qt::Orientation orientation, int role) const
-{
- if(orientation == Qt::Horizontal && role == Qt::DisplayRole)
- return tr("Tree");
-
- return QVariant();
-}
-
-QVariant XmlModel::data(const QModelIndex& index, int role) const
-{
- if(!index.isValid())
- return QVariant();
-
- switch(role)
- {
- case Qt::UserRole:
- return static_cast<XmlItem *>(index.internalPointer())->text();
-
- case Qt::UserRole+1:
- return QVariant::fromValue(static_cast<XmlItem *>(index.internalPointer())->attributes());
-
- case Qt::UserRole+2:
- return QVariant::fromValue(static_cast<XmlItem *>(index.internalPointer()));
-
- default:
- return QVariant();
- }
-}
-
-QModelIndex XmlModel::index(int row, int column, const QModelIndex& parent) const
-{
- if(!hasIndex(row, column, parent))
- return QModelIndex();
-
- XmlItem *childItem = toXmlItem(parent)->child(row);
-
- // Create the model index from the child item.
- if(childItem)
- return createIndex(row, column, childItem);
- else
- return QModelIndex();
-}
-
-QModelIndex XmlModel::parent(const QModelIndex& child) const
-{
- if(!child.isValid())
- return QModelIndex();
-
- XmlItem *parentItem = static_cast<XmlItem *>(child.internalPointer())->parent();
-
- if(!parentItem || parentItem == rootItem_)
- return QModelIndex();
-
- return createIndex(parentItem->row(), 0, parentItem);
-}
-
-void XmlModel::load(XmlItem *rootItem)
-{
- beginResetModel();
-
- if(rootItem_)
- delete rootItem_;
-
- rootItem_ = rootItem;
-
- endResetModel();
-}
diff --git a/GScribo/XmlWidget/xmlmodel.h b/GScribo/XmlWidget/xmlmodel.h
deleted file mode 100644
index 7e74e6f..0000000
--- a/GScribo/XmlWidget/xmlmodel.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef XMLMODEL_H
-#define XMLMODEL_H
-
-#include <QAbstractItemModel>
-
-#include "variantpointer.h"
-#include "xmlitem.h"
-
-class XmlModel :
- public QAbstractItemModel
-{
- public:
- explicit XmlModel(XmlItem *rootItem = 0, QObject *parent = 0);
- explicit XmlModel(XmlItem *rootItem, QAbstractItemModelPrivate& dd, QObject *parent = 0);
- ~XmlModel();
-
- void load(XmlItem *rootItem);
-
- inline int rowCount(const QModelIndex& parent) const;
- inline int columnCount(const QModelIndex& parent) const;
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
-
- QVariant data(const QModelIndex& index, int role) const;
-
- QModelIndex index(int row, int column, const QModelIndex& parent) const;
- QModelIndex parent(const QModelIndex& child) const;
-
- private:
- inline XmlItem *toXmlItem(const QModelIndex& index) const;
-
- XmlItem *rootItem_;
-};
-
-inline XmlItem *XmlModel::toXmlItem(const QModelIndex& parent) const
-{ return !parent.isValid() ? rootItem_ : static_cast<XmlItem *>(parent.internalPointer()); }
-
-inline int XmlModel::rowCount(const QModelIndex& parent) const
-{ if(rootItem_) return toXmlItem(parent)->childs().count(); return 0; }
-
-inline int XmlModel::columnCount(const QModelIndex&) const
-{ return 1; }
-
-#endif // XMLMODEL_H
diff --git a/GScribo/XmlWidget/xmlview.cpp b/GScribo/XmlWidget/xmlview.cpp
deleted file mode 100644
index 70a79b7..0000000
--- a/GScribo/XmlWidget/xmlview.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "xmlview.h"
-
-XmlView::XmlView(QWidget *parent) :
- QTreeView(parent)
-{
- proxy_.setFilterRole(Qt::UserRole);
- proxy_.setDynamicSortFilter(true);
-
- setUniformRowHeights(true);
- setItemDelegate(new XmlDelegate(Qt::UserRole));
- setSelectionMode(QAbstractItemView::ExtendedSelection);
-}
-
-void XmlView::hideAll()
-{
- proxy_.beginResetModel();
-
- XmlItem *child;
- foreach(child, displayedItems_)
- child->hide();
-
- displayedItems_.clear();
- emit resetProperty();
-
- proxy_.endResetModel();
-}
-
-void XmlView::display(QList<XmlItem *> displayedItems, bool addToDisplayedList)
-{
- proxy_.beginResetModel();
-
- if(!addToDisplayedList)
- hideAll();
-
- XmlItem *child;
- foreach(child, displayedItems)
- {
- child->show();
- displayedItems_ << child;
- }
-
- proxy_.endResetModel();
-
- expandAll();
-}
-
-QList<XmlItem *> XmlView::transform(const QModelIndexList& modelIndexList) const
-{
- QList<XmlItem *> selectedItems;
- QModelIndex index;
-
- foreach(index, modelIndexList)
- selectedItems << index.data(Qt::UserRole+2).value<XmlItem *>();
-
- return selectedItems;
-}
-
-void XmlView::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
-{
- QTreeView::selectionChanged(selected, deselected);
-
- if(selected.indexes() == selectedIndexes())
- emit resetSelection();
-
- if(!selectedIndexes().isEmpty())
- {
- QList<XmlItem *> xmlItems;
- if(!selected.isEmpty())
- {
- xmlItems = transform(selected.indexes());
- emit select(xmlItems);
- }
- else
- {
- xmlItems = transform(deselected.indexes());
- emit unselect(xmlItems);
- }
-
- emit loadAttributes(xmlItems.last()->attributes());
- }
- else
- {
- emit resetProperty();
- emit emptySelection();
- }
-
- emit newSelection();
-}
diff --git a/GScribo/XmlWidget/xmlview.h b/GScribo/XmlWidget/xmlview.h
deleted file mode 100644
index fef7386..0000000
--- a/GScribo/XmlWidget/xmlview.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef XMLVIEW_H
-#define XMLVIEW_H
-
-#include <QGraphicsItem>
-#include <QTreeView>
-
-#include "Rendering/regionitem.h"
-#include "selectionproxy.h"
-#include "xmldelegate.h"
-#include "xmlitem.h"
-
-class XmlView :
- public QTreeView
-{
- Q_OBJECT
-
- public:
- explicit XmlView(QWidget *parent = 0);
-
- inline QList<XmlItem *> displayedItems() const;
- void hideAll();
-
- inline QList<XmlItem *> selectedItems() const;
-
- inline void setModel(QAbstractItemModel *model);
-
- protected:
- void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
-
- private:
- QList<XmlItem *> transform(const QModelIndexList& modelIndexList) const;
- void display(QList<XmlItem *> displayedItems, bool addToDisplayedList);
-
- SelectionProxy proxy_;
- QList<XmlItem *> displayedItems_;
-
- public slots:
- inline void display(QList<XmlItem *> displayedItems);
- inline void displayOnly(QList<XmlItem *> displayedItems);
-
- inline void displayAll();
-
- inline void setFilterString(const QString& filterString);
-
- signals:
- void loadAttributes(const XmlAttributes& xmlAttributes);
-
- void select(const QList<XmlItem *>& selectedItems);
- void unselect(const QList<XmlItem *>& unselectedItems);
-
- void newSelection();
- void emptySelection();
-
- void resetSelection();
- void resetProperty();
-};
-
-inline QList<XmlItem *> XmlView::displayedItems() const
-{ return displayedItems_; }
-
-inline void XmlView::display(QList<XmlItem *> displayedItems)
-{ display(displayedItems, true); }
-
-inline void XmlView::displayOnly(QList<XmlItem *> displayedItems)
-{ display(displayedItems, false); }
-
-inline void XmlView::displayAll()
-{ hideAll(); proxy_.displayAll(); }
-
-inline QList<XmlItem *> XmlView::selectedItems() const
-{ return transform(selectedIndexes()); }
-
-inline void XmlView::setFilterString(const QString& filterString)
-{ proxy_.setFilterRegExp(QRegExp(filterString, Qt::CaseSensitive)); proxy_.invalidateFilter(); }
-
-inline void XmlView::setModel(QAbstractItemModel *model)
-{ proxy_.setSourceModel(model); QTreeView::setModel(&proxy_); }
-
-#endif // XMLVIEW_H
diff --git a/GScribo/XmlWidget/xmlwidget.cpp b/GScribo/XmlWidget/xmlwidget.cpp
deleted file mode 100644
index dc24193..0000000
--- a/GScribo/XmlWidget/xmlwidget.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include "xmlwidget.h"
-
-XmlWidget::XmlWidget(QWidget *parent) :
- QSplitter(Qt::Horizontal, parent)
-{
- proxy_.setFilterRegExp(QRegExp("(?:Page|.Region|Line)", Qt::CaseSensitive));
- proxy_.setDynamicSortFilter(true);
- proxy_.setFilterRole(Qt::UserRole);
- proxy_.setSourceModel(&model_);
-
- view_.setModel(&proxy_);
-
- attributes_.setModel(&attributesModel_);
- attributes_.setSelectionMode(QAbstractItemView::NoSelection);
- attributes_.setItemDelegateForColumn(0, new XmlDelegate(Qt::UserRole));
- attributes_.setItemDelegateForColumn(1, new XmlDelegate(Qt::UserRole+1));
-
- addWidget(&view_);
- addWidget(&attributes_);
-
- connect(&view_, SIGNAL(resetProperty()), &attributesModel_, SLOT(reset()));
- connect(&view_, SIGNAL(clicked(QModelIndex)), this, SLOT(loadAttributes(QModelIndex)));
- connect(&view_, SIGNAL(loadAttributes(XmlAttributes)), &attributesModel_, SLOT(load(XmlAttributes)));
-}
-
-void XmlWidget::changeView(XmlItem *rootItem)
-{
- attributesModel_.reset();
-
- model_.load(rootItem);
-
- view_.displayAll();
- view_.expandAll();
-}
diff --git a/GScribo/XmlWidget/xmlwidget.h b/GScribo/XmlWidget/xmlwidget.h
deleted file mode 100644
index 32eca37..0000000
--- a/GScribo/XmlWidget/xmlwidget.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef XMLWIDGET_H
-#define XMLWIDGET_H
-
-#include <QSortFilterProxyModel>
-#include <QTableView>
-#include <QTreeWidget>
-#include <QSplitter>
-#include <QDomElement>
-#include <QWidget>
-
-#include "Rendering/scene.h"
-#include "selectionproxy.h"
-#include "attributesmodel.h"
-#include "variantpointer.h"
-#include "xmldelegate.h"
-#include "xmlmodel.h"
-#include "xmlview.h"
-
-class XmlWidget :
- public QSplitter
-{
- Q_OBJECT
-
- public:
- explicit XmlWidget(QWidget *parent = 0);
-
- inline XmlView *view();
- inline QTableView *attributes();
-
- void changeView(XmlItem *rootItem);
-
- private:
- QSortFilterProxyModel proxy_;
-
- XmlModel model_;
- AttributesModel attributesModel_;
-
- XmlView view_;
- QTableView attributes_;
-
- private slots:
- inline void loadAttributes(const QModelIndex& index);
-};
-
-inline XmlView * XmlWidget::view()
-{ return &view_; }
-
-inline QTableView *XmlWidget::attributes()
-{ return &attributes_; }
-
-inline void XmlWidget::loadAttributes(const QModelIndex& index)
-{ attributesModel_.load(index.data(Qt::UserRole+2).value<XmlItem *>()->attributes()); }
-
-#endif // XMLWIDGET_H
diff --git a/GScribo/aboutdialog.h b/GScribo/aboutdialog.h
deleted file mode 100644
index fa91ada..0000000
--- a/GScribo/aboutdialog.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef ABOUTDIALOG_H
-#define ABOUTDIALOG_H
-
-#include <QDialog>
-
-#include "ui_aboutdialog.h"
-
-namespace Ui
-{
- class AboutDialog;
-}
-
-class AboutDialog :
- public QDialog
-{
- public:
- explicit AboutDialog(QWidget *parent = 0) : QDialog(parent, Qt::Dialog)
- { ui = new Ui::AboutDialog; ui->setupUi(this); }
- ~AboutDialog() { delete ui; }
-
- private:
- Ui::AboutDialog *ui;
-};
-
-#endif // ABOUTDIALOG_H
diff --git a/GScribo/aboutdialog.ui b/GScribo/aboutdialog.ui
deleted file mode 100644
index d16b076..0000000
--- a/GScribo/aboutdialog.ui
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>AboutDialog</class>
- <widget class="QDialog" name="AboutDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>557</width>
- <height>390</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>557</width>
- <height>390</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>557</width>
- <height>390</height>
- </size>
- </property>
- <property name="windowTitle">
- <string>About</string>
- </property>
- <property name="windowIcon">
- <iconset>
- <normaloff>:/icons/shared/icons/olena_smaller.jpg</normaloff>:/icons/shared/icons/olena_smaller.jpg</iconset>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string/>
- </property>
- <property name="pixmap">
- <pixmap>:/icons/shared/icons/olena_smaller.jpg</pixmap>
- </property>
- <property name="scaledContents">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_2">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:12pt; font-weight:600;">Document Image Analysis Tool</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:12pt; font-weight:600;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans';">This project is powered by </span><span style=" font-family:'DejaVu Sans'; font-weight:600; font-style:italic;">Milena</span><span style=" font-family:'DejaVu Sans';">, a generic image processing library.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans';">It is part of </span><span style=" font-family:'DejaVu Sans'; font-weight:600; font-style:italic;">Olena</span><span style=" font-family:'DejaVu Sans';">, an Image Processing Platform and its module </span><span style=" font-family:'DejaVu Sans'; font-weight:600; font-style:italic;">Scribo</span><span style=" font-family:'DejaVu Sans';">, a set of tools for Document Image Analysis.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
-<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://olena.lrde.epita.fr"><span style=" font-family:'DejaVu Sans'; text-decoration: underline; color:#0057ae;">http://olena.lrde.epita.fr</span></a></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:8pt;">Thanks to Arthur Crépin-Leblond, Samuel Da Mota, Loic Denuziere, Jérôme Galtier, Florent d'Halluin, Alex Hamelin, Damien Lefortier, Vincent Ordy, Guillaume Sadegh and Warren Seine for their contribution.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:8pt;"></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:8pt;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:7pt;">This application has been developed in the context of the SCRIBO project of the Free Software Thematic Group, part of the &quot;System@tic Paris-Région&quot; Cluster (France). This project is partially funded by the French Government, its economic development agencies, and by the Paris-Région institutions.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:7pt;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:7pt;">Copyright (C) 2012, 2013 EPITA Research and Development Laboratory (LRDE)</span></p></body></html></string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="standardButtons">
- <set>QDialogButtonBox::Ok</set>
- </property>
- <property name="centerButtons">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>AboutDialog</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>281</x>
- <y>391</y>
- </hint>
- <hint type="destinationlabel">
- <x>240</x>
- <y>203</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/GScribo/configs.h b/GScribo/configs.h
deleted file mode 100644
index c6aac68..0000000
--- a/GScribo/configs.h
+++ /dev/null
@@ -1,134 +0,0 @@
-#ifndef CONFIGS_H
-#define CONFIGS_H
-
-#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-#include <QSettings>
-#include <QDir>
-#include <QDebug>
-
-#include "region.h"
-
-class Configs :
- public QSettings
-{
- public:
- inline static Configs *getInstance();
-
- inline bool preprocessingSubsample();
- inline void setPreprocessingSubsample(bool b);
-
- inline bool preprocessingRemoveBg();
- inline void setPreprocessingRemoveBg(bool b);
-
- inline bool preprocessingDeskew();
- inline void setPreprocessingDeskew(bool b);
-
- inline bool preprocessingRemoveNoise();
- inline void setPreprocessingRemoveNoise(bool b);
-
- inline int preprocessingBinAlgo();
- inline void setPreprocessingBinAlgo(int algo);
-
- inline int segmentationFindSeps();
- inline void setSegmentationFindSeps(int seps);
-
- inline bool ocrEnabled();
- inline void setOcrEnabled(bool b);
-
- inline QString ocrLanguage();
- inline void setOcrLanguage(const QString& lang);
-
- inline bool generalSaveXmlEnabled();
- inline void setGeneralSaveXmlEnabled(bool b);
-
- inline bool generalSaveXmlSameDir();
- inline void setGeneralSaveXmlSameDir(bool b);
-
- inline bool generalSaveXmlCustomDir();
- inline void setGeneralSaveXmlCustomDir(bool b);
-
- inline QString generalSaveXmlCustomDirPath();
- inline void setGeneralSaveXmlCustomDirPath(const QString& path);
-
- private:
- explicit Configs() : QSettings("olena-scribo", "gui") { }
-};
-
-inline Configs *Configs::getInstance()
-{ static Configs *conf = new Configs(); return conf; }
-
-inline bool Configs::preprocessingSubsample()
-{ return value("preprocessing/subsample", false).toBool(); }
-
-inline void Configs::setPreprocessingSubsample(bool b)
-{ setValue("preprocessing/subsample", b); }
-
-inline bool Configs::preprocessingRemoveBg()
-{ return value("preprocessing/remove_bg", false).toBool(); }
-
-inline void Configs::setPreprocessingRemoveBg(bool b)
-{ setValue("preprocessing/remove_bg", b); }
-
-inline bool Configs::preprocessingDeskew()
-{ return value("preprocessing/deskew", false).toBool(); }
-
-inline void Configs::setPreprocessingDeskew(bool b)
-{ setValue("preprocessing/deskew", b); }
-
-inline bool Configs::preprocessingRemoveNoise()
-{ return value("preprocessing/remove_noise", true).toBool(); }
-
-inline void Configs::setPreprocessingRemoveNoise(bool b)
-{ setValue("preprocessing/remove_noise", b); }
-
-inline int Configs::preprocessingBinAlgo()
-{ return value("preprocessing/bin_algo",
- scribo::toolchain::internal::SauvolaMs).toInt(); }
-
-inline void Configs::setPreprocessingBinAlgo(int algo)
-{ setValue("preprocessing/bin_algo", algo); }
-
-inline int Configs::segmentationFindSeps()
-{ return value("segmentation/find_seps", Separator::Both).toInt(); }
-
-inline void Configs::setSegmentationFindSeps(int seps)
-{ setValue("segmentation/find_seps", seps); }
-
-inline bool Configs::ocrEnabled()
-{ return value("ocr/enabled", true).toBool(); }
-
-inline void Configs::setOcrEnabled(bool b)
-{ setValue("ocr/enabled", b); }
-
-inline QString Configs::ocrLanguage()
-{ return value("ocr/language", 0).toString(); }
-
-inline void Configs::setOcrLanguage(const QString& lang)
-{ setValue("ocr/language", lang); }
-
-inline bool Configs::generalSaveXmlEnabled()
-{ return value("general/save_xml/enabled", true).toBool(); }
-
-inline void Configs::setGeneralSaveXmlEnabled(bool b)
-{ setValue("general/save_xml/enabled", b); }
-
-inline bool Configs::generalSaveXmlSameDir()
-{ return value("general/save_xml/same_dir", true).toBool(); }
-
-inline void Configs::setGeneralSaveXmlSameDir(bool b)
-{ setValue("general/save_xml/same_dir", b); }
-
-inline bool Configs::generalSaveXmlCustomDir()
-{ return value("general/save_xml/custom_dir", false).toBool(); }
-
-inline void Configs::setGeneralSaveXmlCustomDir(bool b)
-{ setValue("general/save_xml/custom_dir", b); }
-
-inline QString Configs::generalSaveXmlCustomDirPath()
-{ return value("general/save_xml/custom_dir_path",
- QDir::tempPath()).toString(); }
-
-inline void Configs::setGeneralSaveXmlCustomDirPath(const QString& path)
-{ setValue("general/save_xml/custom_dir_path", path); }
-
-#endif // CONFIGS_H
diff --git a/GScribo/dir.h b/GScribo/dir.h
deleted file mode 100644
index a6c036b..0000000
--- a/GScribo/dir.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef DIR_H
-#define DIR_H
-
-#define SCRIBO_LOCAL_DEMODIR "/lrde/home/stage/froger_a/olena/_build/scribo/demo"
-#define SCRIBO_PREFIX_BINDIR "/usr/local/bin"
-
-#endif // DIR_H
diff --git a/GScribo/dockwidget.h b/GScribo/dockwidget.h
deleted file mode 100644
index a1a2b40..0000000
--- a/GScribo/dockwidget.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef DOCKWIDGET_H
-#define DOCKWIDGET_H
-
-#include <QDockWidget>
-
-class DockWidget :
- public QDockWidget
-{
- Q_OBJECT
-
- public:
- explicit DockWidget(QWidget *parent = 0, Qt::WindowFlags flags = 0) : QDockWidget(parent, flags) { }
- explicit DockWidget(const QString& title, QWidget *parent = 0, Qt::WindowFlags flags = 0) : QDockWidget(title, parent, flags) { }
-
- public slots:
- inline void switchVisibility();
-};
-
-inline void DockWidget::switchVisibility()
-{ setVisible(!isVisible()); }
-
-#endif // DOCKWIDGET_H
diff --git a/GScribo/main.cpp b/GScribo/main.cpp
deleted file mode 100644
index d47ec16..0000000
--- a/GScribo/main.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#undef MLN_WO_GLOBAL_VARS
-
-#include <scribo/make/debug_filename.hh>
-#include <mln/labeling/colorize.hh>
-#include <mln/io/magick/load.hh>
-#include <mln/literal/colors.hh>
-#include <mln/debug/filename.hh>
-#include <QtGui/QApplication>
-#include <mln/math/pi.hh>
-
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
- Magick::InitializeMagick(*argv);
- // On Linux, we NEED to use the raster graphics system.
- // Linux don't really support openGL graphics system (the default one on Linux).
- QApplication::setGraphicsSystem("raster");
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
-}
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
deleted file mode 100644
index 4bb5c74..0000000
--- a/GScribo/mainwindow.cpp
+++ /dev/null
@@ -1,415 +0,0 @@
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
-{
- ui->setupUi(this);
-
- setWindowTitle(tr("GScribo"));
- showMaximized();
-
- initGraphicsRegion();
- initDialogsWidget();
- initXmlWidget();
- initRegionWidget();
- initPageWidget();
- initMenuBar();
-
- // Told the left dock widget (here the pages widget and the region widget) to fill the bottom left corner.
- setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
- // Merge the region and pages widget in one tab (pages widget over the region widget).
- tabifyDockWidget(&dockRegion_, &dockPages_);
-
- connectWidgets();
-}
-
-MainWindow::~MainWindow()
-{
- delete preferencesDialog_;
- delete aboutDialog_;
- delete progressDialog_;
- delete ui;
-}
-
-void MainWindow::changeEvent(QEvent *e)
-{
- QMainWindow::changeEvent(e);
- switch (e->type())
- {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-void MainWindow::initGraphicsRegion()
-{
- graphicsView_.setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
- graphicsView_.setScene(&scene_);
-
- setCentralWidget(&graphicsView_);
-}
-
-void MainWindow::initDialogsWidget()
-{
- preferencesDialog_ = new PreferencesDialog(this);
- aboutDialog_ = new AboutDialog(this);
- progressDialog_ = new ProgressDialog(this);
-}
-
-void MainWindow::initPageWidget()
-{
- dockPages_.setWindowTitle("Pages");
- dockPages_.setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
- dockPages_.setWidget(&pagesWidget_);
- dockPages_.setMinimumWidth(190);
-
- addDockWidget(Qt::LeftDockWidgetArea, &dockPages_);
-}
-
-void MainWindow::initRegionWidget()
-{
- dockRegion_.setWindowTitle("Regions");
- dockRegion_.setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
- dockRegion_.setWidget(®ionWidget_);
-
- addDockWidget(Qt::LeftDockWidgetArea, &dockRegion_);
-}
-
-void MainWindow::initXmlWidget()
-{
- dockXml_.setWindowTitle("Xml");
- dockXml_.setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
- dockXml_.setWidget(&xmlWidget_);
-
- addDockWidget(Qt::BottomDockWidgetArea, &dockXml_);
- dockXml_.setVisible(false);
-}
-
-void MainWindow::initMenuBar()
-{
- QMenu *menuFile = ui->menuBar->addMenu(tr("File"));
-
- QAction *open = menuFile->addAction(tr("Open"));
- connect(open, SIGNAL(triggered()), this, SLOT(onOpen()));
-
- segment_ = menuFile->addAction(tr("Segment"));
- segment_->setEnabled(false);
- connect(segment_, SIGNAL(triggered()), this, SLOT(onSegment()));
-
- menuFile->addSeparator();
-
- previewPrinting_ = menuFile->addAction(tr("Preview Printing"));
- previewPrinting_->setEnabled(false);
- connect(previewPrinting_, SIGNAL(triggered()), this, SLOT(onPreviewPrint()));
-
- print_ = menuFile->addAction(tr("Print"));
- print_->setEnabled(false);
- connect(print_, SIGNAL(triggered()), this, SLOT(onPrint()));
-
- menuFile->addSeparator();
-
- export_ = menuFile->addAction(tr("Exportation"));
- export_->setEnabled(false);
- connect(export_, SIGNAL(triggered()), this, SLOT(onExportation()));
-
- menuFile->addSeparator();
-
- QAction *quit = menuFile->addAction(tr("Quit"));
- connect(quit, SIGNAL(triggered()), this, SLOT(close()));
-
- QMenu *menuAreas = ui->menuBar->addMenu(tr("Areas"));
-
- QAction *page = menuAreas->addAction(tr("Page"));
- page->setCheckable(true);
- page->setChecked(true);
- connect(page, SIGNAL(triggered()), &dockPages_, SLOT(switchVisibility()));
-
- QAction *region = menuAreas->addAction(tr("Region"));
- region->setCheckable(true);
- region->setChecked(true);
- connect(region, SIGNAL(triggered()), &dockRegion_, SLOT(switchVisibility()));
-
- QAction *xml = menuAreas->addAction(tr("Xml"));
- xml->setCheckable(true);
- xml->setChecked(false);
- connect(xml, SIGNAL(triggered()), &dockXml_, SLOT(switchVisibility()));
-
- QAction *preferences = ui->menuBar->addAction(tr("Preferences"));
- connect(preferences, SIGNAL(triggered()), this, SLOT(onPreferences()));
-
- QAction *about = ui->menuBar->addAction(tr("About"));
- connect(about, SIGNAL(triggered()), this, SLOT(onAbout()));
-}
-
-void MainWindow::setActionsEnabled(bool isSegmented)
-{
- segment_->setEnabled(!isSegmented);
- print_->setEnabled(isSegmented);
- previewPrinting_->setEnabled(isSegmented);
-}
-
-void MainWindow::disableActions()
-{
- segment_->setEnabled(false);
- print_->setEnabled(false);
- previewPrinting_->setEnabled(false);
- export_->setEnabled(false);
-}
-
-void MainWindow::connectWidgets()
-{
- // Each time the scene rect change (when a new picture is loaded), we fit the scene background rectangle in the view.
- connect(&scene_, SIGNAL(sceneRectChanged(QRectF)), &graphicsView_, SLOT(fitInView(QRectF)));
- // When dragging with right click, disable selection.
- connect(&graphicsView_, SIGNAL(beginDrag()), &scene_, SLOT(disableSelection()));
- connect(&graphicsView_, SIGNAL(endDrag()), &scene_, SLOT(enableSelection()));
-
- // If double click on a picture of the page widget -> draw it on background scene.
- connect(&pagesWidget_, SIGNAL(imageSelectionned(QString)), this, SLOT(onFileChanged(QString)));
-
- // Connect the scene to the xml widget and vice versa.
- connect(&scene_, SIGNAL(newSelection(QList<RegionItem*>)), this, SLOT(onRegionSelection(QList<RegionItem*>)));
- connect(xmlWidget_.view(), SIGNAL(select(QList<XmlItem*>)), this, SLOT(onXmlSelect(QList<XmlItem*>)));
- connect(xmlWidget_.view(), SIGNAL(unselect(QList<XmlItem*>)), this, SLOT(onXmlUnselect(QList<XmlItem*>)));
- connect(xmlWidget_.view(), SIGNAL(emptySelection()), &scene_, SLOT(selectBase()));
- connect(xmlWidget_.view(), SIGNAL(resetSelection()), &scene_, SLOT(clearSelection()));
-
- // Connect the scene with the region widget.
- connect(®ionWidget_, SIGNAL(checkStateChanged(GraphicsRegion::Id,bool)), &scene_, SLOT(setVisible(GraphicsRegion::Id,bool)));
-
- // Connect the xml widget with the region widget.
- connect(®ionWidget_, SIGNAL(checkStateChanged(QString)), xmlWidget_.view(), SLOT(setFilterString(QString)));
-
- connect(&runner_, SIGNAL(progress()), progressDialog_, SLOT(run()));
- connect(&runner_, SIGNAL(new_progress_max_value(int)), progressDialog_, SLOT(setMaximum(int)));
- connect(&runner_, SIGNAL(new_progress_label(QString)), progressDialog_, SLOT(setLabelText(QString)));
- connect(&runner_, SIGNAL(finished()), progressDialog_, SLOT(close()));
- connect(&runner_, SIGNAL(xml_saved(QString)), this, SLOT(onXmlSaved(QString)));
-}
-
-void MainWindow::onOpen()
-{
- QStringList paths = QFileDialog::getOpenFileNames(this, "Open Image(s)", QDir::homePath(),
- "Images (*.png *.jpg *.ppm *.bmp)");
- setWindowTitle(tr("GScribo"));
-
- if(paths.count() > 0)
- {
- QStringList filenames = pagesWidget_.filenames();
- QString path;
-
- int counter = 0;
- bool isContained;
- // Check for an image not already added to the page widget.
- do
- {
- path = paths[counter];
- counter++;
- isContained = filenames.contains(path);
- } while(isContained && counter < paths.count());
-
- if(!isContained)
- {
- pagesWidget_.addPicture(path, QPixmap(path));
-
- // If more than one file, we store it in the page widget.
- for(int i = counter; i < paths.count(); i++)
- {
- // Check if the page widget contains the image.
- if(!filenames.contains(paths[i]))
- {
- path = paths[i];
- pagesWidget_.addPicture(path, QPixmap(path));
- }
- }
-
- pagesWidget_.setCurrentRow(0);
- pagesWidget_.scrollToTop();
- }
-
- // Change current scene.
- onFileChanged(path);
- }
-}
-
-void MainWindow::onSegment()
-{
- QStringList filenames;
-
- filenames << scene_.backgroundPath();
-
- // Run segmentation of page(s).
- progressDialog_->reset();
- runner_.start_demat(filenames);
-}
-
-void MainWindow::onPreviewPrint()
-{
- QPrinter printer(QPrinter::HighResolution);
- printer.setPaperSize(QPrinter::A4);
- printer.setResolution(300);
-
- QPrintPreviewDialog preview(&printer, this);
- connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printScene(QPrinter*)));
-
- preview.exec();
-}
-
-void MainWindow::onPrint()
-{
- QPrinter printer(QPrinter::HighResolution);
- printer.setPaperSize(QPrinter::A4);
- printer.setResolution(300);
-
- QPrintDialog dialog(&printer, this);
- dialog.setWindowTitle("Print Document");
-
- if(dialog.exec() != QDialog::Accepted)
- return;
-
- printScene(&printer);
-}
-
-void MainWindow::printScene(QPrinter *printer)
-{
- QPainter painter(printer);
- QStyleOptionGraphicsItem options;
-
- scene_.backgroundPixmap()->paint(&painter, &options, 0);
-
- // Paint backwards items first.
- printItems(&painter, scene_.root()->childsFrom(GraphicsRegion::TextRegion), &options);
- printItems(&painter, scene_.root()->childsFrom(GraphicsRegion::Image), &options);
-
- for(int i = GraphicsRegion::Line; i < GraphicsRegion::Image; i++)
- printItems(&painter, scene_.root()->childsFrom(static_cast<GraphicsRegion::Id>(i)), &options);
-
- for(int i = GraphicsRegion::Noise; i <= GraphicsRegion::Meanline; i++)
- printItems(&painter, scene_.root()->childsFrom(static_cast<GraphicsRegion::Id>(i)), &options);
-}
-
-void MainWindow::printItems(QPainter *painter, const QList<QGraphicsItem *>& items, QStyleOptionGraphicsItem *options)
-{
- foreach(QGraphicsItem *child, items)
- {
- if(child->isVisible())
- {
- QRect viewport = scene_.backgroundPixmap()->mapRectFromItem(child, child->boundingRect()).toRect();
- painter->translate(abs(child->boundingRect().x() - viewport.x()),
- abs(child->boundingRect().y() - viewport.y()));
- child->paint(painter, options);
- painter->resetTransform();
- }
- }
-}
-
-void MainWindow::onExportation()
-{
- QMessageBox messageBox(this);
- messageBox.setWindowTitle("Information");
- messageBox.setText("This feature is not available yet");
- messageBox.exec();
- return;
-
- QFileInfo fileInfo(scene_.backgroundPath());
- QString outputSuggestion = fileInfo.baseName() + ".pdf";
- QString output = QFileDialog::getSaveFileName(0, tr("Export Document As ..."), outputSuggestion,
- tr("PDF (*.pdf);; HTML (*.html *.htm"));
-
- if(!output.isEmpty())
- {
- progressDialog_->reset();
- runner_.start_export(scene_.backgroundPath(), xml_.filename(), output);
- }
-}
-
-void MainWindow::onXmlSaved(const QString& filename)
-{
- xml_.load(filename);
- xmlWidget_.changeView(xml_.xmlItem());
- scene_.setRoot(xml_.graphicsItem());
-
- setActionsEnabled(true);
- export_->setEnabled(xml_.recognized());
-}
-
-void MainWindow::onFileChanged(const QString& filename)
-{
- // If it's not the current scene.
- if(scene_.backgroundPath() != filename)
- {
- QString xmlPath = Xml::getPath(filename);
-
- if(filename.isEmpty())
- {
- xmlPath = QString();
- disableActions();
- }
- // Check if the xml file already exists.
- else if(!QFile(xmlPath).exists())
- {
- xmlPath = QString();
- setActionsEnabled(false);
- }
- else
- setActionsEnabled(true);
-
- xml_.load(xmlPath);
- scene_.changeScene(filename, xml_.graphicsItem());
- xmlWidget_.changeView(xml_.xmlItem());
- export_->setEnabled(xml_.recognized());
- }
-}
-
-void MainWindow::onRegionSelection(QList<RegionItem *> regionItems)
-{
- if(!regionItems.isEmpty())
- xmlWidget_.view()->displayOnly(toXmlItems(regionItems));
- else
- {
- xmlWidget_.view()->reset();
- xmlWidget_.view()->displayAll();
- xmlWidget_.view()->expandAll();
- }
-}
-
-void MainWindow::onXmlChangeSelection(QList<XmlItem *> xmlItems, bool select)
-{
- QList<RegionItem *> regionItems = toRegionItems(xmlItems);
-
- if(!regionItems.isEmpty())
- {
- if(select)
- scene_.select(regionItems);
- else
- scene_.unselect(regionItems);
- }
-}
-
-QList<RegionItem *> MainWindow::toRegionItems(QList<XmlItem *> xmlItems) const
-{
- QList<RegionItem *> regionItems;
- XmlItem *child;
- foreach(child, xmlItems)
- {
- if(child->regionItem())
- regionItems << child->regionItem();
- }
-
- return regionItems;
-}
-
-QList<XmlItem *> MainWindow::toXmlItems(QList<RegionItem *> regionItems) const
-{
- QList<XmlItem *> xmlItems;
- RegionItem *child;
- foreach(child, regionItems)
- xmlItems << child->xmlItem();
-
- return xmlItems;
-}
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
deleted file mode 100644
index 0637f44..0000000
--- a/GScribo/mainwindow.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QPrintPreviewDialog>
-#include <QGraphicsView>
-#include <QPrintDialog>
-#include <QMainWindow>
-#include <QHBoxLayout>
-#include <QDockWidget>
-#include <QFileDialog>
-#include <QGroupBox>
-#include <QPrinter>
-
-#include "Preferences/preferencesdialog.h"
-#include "Processing/progressdialog.h"
-#include "PagesWidget/pageswidget.h"
-#include "Rendering/graphicsview.h"
-#include "XmlWidget/xmlwidget.h"
-#include "Processing/runner.h"
-#include "Rendering/scene.h"
-#include "regionwidget.h"
-#include "aboutdialog.h"
-#include "dockwidget.h"
-#include "xml.h"
-
-namespace Ui
-{
- class MainWindow;
-}
-
-class MainWindow:
- public QMainWindow
-{
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = 0);
- ~MainWindow();
-
- protected:
- void changeEvent(QEvent *e);
-
- private:
- void initGraphicsRegion();
- void initDialogsWidget();
- void initPageWidget();
- void initRegionWidget();
- void initXmlWidget();
- void initMenuBar();
- void connectWidgets();
-
- void setActionsEnabled(bool isSegmented);
- void disableActions();
-
- void printItems(QPainter *painter, const QList<QGraphicsItem *>& items, QStyleOptionGraphicsItem *options);
-
- Xml processTmpXml(const QString& filename) const;
- QList<RegionItem *> toRegionItems(QList<XmlItem *> regionItems) const;
- QList<XmlItem *> toXmlItems(QList<RegionItem *> xmlItems) const;
-
- Ui::MainWindow *ui;
-
- DockWidget dockRegion_;
- DockWidget dockPages_;
- DockWidget dockXml_;
-
- GraphicsView graphicsView_;
- Scene scene_;
-
- PagesWidget pagesWidget_;
- RegionWidget regionWidget_;
-
- AboutDialog *aboutDialog_;
- ProgressDialog *progressDialog_;
- PreferencesDialog *preferencesDialog_;
-
- XmlWidget xmlWidget_;
- Xml xml_;
- Runner runner_;
-
- QAction *segment_;
- QAction *previewPrinting_;
- QAction *print_;
- QAction *export_;
-
- public slots:
- void printScene(QPrinter *printer);
-
- private slots:
- void onOpen();
- void onSegment();
- void onPreviewPrint();
- void onPrint();
- void onExportation();
- inline void onPreferences();
- inline void onAbout();
-
- void onXmlSaved(const QString& filename);
- void onFileChanged(const QString& filename);
-
- void onRegionSelection(QList<RegionItem *> regionItems);
-
- void onXmlChangeSelection(QList<XmlItem *> xmlItems, bool select);
- inline void onXmlSelect(QList<XmlItem *> xmlItems);
- inline void onXmlUnselect(QList<XmlItem *> xmlItems);
-};
-
-inline void MainWindow::onPreferences()
-{ preferencesDialog_->show(); }
-
-inline void MainWindow::onAbout()
-{ aboutDialog_->show(); }
-
-inline void MainWindow::onXmlSelect(QList<XmlItem *> xmlItems)
-{ onXmlChangeSelection(xmlItems, true); }
-
-inline void MainWindow::onXmlUnselect(QList<XmlItem *> xmlItems)
-{ onXmlChangeSelection(xmlItems, false); }
-
-#endif // MAINWINDOW_H
diff --git a/GScribo/mainwindow.ui b/GScribo/mainwindow.ui
deleted file mode 100644
index 0512da9..0000000
--- a/GScribo/mainwindow.ui
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>800</width>
- <height>600</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>MainWindow</string>
- </property>
- <widget class="QWidget" name="centralWidget">
- <property name="enabled">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QMenuBar" name="menuBar">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>800</width>
- <height>21</height>
- </rect>
- </property>
- </widget>
- </widget>
- <layoutdefault spacing="6" margin="11"/>
- <resources/>
- <connections/>
-</ui>
diff --git a/GScribo/region.h b/GScribo/region.h
deleted file mode 100644
index ee8d836..0000000
--- a/GScribo/region.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef REGION_H
-#define REGION_H
-
-#include <QColor>
-
-namespace GraphicsRegion
-{
- // WARNING : The order is important.
- enum Id
- {
- TextRegion,
- Line,
-
- VerticalSeparator,
- HorizontalSeparator,
- WhiteSpaceSeparator,
-
- Image,
- Noise,
- Table,
- Maths,
- Graphic,
- Chart,
-
- Baseline,
- Meanline,
-
- Text,
- Separators,
- Miscellaneous,
- Typology,
-
- None
- };
-
- struct Data
- {
- QColor color;
- QString name;
- GraphicsRegion::Id region;
- GraphicsRegion::Id parent;
- int zValue;
- };
-}
-
-namespace Separator
-{
- enum FindSeparator
- {
- Lines,
- Whitespaces,
- Both
- };
-}
-
-#endif // REGION_H
diff --git a/GScribo/regionwidget.cpp b/GScribo/regionwidget.cpp
deleted file mode 100644
index 5d1a95e..0000000
--- a/GScribo/regionwidget.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "regionwidget.h"
-
-RegionWidget::RegionWidget(QWidget *parent) :
- QTreeWidget(parent)
-{
- setHeaderHidden(true);
- setSelectionMode(QAbstractItemView::NoSelection);
-
- addTopLevelItem(createRoot("Text", GraphicsRegion::Text, GraphicsRegion::TextRegion, GraphicsRegion::Line));
- addTopLevelItem(createRoot("Typological Lines", GraphicsRegion::Typology, GraphicsRegion::Baseline, GraphicsRegion::Meanline));
- addTopLevelItem(createRoot("Separators", GraphicsRegion::Separators, GraphicsRegion::VerticalSeparator, GraphicsRegion::WhiteSpaceSeparator));
- addTopLevelItem(createRoot("Miscellaneous", GraphicsRegion::Miscellaneous, GraphicsRegion::Image, GraphicsRegion::Chart));
-
- expandAll();
-
- connect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(checkStateChanged(QTreeWidgetItem*)));
-}
-
-QTreeWidgetItem *RegionWidget::createRoot(const QString& text, const GraphicsRegion::Id& region, const GraphicsRegion::Id& begin, const GraphicsRegion::Id& end)
-{
- // Create root.
- QTreeWidgetItem *rootItem = createItem(text, region);
-
- // Fill root with corresponding childs.
- for(int region_ = begin; region_ <= end; region_++)
- fillRoot(rootItem, static_cast<GraphicsRegion::Id>(region_));
-
- return rootItem;
-}
-
-QTreeWidgetItem *RegionWidget::createItem(const QString& text, const GraphicsRegion::Id& region, const QColor& color)
-{
- QTreeWidgetItem *item = new QTreeWidgetItem;
- item->setText(0, text);
- item->setCheckState(0, Qt::Checked);
- item->setBackgroundColor(0, color);
- // Store graphical id in the object to recognize it afterward.
- item->setData(0, Qt::UserRole, static_cast<int>(region));
-
- return item;
-}
-
-void RegionWidget::checkStateChanged(QTreeWidgetItem *item)
-{
- // If it's a root item, go to childs.
- if(item->childCount() != 0)
- {
- QTreeWidgetItem *child;
- for(int i = 0; i < item->childCount(); i++)
- {
- child = item->child(i);
- child->setCheckState(0, item->checkState(0));
- }
- }
- else
- {
- if(item->checkState(0) == Qt::Checked)
- {
- filterString_.append('|' + item->text(0));
- emit checkStateChanged(static_cast<GraphicsRegion::Id>(item->data(0, Qt::UserRole).toInt()), true);
- }
- else
- {
- filterString_.remove('|' + item->text(0), Qt::CaseSensitive);
- emit checkStateChanged(static_cast<GraphicsRegion::Id>(item->data(0, Qt::UserRole).toInt()), false);
- }
-
- //emit checkStateChanged(filterString_);
- }
-}
diff --git a/GScribo/regionwidget.h b/GScribo/regionwidget.h
deleted file mode 100644
index aaa6eda..0000000
--- a/GScribo/regionwidget.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef REGIONWIDGET_H
-#define REGIONWIDGET_H
-
-#include <QTreeWidget>
-#include <QLabel>
-
-#include "xml.h"
-
-class RegionWidget :
- public QTreeWidget
-{
- Q_OBJECT
-
- public:
- explicit RegionWidget(QWidget *parent = 0);
-
- inline QString filterString() const;
-
- private:
- QTreeWidgetItem *createRoot(const QString& text, const GraphicsRegion::Id& region, const GraphicsRegion::Id& begin, const GraphicsRegion::Id& end);
- QTreeWidgetItem *createItem(const QString& text, const GraphicsRegion::Id& region, const QColor& color = QColor::fromRgb(255, 255, 255));
- inline void fillRoot(QTreeWidgetItem *rootItem, const GraphicsRegion::Id& region);
-
- QString filterString_;
-
- private slots:
- void checkStateChanged(QTreeWidgetItem *item);
-
- signals:
- void checkStateChanged(const GraphicsRegion::Id& region, bool checked);
- void checkStateChanged(const QString& filterString);
-};
-
-inline void RegionWidget::fillRoot(QTreeWidgetItem *rootItem, const GraphicsRegion::Id& region)
-{ GraphicsRegion::Data data = Xml::dataFromRegion(region); filterString_.append('|' + data.name); rootItem->addChild(createItem(data.name, region, data.color)); }
-
-inline QString RegionWidget::filterString() const
-{ return filterString_.right(filterString_.count()-1); }
-
-#endif // REGIONWIDGET_H
diff --git a/GScribo/variantpointer.h b/GScribo/variantpointer.h
deleted file mode 100644
index a11072c..0000000
--- a/GScribo/variantpointer.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef VARIANTPOINTER_H
-#define VARIANTPOINTER_H
-
-#include <QVariant>
-
-template<typename T> class VariantPointer
-{
- public:
- static inline QVariant toQVariant(T *pointer)
- { return QVariant::fromValue(static_cast<void *>(pointer)); }
-
- static inline T *fromQVariant(const QVariant& variant)
- { return static_cast<T *>(variant.value<void *>()); }
-
- private:
- VariantPointer() { }
-};
-
-#endif // VARIANTPOINTER_H
diff --git a/GScribo/xml.cpp b/GScribo/xml.cpp
deleted file mode 100644
index 9b0334d..0000000
--- a/GScribo/xml.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-#include "xml.h"
-
-Xml::Xml(const QString& filename)
-{
- load(filename);
-}
-
-QString Xml::getPath(const QString& filename)
-{
- Configs *const configs = Configs::getInstance();
-
- QString xmlPath = filename;
-
- // Get xml filename from image path.
- xmlPath.remove(0, xmlPath.lastIndexOf('/')+1);
- int pos = xmlPath.lastIndexOf('.');
- xmlPath.remove(pos, xmlPath.length()-pos);
- xmlPath += "_gui.xml";
-
- return configs->generalSaveXmlCustomDirPath() + "/" + xmlPath;
-}
-
-void Xml::isRecognized(const QDomElement& textElement)
-{
- QDomElement lineElement = textElement.firstChild().nextSiblingElement("Line");
-
- // Check if the attributes "text" exists in the attributes of line in the xml file.
- isRecognized_ = lineElement.attributeNode("text").isNull() ? false : true;
-}
-
-void Xml::load(const QString& filename)
-{
- if(filename.isEmpty())
- {
- xmlItem_ = 0;
- graphicsItem_ = 0;
- filename_ = QString();
- isRecognized_ = false;
- return;
- }
-
- // Reset graphic and tree items;
- xmlItem_ = new XmlItem;
- graphicsItem_ = new RootGraphicsItem(13);
- filename_ = getPath(filename);
-
- QFile xmlFile(filename);
- xmlFile.open(QIODevice::ReadOnly);
-
- // Fill new xml tree.
- xml_.clear();
- xml_.setContent(&xmlFile);
-
- xmlFile.close();
-
- QDomElement root = xml_.documentElement();
- xmlItem_->load(root);
- xmlItem_->show();
-
- root = root.firstChild().toElement();
- XmlItem *parentTreeItem = init(root, xmlItem_);
-
- // Run through the xml file structure by structure.
- root = root.nextSibling().firstChild().toElement();
- // Check if the xml file has been recognized by the ocr or not.
- isRecognized(root);
-
- processNode(root, datas_[0], parentTreeItem);
- for(int i = 2; i < 11; i++)
- processNode(root.nextSiblingElement(datas_[i].name), datas_[i], parentTreeItem);
-}
-
-XmlItem *Xml::init(const QDomElement& root, XmlItem *rootTreeItem)
-{
- XmlItem *metadataItem = new XmlItem(root, rootTreeItem);
-
- XmlItem *contentItem = 0;
-
- // Run through "METADATA" node and subnodes.
- QDomElement node = root.firstChild().toElement();
- while(!node.isNull())
- {
- contentItem = new XmlItem(node, metadataItem, contentItem);
- node = node.nextSibling().toElement();
- }
-
- // Add "PAGE" root node and return it.
- metadataItem = new XmlItem(root.nextSibling().toElement(), rootTreeItem, metadataItem);
- metadataItem->show();
-
- return metadataItem;
-}
-
-void Xml::processNode(const QDomElement& root, const GraphicsRegion::Data& data, XmlItem *pageItem)
-{
- if(!root.isNull())
- {
- // Create corresponding tree item.
- XmlItem *regionItem = new XmlItem(root, pageItem);
-
- QDomElement node = root.firstChild().toElement();
- XmlItem *coordsItem = new XmlItem(node, regionItem);
-
- QPolygon polygon;
- XmlItem *pointItem = 0;
- QString x, y;
-
- // Run through all points data.
- node = node.firstChild().toElement();
- while(!node.isNull())
- {
- x = node.attribute("x", "null");
- y = node.attribute("y", "null");
-
- pointItem = new XmlItem(node, coordsItem, pointItem);
-
- polygon << QPoint(x.toInt(), y.toInt());
- node = node.nextSibling().toElement();
- }
-
- // Create the graphics item from data structure.
- RegionItem *graphicsItem = new RegionItem(polygon, graphicsItem_);
- graphicsItem->loadData(data);
- graphicsItem_->addItemFrom(graphicsItem, data.region);
-
- // Store xml item and graphics item in each object for selection.
- regionItem->setRegionItem(graphicsItem);
- graphicsItem->setXmlItem(regionItem);
-
- if(data.region == GraphicsRegion::TextRegion)
- processLineNode(root.firstChild().nextSiblingElement("Line"), coordsItem);
-
- // Run through all nodes from the same data structure recursively.
- processNode(root.nextSiblingElement(data.name), data, pageItem);
- }
-}
-
-void Xml::processLineNode(const QDomElement& root, XmlItem *precItem)
-{
- if(!root.isNull())
- {
- // Create corresponding tree item.
- XmlItem *lineItem = new XmlItem(root, precItem->parent(), precItem);
-
- QDomElement node = root.firstChild().toElement();
- XmlItem *coordsItem = new XmlItem(node, lineItem);
-
- QPolygon polygon;
- XmlItem *pointItem = 0;
-
- QString xs, ys;
- int x, y;
-
- int xMin = INT_MAX;
- int xMax = INT_MIN;
-
- // Run through all points data.
- node = node.firstChild().toElement();
- while(!node.isNull())
- {
- xs = node.attribute("x", "null");
- ys = node.attribute("y", "null");
-
- pointItem = new XmlItem(node, coordsItem, pointItem);
-
- x = xs.toInt();
- y = ys.toInt();
-
- // Get beginning and end of line.
- if(xMin > x)
- xMin = x;
- if(xMax < x)
- xMax = x;
-
- polygon << QPoint(x, y);
- node = node.nextSibling().toElement();
- }
-
- // Create the graphics item from data structure.
- RegionItem *graphicsItem = new RegionItem(polygon, graphicsItem_);
- graphicsItem->loadData(datas_[1]);
- graphicsItem_->addItemFrom(graphicsItem, datas_[1].region);
-
- // Store xml item and graphics item in each object for selection.
- lineItem->setRegionItem(graphicsItem);
- graphicsItem->setXmlItem(lineItem);
-
- // Get meanline and baseline.
- processTypoNode(root, QPoint(xMin, xMax));
- // Run through all line nodes recursively.
- processLineNode(root.nextSiblingElement(datas_[1].name), lineItem);
- }
-}
-
-void Xml::processTypoNode(const QDomElement& root, const QPoint& xPoint)
-{
- int yPos = root.attribute("baseline", "null").toInt();
- QGraphicsLineItem *baselineItem = new QGraphicsLineItem(QLine(QPoint(xPoint.x(), yPos), QPoint(xPoint.y(), yPos)));
- baselineItem->setZValue(datas_[11].zValue);
- graphicsItem_->addItemFrom(baselineItem, datas_[11].region);
-
- yPos = root.attribute("meanline", "null").toInt();
- QGraphicsLineItem *meanlineItem = new QGraphicsLineItem(QLine(QPoint(xPoint.x(), yPos), QPoint(xPoint.y(), yPos)));
- meanlineItem->setZValue(datas_[12].zValue);
- graphicsItem_->addItemFrom(meanlineItem, datas_[12].region);
-}
diff --git a/GScribo/xml.h b/GScribo/xml.h
deleted file mode 100644
index f9274ed..0000000
--- a/GScribo/xml.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef XML_H
-#define XML_H
-
-#include <QTreeWidgetItem>
-#include <QGraphicsItem>
-#include <QStringList>
-#include <QDomElement>
-#include <QDomAttr>
-#include <climits>
-#include <QFile>
-
-#include "Rendering/rootgraphicsitem.h"
-#include "Rendering/regionitem.h"
-#include "XmlWidget/xmlitem.h"
-#include "variantpointer.h"
-#include "configs.h"
-#include "region.h"
-
-// WARNING : The order is VERY IMPORTANT (depending on the enum).
-static const GraphicsRegion::Data datas_[] =
-{
- /* COLOR | NAME | REGION | PARENT | Z */
- { QColor::fromRgb(0, 100, 0, 110), "TextRegion", GraphicsRegion::TextRegion, GraphicsRegion::Text, 1 },
- { QColor::fromRgb(255, 0, 0, 110), "Line", GraphicsRegion::Line, GraphicsRegion::Text, 2 },
- { QColor::fromRgb(0, 0, 255, 110), "VerticalSeparatorRegion", GraphicsRegion::VerticalSeparator, GraphicsRegion::Separators, 2 },
- { QColor::fromRgb(0, 0, 255, 110), "HorizontalSeparatorRegion", GraphicsRegion::HorizontalSeparator, GraphicsRegion::Separators, 2 },
- { QColor::fromRgb(0, 0, 128, 110), "WhitespaceSeparatorRegion", GraphicsRegion::WhiteSpaceSeparator, GraphicsRegion::Separators, 2 },
- { QColor::fromRgb(255, 120, 0, 110), "ImageRegion", GraphicsRegion::Image, GraphicsRegion::Miscellaneous, 1 },
- { QColor::fromRgb(43, 39, 128, 110), "NoiseRegion", GraphicsRegion::Noise, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(220, 246, 0, 110), "TableRegion", GraphicsRegion::Table, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(170, 0, 255, 110), "MathsRegion", GraphicsRegion::Maths, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(255, 0, 144, 110), "GraphicsRegion", GraphicsRegion::Graphic, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(0, 204, 255, 110), "ChartRegion", GraphicsRegion::Chart, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(128, 0, 255), "Baseline", GraphicsRegion::Baseline, GraphicsRegion::Typology, 3 },
- { QColor::fromRgb(128, 0, 255), "Meanline", GraphicsRegion::Meanline, GraphicsRegion::Typology, 3 },
- { QColor::fromRgb(255, 255, 255), "Text", GraphicsRegion::Text, GraphicsRegion::None, 0 },
- { QColor::fromRgb(255, 255, 255), "Separators", GraphicsRegion::Separators, GraphicsRegion::None, 0 },
- { QColor::fromRgb(255, 255, 255), "Miscellaneous", GraphicsRegion::Miscellaneous, GraphicsRegion::None, 0 },
- { QColor::fromRgb(255, 255, 255), "Typological Lines", GraphicsRegion::Typology, GraphicsRegion::None, 0 }
-};
-
-class Xml
-{
- public:
- explicit Xml(const QString& filename = QString());
-
- inline XmlItem *xmlItem();
- inline RootGraphicsItem *graphicsItem();
-
- inline QDomDocument document() const;
- inline QString filename() const;
- inline bool recognized() const;
-
- static QString getPath(const QString& filename);
-
- void load(const QString& filename);
- inline static GraphicsRegion::Data dataFromRegion(GraphicsRegion::Id region);
-
- private:
- XmlItem *init(const QDomElement& root, XmlItem *rootTreeItem);
- void isRecognized(const QDomElement& element);
-
- void processNode(const QDomElement& root, const GraphicsRegion::Data& data, XmlItem *rootTreeItem);
- void processLineNode(const QDomElement& root, XmlItem *rootTreeItem);
- void processTypoNode(const QDomElement& root, const QPoint& xPoint);
-
- RootGraphicsItem *graphicsItem_;
- XmlItem *xmlItem_;
-
- QDomDocument xml_;
- QString filename_;
- bool isRecognized_;
-};
-
-inline XmlItem *Xml::xmlItem()
-{ return xmlItem_; }
-
-inline RootGraphicsItem *Xml::graphicsItem()
-{ return graphicsItem_; }
-
-inline QDomDocument Xml::document() const
-{ return xml_; }
-
-inline QString Xml::filename() const
-{ return filename_; }
-
-inline GraphicsRegion::Data Xml::dataFromRegion(GraphicsRegion::Id region)
-{ return datas_[region]; }
-
-inline bool Xml::recognized() const
-{ return isRecognized_; }
-
-#endif // XML_H
diff --git a/milena/tests/unit_test/unit-tests.mk b/milena/tests/unit_test/unit-tests.mk
index 3a14188..6f75d64 100644
--- a/milena/tests/unit_test/unit-tests.mk
+++ b/milena/tests/unit_test/unit-tests.mk
@@ -125,6 +125,7 @@ mln_accu_math_count \
mln_accu_math_essential \
mln_accu_math_inf \
mln_accu_math_sum \
+mln_accu_math_sumpow \
mln_accu_math_sup \
mln_accu_max_site \
mln_accu_nil \
@@ -497,6 +498,7 @@ mln_data_approx_essential \
mln_data_approx_median \
mln_data_compare \
mln_data_compute \
+mln_data_compute_in_window \
mln_data_convert \
mln_data_essential \
mln_data_fast_median \
@@ -1455,6 +1457,7 @@ mln_accu_math_count_SOURCES = mln_accu_math_count.cc
mln_accu_math_essential_SOURCES = mln_accu_math_essential.cc
mln_accu_math_inf_SOURCES = mln_accu_math_inf.cc
mln_accu_math_sum_SOURCES = mln_accu_math_sum.cc
+mln_accu_math_sumpow_SOURCES = mln_accu_math_sumpow.cc
mln_accu_math_sup_SOURCES = mln_accu_math_sup.cc
mln_accu_max_site_SOURCES = mln_accu_max_site.cc
mln_accu_nil_SOURCES = mln_accu_nil.cc
@@ -1827,6 +1830,7 @@ mln_data_approx_essential_SOURCES = mln_data_approx_essential.cc
mln_data_approx_median_SOURCES = mln_data_approx_median.cc
mln_data_compare_SOURCES = mln_data_compare.cc
mln_data_compute_SOURCES = mln_data_compute.cc
+mln_data_compute_in_window_SOURCES = mln_data_compute_in_window.cc
mln_data_convert_SOURCES = mln_data_convert.cc
mln_data_essential_SOURCES = mln_data_essential.cc
mln_data_fast_median_SOURCES = mln_data_fast_median.cc
diff --git a/scribo/demo/viewer/Makefile.am b/scribo/demo/viewer/Makefile.am
index d79abcf..6fa9abb 100644
--- a/scribo/demo/viewer/Makefile.am
+++ b/scribo/demo/viewer/Makefile.am
@@ -19,30 +19,40 @@ include $(top_srcdir)/build-aux/autotroll.mk
bin_PROGRAMS = scribo-viewer
-scribo_viewer_SOURCES = viewer.cc \
+scribo_viewer_SOURCES = mainwindow.cc \
+ aboutdialog.cc \
main.cc \
- image_widget.cc \
- xml_widget.cc \
- key_widget.cc \
- browser_widget.cc \
- image_scene.cc \
- image_view.cc \
- image_region.cc \
- help_dialog.cc \
- step_widget.cc \
- preprocessing_options.cc\
- segmentation_options.cc \
- ocr_options.cc \
- runner.cc \
+ regionwidget.cc \
+ xml.cc \
+ pagesdelegate.cc \
+ pagesmodel.cc \
+ pageswidget.cc \
+ generaloptions.cc \
+ ocroptions.cc \
+ preferencesdialog.cc \
+ preprocessingdialog.cc \
+ segmentationoptions.cc \
preprocess.cc \
process.cc \
- general_options.cc \
- preferences_dialog.cc \
- option_widget.cc \
- config.cc
+ progressdialog.cc \
+ runner.cc \
+ graphicsview.cc \
+ regionitem.cc \
+ scene.cc \
+ selection.cc \
+ attributesmodel.cc \
+ xmlattributes.cc \
+ xmlitem.cc \
+ xmlmodel.cc \
+ xmlview.cc \
+ xmlwidget.cc
+
+
nodist_scribo_viewer_SOURCES = $(BUILT_SOURCES)
+
+
scribo_viewer_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS) -I$(srcdir) \
-I$(top_srcdir)/milena \
-I$(top_srcdir)/scribo \
@@ -50,65 +60,84 @@ scribo_viewer_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS) -I$(srcdir) \
$(TESSERACT_CPPFLAGS) \
$(TIFF_CPPFLAGS) \
-DNDEBUG -DMLN_WO_GLOBAL_VARS
+
+
+
scribo_viewer_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS) \
$(STRICT_ALIASING_CXXFLAGS) -O3
+
+
+
scribo_viewer_LDFLAGS = $(QT_LDFLAGS) $(LDFLAGS) \
$(MAGICKXX_LDFLAGS) \
$(TESSERACT_LDFLAGS) \
$(TIFF_LDFLAGS)
+
+
+
scribo_viewer_LDADD = $(QT_LIBS) $(LDADD)
-BUILT_SOURCES = viewer.moc.cc \
- image_widget.moc.cc \
- xml_widget.moc.cc \
- key_widget.moc.cc \
- browser_widget.moc.cc \
- image_scene.moc.cc \
- image_view.moc.cc \
- image_region.moc.cc \
- help_dialog.ui.h \
- step_widget.moc.cc \
- preprocessing_options.moc.cc \
- preprocessing_options.ui.h \
- segmentation_options.moc.cc \
- segmentation_options.ui.h \
- ocr_options.moc.cc \
- ocr_options.ui.h \
- runner.moc.cc \
+
+
+BUILT_SOURCES = demodir.hh
+ dockwidget.moc.cc \
+ graphicsview.moc.cc \
+ mainwindow.moc.cc \
+ ocroptions.moc.cc \
+ pagesmodel.moc.cc \
+ pageswidget.moc.cc \
+ preferencesdialog.moc.cc \
preprocess.moc.cc \
+ preprocessingoptions.moc.cc \
process.moc.cc \
- preferences_dialog.moc.cc \
- preferences_dialog.ui.h \
- general_options.moc.cc \
- general_options.ui.h \
- demodir.hh \
- viewer.qrc.cc
-
-
-noinst_HEADERS = viewer.hh \
- viewer.hxx \
- image_widget.hh \
- xml_widget.hh \
- key_widget.hh \
- browser_widget.hh \
- image_scene.hh \
- image_view.hh \
- image_region.hh \
- image_region.hxx \
- common.hh \
- help_dialog.hh \
- step_widget.hh \
- preprocessing_options.hh\
- segmentation_options.hh\
- ocr_options.hh \
- runner.hh \
- preprocess.hh \
- process.hh \
- general_options.hh \
- preferences_dialog.hh \
- option_widget.hh \
- config.hh \
- defs.hh
+ progressdialog.moc.cc \
+ regionwidget.moc.cc \
+ runner.moc.cc \
+ scene.moc.cc \
+ segmentationoptions.moc.cc \
+ xmlview.moc.cc \
+ xmlwidget.moc.cc \
+ aboutdialog.ui.h \
+ generaloptions.ui.h \
+ mainwindow.ui.h \
+ ocroptions.ui.h \
+ preferencesdialog.ui.h \
+ preprocessingoptions.ui.h \
+ segmentationoptions.ui.h
+
+
+noinst_HEADERS = mainwindow.hh \
+ aboutdialog.hh \
+ regionwidget.hh \
+ xml.hh \
+ pagesdelegate.hh \
+ pagesmodel.hh \
+ pageswidget.hh \
+ generaloptions.hh \
+ ocroptions.hh \
+ optionwidget.hh \
+ preferencesdialog.hh \
+ preprocessingoptions.hh \
+ segmentationoptions.hh \
+ preprocess.hh \
+ process.hh \
+ progressdialog.hh \
+ runner.hh \
+ graphicsview.hh \
+ regionitem.hh \
+ rootgraphicsitem.hh \
+ scene.hh \
+ selection.hh \
+ attributesmodel.hh \
+ selectionproxy.hh \
+ xmlattributes.hh \
+ xmldelegate.hh \
+ xmlitem.hh \
+ xmlmodel.hh \
+ xmlview.hh \
+ xmlwidget.hh
+
+
# Generated files
@@ -116,6 +145,8 @@ do_subst = sed \
-e 's|@libexecdir[@]|$(libexecdir)|g' \
-e 's|@abs_demodir[@]|$(abs_top_builddir)/scribo/demo|g'
+
+
demodir.hh: $(srcdir)/demodir.hh.in Makefile
rm -f $@ $@.tmp
srcdir=''; \
@@ -124,17 +155,20 @@ demodir.hh: $(srcdir)/demodir.hh.in Makefile
chmod a-w $@.tmp
mv $@.tmp $@
+
+
CLEANFILES = $(BUILT_SOURCES)
-EXTRA_DIST = \
- general_options.ui \
- preferences_dialog.ui \
- README \
- preprocessing_options.ui\
- segmentation_options.ui \
- ocr_options.ui \
- help_dialog.ui \
- demodir.hh.in \
- viewer.qrc \
- icons/olena_smaller.jpg
+
+
+EXTRA_DIST = BUGS \
+ README \
+ aboutdialog.ui \
+ mainwindow.ui \
+ generaloptions.ui \
+ ocroptions.ui \
+ preferencesdialog.ui \
+ preprocessingoptions.ui \
+ segmentationoptions.ui \
+ demodir.hh.in
diff --git a/scribo/demo/viewer/browser_widget.cc b/scribo/demo/viewer/browser_widget.cc
deleted file mode 100644
index 17e1c61..0000000
--- a/scribo/demo/viewer/browser_widget.cc
+++ /dev/null
@@ -1,138 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "browser_widget.hh"
-
-BrowserWidget::BrowserWidget(QDirModel* files, QString dir)
- : files_(files),
- view_(new QListView()),
- path_(new QLineEdit("")),
- first_time_(true)
-{
- QToolButton* next= new QToolButton();
- QToolButton* prev= new QToolButton();
-
- prev->setIcon(style()->standardIcon(QStyle::SP_ArrowLeft));
- next->setIcon(style()->standardIcon(QStyle::SP_ArrowRight));
- next->setShortcut(QKeySequence("Ctrl+right"));
- prev->setShortcut(QKeySequence("Ctrl+left"));
-
- QLabel* title = new QLabel(tr("Images"));
- title->setAlignment(Qt::AlignHCenter);
-
- QVBoxLayout* layout = new QVBoxLayout;
- QHBoxLayout *hlayout = new QHBoxLayout;
-
- hlayout->addWidget(prev);
- hlayout->addWidget(title);
- hlayout->addWidget(next);
- layout->addLayout(hlayout);
- layout->addWidget(path_);
- layout->addWidget(view_);
-
- //setLayout(hlayout);
- setLayout(layout);
-
- view_->setModel(files);
- files->setFilter(QDir::AllDirs | QDir::Files
- | QDir::Readable | QDir::Drives);
-
- view_->setRootIndex(files->index(QDir::currentPath()));
-
- QDir d(dir);
- if (d.isReadable())
- view_->setRootIndex(files->index(d.absolutePath()));
-
- view_->setRowHidden(0, true);
-
- path_->setText(files->filePath(view_->rootIndex()));
-
- connect(view_, SIGNAL(activated(const QModelIndex&)),
- this, SLOT(activate(const QModelIndex&)));
- connect(next, SIGNAL(released ()),
- this, SLOT(next()));
- connect(prev, SIGNAL(released ()),
- this, SLOT(prev()));
- connect(path_, SIGNAL(returnPressed()),
- this, SLOT(path_return_pressed()));
-
- QStringList files_filters;
- files_filters << "*.png" << "*.jpg"
- << "*.tif" << "*.ppm"
- << "*.pgm" << "*.pbm"
- << "*.pnm" << "*.xmlc";
-
- files->setNameFilters(files_filters);
-}
-
-void
-BrowserWidget::path_return_pressed()
-{
- QString path = path_->text();
- QDir d(path);
-
- if (d.isReadable())
- activate(files_->index(QString(path)), false);
-}
-
-void
-BrowserWidget::activate(const QModelIndex& index, bool b)
-{
- if (files_->isDir(index))
- {
- view_->setRootIndex(index);
- view_->setRowHidden(0, true);
- path_->setText(files_->filePath(view_->rootIndex()));
- first_time_ = true;
- return;
- }
-
- first_time_ = false;
-
- if (files_->filePath(index).endsWith(".xmlc"))
- emit activated(files_->filePath(index), b, true);
- else
- emit activated(files_->filePath(index), b, false);
-}
-
-void
-BrowserWidget::change_pos(bool next)
-{
- QModelIndex index = view_->currentIndex();
-
- if(next)
- index = files_->index(index.row() + 1, index.column(), index.parent());
- else
- index = files_->index(index.row() - 1, index.column(), index.parent());
-
- if (index.isValid())
- {
- if (!files_->isDir(index))
- if (!first_time_)
- activate(index, true);
- view_->setCurrentIndex(index);
- }
-}
-
-BrowserWidget::~BrowserWidget()
-{
-}
-
-QString
-BrowserWidget::current() const
-{
- return files_->filePath(view_->currentIndex());
-}
diff --git a/scribo/demo/viewer/browser_widget.hh b/scribo/demo/viewer/browser_widget.hh
deleted file mode 100644
index 9567c11..0000000
--- a/scribo/demo/viewer/browser_widget.hh
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_BROWSER_WIDGET_HH
-# define SCRIBO_DEMO_VIEWER_BROWSER_WIDGET_HH
-
-# include <QtGui>
-
-class BrowserWidget
- : public QWidget
-{
- Q_OBJECT
-
-public:
- BrowserWidget(QDirModel* files, QString dir = QString());
- ~BrowserWidget();
-
- QString current() const;
-
-public slots:
- void activate(const QModelIndex& index, bool b = false);
- void path_return_pressed();
- void next() { change_pos(true); }
- void prev() { change_pos(false); }
-
-signals:
- void activated(QString filename, bool b, bool x);
-
-private:
- void change_pos(bool next);
- QDirModel* files_;
- QListView* view_;
- QLineEdit* path_;
- bool first_time_;
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_BROWSER_WIDGET_HH
diff --git a/scribo/demo/viewer/common.hh b/scribo/demo/viewer/common.hh
deleted file mode 100644
index 0072376..0000000
--- a/scribo/demo/viewer/common.hh
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_COMMON_HH
-# define SCRIBO_DEMO_VIEWER_COMMON_HH
-
-namespace region
-{
- typedef QVector<QPair<QString, QColor> > KeyMap;
-
- enum RegionId
- {
- // Text regions
- // -------------
-
- Text = 0,
-
- // Extension
- Line,
-
- EndOfTextRegion,
-
- // Separators
- // ----------
-
- HorizontalSeparator,
- VerticalSeparator,
-
- // Extension
- WhitespaceSeparator,
-
- EndOfSepsRegion,
-
- // Misc regions.
- // -------------
- Image,
- Noise,
- Table,
- LineDrawing,
- Graphic,
- Chart,
- Maths,
-
- EndOfMiscRegion,
-
- // Typographical lines
- // -------------------
-
- // Extension
- Baseline,
- Meanline,
-
- EndOfTypoRegion,
-
- RegionIdCount
- };
-}
-
-#endif // ! SCRIBO_DEMO_VIEWER_COMMON_HH
diff --git a/scribo/demo/viewer/config.cc b/scribo/demo/viewer/config.cc
deleted file mode 100644
index 6bdcd35..0000000
--- a/scribo/demo/viewer/config.cc
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include <QDir>
-
-#include "config.hh"
-#include "defs.hh"
-
-// Defines enum of binarization algorithms
-# include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-
-config::config()
- : QSettings("Olena-Scribo", "viewer")
-{
-
-}
-
-config* config::get_instance()
-{
- static config * conf = new config();
- return conf;
-}
-
-
-// Preprocessing
-
-bool config::preprocessing_subsample()
-{
- return value("preprocessing/subsample", false).toBool();
-}
-
-void config::set_preprocessing_subsample(bool b)
-{
- setValue("preprocessing/subsample", b);
-}
-
-
-bool config::preprocessing_remove_bg()
-{
- return value("preprocessing/remove_bg", false).toBool();
-}
-
-void config::set_preprocessing_remove_bg(bool b)
-{
- setValue("preprocessing/remove_bg", b);
-}
-
-
-bool config::preprocessing_deskew()
-{
- return value("preprocessing/deskew", false).toBool();
-}
-
-void config::set_preprocessing_deskew(bool b)
-{
- setValue("preprocessing/deskew", b);
-}
-
-
-bool config::preprocessing_remove_noise()
-{
- return value("preprocessing/remove_noise", true).toBool();
-}
-
-void config::set_preprocessing_remove_noise(bool b)
-{
- setValue("preprocessing/remove_noise", b);
-}
-
-
-int config::preprocessing_bin_algo()
-{
- return value("preprocessing/bin_algo",
- scribo::toolchain::internal::SauvolaMs).toInt();
-}
-
-void config::set_preprocessing_bin_algo(int algo)
-{
- setValue("preprocessing/bin_algo", algo);
-}
-
-
-
-// Segmentation
-
-int config::segmentation_find_seps()
-{
- return value("segmentation/find_seps", defs::LinesAndWhitespaces).toInt();
-}
-
-void config::set_segmentation_find_seps(int seps)
-{
- setValue("segmentation/find_seps", seps);
-}
-
-
-// OCR
-
-bool config::ocr_enabled()
-{
- return value("ocr/enabled", true).toBool();
-}
-
-void config::set_ocr_enabled(bool b)
-{
- setValue("ocr/enabled", b);
-}
-
-
-
-QString config::ocr_language()
-{
- return value("ocr/language", 0).toString();
-}
-
-void config::set_ocr_language(const QString& lang)
-{
- setValue("ocr/language", lang);
-}
-
-
-
-// General options
-
-bool config::general_save_xml_enabled()
-{
- return value("general/save_xml/enabled", true).toBool();
-}
-
-void config::set_general_save_xml_enabled(bool b)
-{
- setValue("general/save_xml/enabled", b);
-}
-
-
-bool config::general_save_xml_same_dir()
-{
- return value("general/save_xml/same_dir", true).toBool();
-}
-
-void config::set_general_save_xml_same_dir(bool b)
-{
- setValue("general/save_xml/same_dir", b);
-}
-
-
-bool config::general_save_xml_custom_dir()
-{
- return value("general/save_xml/custom_dir", false).toBool();
-}
-
-void config::set_general_save_xml_custom_dir(bool b)
-{
- setValue("general/save_xml/custom_dir", b);
-}
-
-
-QString config::general_save_xml_custom_dir_path()
-{
- return value("general/save_xml/custom_dir_path", QDir::tempPath()).toString();
-}
-
-void config::set_general_save_xml_custom_dir_path(const QString& path)
-{
- setValue("general/save_xml/custom_dir_path", path);
-}
-
diff --git a/scribo/demo/viewer/config.hh b/scribo/demo/viewer/config.hh
deleted file mode 100644
index 74dab3b..0000000
--- a/scribo/demo/viewer/config.hh
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_CONFIG_HH
-# define SCRIBO_DEMO_VIEWER_CONFIG_HH
-
-# include <QSettings>
-
-class config : public QSettings
-{
-public:
-
- config();
-
- static config* get_instance();
-
- // Preprocessing
- bool preprocessing_subsample();
- void set_preprocessing_subsample(bool b);
-
- bool preprocessing_remove_bg();
- void set_preprocessing_remove_bg(bool b);
-
- bool preprocessing_deskew();
- void set_preprocessing_deskew(bool b);
-
- bool preprocessing_remove_noise();
- void set_preprocessing_remove_noise(bool b);
-
- int preprocessing_bin_algo();
- void set_preprocessing_bin_algo(int algo);
-
-
- // Segmentation
- int segmentation_find_seps();
- void set_segmentation_find_seps(int seps);
-
-
- // OCR
- bool ocr_enabled();
- void set_ocr_enabled(bool b);
-
- QString ocr_language();
- void set_ocr_language(const QString& lang);
-
-
- // General options
- bool general_save_xml_enabled();
- void set_general_save_xml_enabled(bool b);
-
- bool general_save_xml_same_dir();
- void set_general_save_xml_same_dir(bool b);
-
- bool general_save_xml_custom_dir();
- void set_general_save_xml_custom_dir(bool b);
-
- QString general_save_xml_custom_dir_path();
- void set_general_save_xml_custom_dir_path(const QString& path);
-
-
-};
-
-
-#endif // ! SCRIBO_DEMO_VIEWER_CONFIG_HH
diff --git a/scribo/demo/viewer/defs.hh b/scribo/demo/viewer/defs.hh
deleted file mode 100644
index ada4441..0000000
--- a/scribo/demo/viewer/defs.hh
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_DEFS_HH
-# define SCRIBO_DEMO_VIEWER_DEFS_HH
-
-namespace defs
-{
- enum FindSeparators
- {
- Lines,
- Whitespaces,
- LinesAndWhitespaces
- };
-
-} // end of namespace defs
-
-#endif // ! SCRIBO_DEMO_VIEWER_DEFS_HH
diff --git a/scribo/demo/viewer/demodir.hh.in b/scribo/demo/viewer/demodir.hh.in
index f26189d..f946d90 100644
--- a/scribo/demo/viewer/demodir.hh.in
+++ b/scribo/demo/viewer/demodir.hh.in
@@ -24,12 +24,10 @@
// executable file might be covered by the GNU General Public License.
#ifndef SCRIBO_DEMO_DEMODIR_HH
-# define SCRIBO_DEMO_DEMODIR_HH
+#define SCRIBO_DEMO_DEMODIR_HH
+#define SCRIBO_PREFIX_LIBEXECDIR "@libexecdir@"
-# define SCRIBO_PREFIX_LIBEXECDIR "@libexecdir@"
-
-# define SCRIBO_LOCAL_DEMODIR "@abs_demodir@"
-
+#define SCRIBO_LOCAL_DEMODIR "@abs_demodir@"
#endif // !SCRIBO_DEMO_DEMODIR_HH
diff --git a/scribo/demo/viewer/general_options.cc b/scribo/demo/viewer/general_options.cc
deleted file mode 100644
index 50201ff..0000000
--- a/scribo/demo/viewer/general_options.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "general_options.hh"
-#include "config.hh"
-
-
-general_options::general_options(QWidget *parent)
- : OptionWidget(parent)
-{
- setupUi(this);
-
- load_config();
-}
-
-general_options::~general_options()
-{
-}
-
-
-void general_options::load_config()
-{
- config * const conf = config::get_instance();
-
- saveXml->setChecked(conf->general_save_xml_enabled());
- sameDir->setChecked(conf->general_save_xml_same_dir());
- customDir->setChecked(conf->general_save_xml_custom_dir());
- customDirValue->setText(conf->general_save_xml_custom_dir_path());
-}
-
-
-void general_options::save_config()
-{
- config * const conf = config::get_instance();
-
- conf->set_general_save_xml_enabled(saveXml->isChecked());
- conf->set_general_save_xml_same_dir(sameDir->isChecked());
- conf->set_general_save_xml_custom_dir(customDir->isChecked());
- conf->set_general_save_xml_custom_dir_path(customDirValue->text());
-}
-
-void general_options::on_customDirBrowseBtn_clicked()
-{
- QString dir = QFileDialog::getExistingDirectory(0, "Choose a directory");
- if (!dir.isEmpty())
- customDirValue->setText(dir);
-}
diff --git a/scribo/demo/viewer/general_options.hh b/scribo/demo/viewer/general_options.hh
deleted file mode 100644
index e2fcaae..0000000
--- a/scribo/demo/viewer/general_options.hh
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_GENERAL_OPTIONS_HH
-# define SCRIBO_DEMO_VIEWER_GENERAL_OPTIONS_HH
-
-# include <QtGui>
-# include <general_options.ui.h>
-# include "option_widget.hh"
-
-class general_options : public OptionWidget, private Ui::GeneralOptions
-{
- Q_OBJECT;
-
-public:
- general_options(QWidget *parent = 0);
- ~general_options();
-
- virtual void load_config();
- virtual void save_config();
-
-private slots:
- void on_customDirBrowseBtn_clicked();
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_GENERAL_OPTIONS_HH
diff --git a/scribo/demo/viewer/general_options.ui b/scribo/demo/viewer/general_options.ui
deleted file mode 100644
index 5839c27..0000000
--- a/scribo/demo/viewer/general_options.ui
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>GeneralOptions</class>
- <widget class="QWidget" name="GeneralOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QGroupBox" name="saveXml">
- <property name="title">
- <string>Save segmentation results</string>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QRadioButton" name="sameDir">
- <property name="text">
- <string>In the same directory as the input image</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QRadioButton" name="customDir">
- <property name="text">
- <string>In the following directory</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Maximum</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QLineEdit" name="customDirValue"/>
- </item>
- <item>
- <widget class="QPushButton" name="customDirBrowseBtn">
- <property name="text">
- <string>Browse</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/scribo/demo/viewer/help_dialog.cc b/scribo/demo/viewer/help_dialog.cc
deleted file mode 100644
index 2d5ce6c..0000000
--- a/scribo/demo/viewer/help_dialog.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "help_dialog.hh"
-
-HelpDialog::HelpDialog()
-{
- setupUi(this);
-}
diff --git a/scribo/demo/viewer/help_dialog.hh b/scribo/demo/viewer/help_dialog.hh
deleted file mode 100644
index 9f179c6..0000000
--- a/scribo/demo/viewer/help_dialog.hh
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_HELP_DIALOG_HH
-# define SCRIBO_DEMO_VIEWER_HELP_DIALOG_HH
-
-# include <QtGui>
-# include <help_dialog.ui.h>
-
-class HelpDialog : public QDialog, private Ui::HelpDialog
-{
-public:
- HelpDialog();
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_HELP_DIALOG_HH
diff --git a/scribo/demo/viewer/help_dialog.ui b/scribo/demo/viewer/help_dialog.ui
deleted file mode 100644
index 9ab7e58..0000000
--- a/scribo/demo/viewer/help_dialog.ui
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpDialog</class>
- <widget class="QDialog" name="HelpDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>557</width>
- <height>390</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>557</width>
- <height>390</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>557</width>
- <height>390</height>
- </size>
- </property>
- <property name="windowTitle">
- <string>About</string>
- </property>
- <property name="windowIcon">
- <iconset resource="viewer.qrc">
- <normaloff>:/icons/shared/icons/olena_smaller.jpg</normaloff>:/icons/shared/icons/olena_smaller.jpg</iconset>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string/>
- </property>
- <property name="pixmap">
- <pixmap resource="viewer.qrc">:/icons/shared/icons/olena_smaller.jpg</pixmap>
- </property>
- <property name="scaledContents">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_2">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Document Image Analysis Tool</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This project is powered by <span style=" font-weight:600; font-style:italic;">Milena</span>, a generic image processing library.</p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is part of <span style=" font-weight:600; font-style:italic;">Olena</span>, an Image Processing Platform and its module <span style=" font-weight:600; font-style:italic;">Scribo</span>, a set of tools for Document Image Analysis.</p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://olena.lrde.epita.fr"><span style=" text-decoration: underline; color:#0057ae;">http://olena.lrde.epita.fr</span></a></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Thanks to Arthur Crépin-Leblond, Samuel Da Mota, Loic Denuziere, </span><span style=" font-size:8pt;">Jérôme Galtier,</span><span style=" font-size:8pt;"> </span><span style=" font-size:8pt;">Florent d'Halluin, </span><span style=" font-size:8pt;">Alex Hamelin, </span><span style=" font-size:8pt;">Damien Lefortier, </span><span style=" font-size:8pt;">Vincent Ordy, </span><span style=" font-size:8pt;">Guillaume Sadegh and</span><span style=" font-size:8pt;"> </span><span style=" font-size:8pt;">Warren Seine </span><span style=" font-size:8pt;">for their contribution.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt;">This application has been developed in the context of the SCRIBO project of the Free Software Thematic Group, part of the &quot;System@tic Paris-Région&quot; Cluster (France). This project is partially funded by the French Government, its economic development agencies, and by the Paris-Région institutions.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:7pt;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt;">Copyright (C) 2010, 2011 EPITA Research and Development Laboratory (LRDE)</span></p></body></html></string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="standardButtons">
- <set>QDialogButtonBox::Ok</set>
- </property>
- <property name="centerButtons">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources>
- <include location="viewer.qrc"/>
- </resources>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>HelpDialog</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>281</x>
- <y>391</y>
- </hint>
- <hint type="destinationlabel">
- <x>240</x>
- <y>203</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/scribo/demo/viewer/icons/olena_smaller.jpg b/scribo/demo/viewer/icons/olena_smaller.jpg
deleted file mode 100644
index c6b9110..0000000
Binary files a/scribo/demo/viewer/icons/olena_smaller.jpg and /dev/null differ
diff --git a/scribo/demo/viewer/image_region.cc b/scribo/demo/viewer/image_region.cc
deleted file mode 100644
index 93d9d79..0000000
--- a/scribo/demo/viewer/image_region.cc
+++ /dev/null
@@ -1,138 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "image_region.hh"
-
-ImageRegion::ImageRegion(region::RegionId id,
- QString name,
- QColor color,
- QString attr_id,
- const QVector<QPoint>& points,
- bool outline,
- bool fill,
- bool precise,
- bool draw)
- : QGraphicsItem(0),
- id_(id),
- name_(name),
- color_(color),
- attr_id_(attr_id),
- shape_(),
- rect_(),
- outline_(outline),
- precise_(precise),
- fill_(fill),
- draw_(draw),
- selected_(false),
- alpha_(50)
-{
- setCursor(Qt::ArrowCursor);
- if (id_ == region::Line)
- setZValue(3);
- else
- setZValue(1);
-
- if (points.size() == 0)
- return;
-
- for (int i = 1; i < points.size(); ++i)
- shape_.lineTo(points[i] - points[0]);
- shape_.lineTo(QPoint(0, 0));
-
- rect_ = shape_.boundingRect();
- setPos(points[0] + QPointF(0.5, 0.5));
-
- prepareGeometryChange();
-}
-
-ImageRegion::~ImageRegion()
-{
-}
-
-region::RegionId ImageRegion::id()
-{
- return id_;
-}
-
-void
-ImageRegion::paint(QPainter* painter,
- const QStyleOptionGraphicsItem*,
- QWidget*)
-{
- if (!draw_ && !selected_)
- return;
-
- int width = 0;
- if (precise_)
- width = 1;
-
- if (outline_)
- painter->setPen(QPen(QBrush(color_), width, Qt::SolidLine,
- Qt::SquareCap, Qt::MiterJoin));
- else
- painter->setPen(QColor(0, 0, 0, 0));
-
- QColor brush = color_;
- if (fill_)
- brush.setAlpha(alpha_);
- else
- brush.setAlpha(0);
- painter->setBrush(brush);
-
- painter->drawPath(shape_);
-
- if (selected_)
- {
- QPolygonF sceneRect = mapFromScene(scene()->sceneRect());
- QPainterPath path;
- path.addPolygon(sceneRect);
- QColor brush(255, 255, 255);
- brush.setAlpha(120);
- painter->setBrush(brush);
- painter->setPen(QColor(0, 0, 0, 0));
- painter->drawPath(path.subtracted(shape_));
- }
-}
-
-void
-ImageRegion::select()
-{
- if (!selected_)
- {
- selected_ = true;
- setZValue(4);
- prepareGeometryChange();
- scene()->invalidate();
- update();
- }
-}
-
-void
-ImageRegion::deselect()
-{
- if (selected_)
- {
- selected_ = false;
- if (id_ == region::Line)
- setZValue(3);
- else
- setZValue(1);
- prepareGeometryChange();
- scene()->invalidate();
- update();
- }
-}
diff --git a/scribo/demo/viewer/image_region.hh b/scribo/demo/viewer/image_region.hh
deleted file mode 100644
index 41141f7..0000000
--- a/scribo/demo/viewer/image_region.hh
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_IMAGE_REGION_HH
-# define SCRIBO_DEMO_VIEWER_IMAGE_REGION_HH
-
-# include <QtGui>
-# include "common.hh"
-
-class ImageRegion
- : public QObject, public QGraphicsItem
-{
- Q_OBJECT
-
-public:
- ImageRegion(region::RegionId id,
- QString name,
- QColor color,
- QString attr_id,
- const QVector<QPoint>& points,
- bool outline,
- bool fill,
- bool precise,
- bool draw);
-
- ~ImageRegion();
-
- region::RegionId id();
- void paint(QPainter* painter,
- const QStyleOptionGraphicsItem* option,
- QWidget* widget = 0);
-
- QRectF boundingRect() const;
- QPainterPath shape() const;
- QString name() { return name_; }
- QRectF rect() { return rect_; }
- QString attr_id() { return attr_id_; }
-
-public slots:
- void setOutline(bool outline);
- void setFill(bool fill);
- void setFillAlpha(int alpha);
- void setDraw(bool draw);
- void setPrecise(bool precise);
- void setDrawIfSameId(int id, bool draw);
- void select();
- void deselect();
-
-private:
- region::RegionId id_;
- QString name_;
- QColor color_;
- QString attr_id_;
- QPainterPath shape_;
- QRectF rect_;
- bool outline_;
- bool precise_;
- bool fill_;
- bool draw_;
- bool selected_;
- int alpha_;
-};
-
-#include "image_region.hxx"
-
-#endif // ! SCRIBO_DEMO_VIEWER_IMAGE_REGION_HH
diff --git a/scribo/demo/viewer/image_region.hxx b/scribo/demo/viewer/image_region.hxx
deleted file mode 100644
index 5ddd7de..0000000
--- a/scribo/demo/viewer/image_region.hxx
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-//
-// As a special exception, you may use this file as part of a free
-// software project without restriction. Specifically, if other files
-// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to produce
-// an executable, this file does not by itself cause the resulting
-// executable to be covered by the GNU General Public License. This
-// exception does not however invalidate any other reasons why the
-// executable file might be covered by the GNU General Public License.
-
-#ifndef IMAGE_REGION_HXX_
-# define IMAGE_REGION_HXX_
-
-# include "image_region.hh"
-
-inline
-void
-ImageRegion::setOutline(bool outline)
-{
- outline_ = outline;
- scene()->invalidate();
- update();
-}
-
-inline
-void
-ImageRegion::setPrecise(bool precise)
-{
- precise_ = precise;
- scene()->invalidate();
- update();
-}
-
-inline
-void
-ImageRegion::setFill(bool fill)
-{
- fill_ = fill;
- update();
-}
-
-inline
-void
-ImageRegion::setDraw(bool draw)
-{
- draw_ = draw;
- update();
-}
-
-inline
-void
-ImageRegion::setDrawIfSameId(int id, bool draw)
-{
- if (id == id_)
- {
- draw_ = draw;
- setVisible(draw);
- if (scene())
- {
- scene()->invalidate();
- update();
- }
- }
-}
-
-inline
-void
-ImageRegion::setFillAlpha(int alpha)
-{
- alpha_ = alpha;
- update();
-}
-
-inline
-QRectF
-ImageRegion::boundingRect() const
-{
-// if (selected_)
-// return mapFromScene(scene()->sceneRect()).boundingRect();
- return rect_;
-}
-
-inline
-QPainterPath
-ImageRegion::shape() const
-{
- return shape_;
-}
-
-#endif /* !IMAGE_REGION_HXX_ */
diff --git a/scribo/demo/viewer/image_scene.cc b/scribo/demo/viewer/image_scene.cc
deleted file mode 100644
index a800896..0000000
--- a/scribo/demo/viewer/image_scene.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-
-#include "image_scene.hh"
-#include "image_region.hh"
-
-ImageScene::ImageScene(QObject *parent)
- : QGraphicsScene(parent), selected_(0)
-{
-}
-
-void
-ImageScene::clear()
-{
- selected_ = 0;
- QGraphicsScene::clear();
-}
-
-void
-ImageScene::mousePressEvent(QGraphicsSceneMouseEvent* event)
-{
- QGraphicsScene::mousePressEvent(event);
- QList<QGraphicsItem *> items_list = items(event->scenePos()); // includes both ImageRegions and the picture.
-
- if (items_list.isEmpty())
- {
- if (selected_)
- {
- selected_->deselect();
- emit deselected();
- selected_ = 0;
- }
- }
-
- // Selection is under the mouse click (at event->pos()).
- bool selection_is_clicked = items_list.contains(selected_);
-
- foreach(QGraphicsItem* elt, items_list)
- {
- ImageRegion* item = dynamic_cast<ImageRegion*>(elt);
- if (item)
- {
- if (item != selected_)
- {
- if (selected_)
- {
- if ( (item->boundingRect().intersects(selected_->boundingRect())))
- {
- int item_area = item->boundingRect().size().height() * item->boundingRect().size().width();
- int selected_area = selected_->boundingRect().size().height() * selected_->boundingRect().size().width();
-
- if (selected_area < item_area && selection_is_clicked)
- return;
- else
- {
- selected_->deselect();
- emit deselected();
- selected_ = 0;
- }
- }
- else
- {
- selected_->deselect();
- emit deselected();
- selected_ = 0;
- }
- }
- selected_ = item;
- item->select();
- emit selected(item->attr_id(), item->name());
- return;
- }
- }
- else
- {
- if ( (selected_)
- && (items_list.size() == 1) )// no ImageRegion, only the picture
- {
- selected_->deselect();
- emit deselected();
- selected_ = 0;
- }
- }
- }
-}
-
-ImageScene::~ImageScene()
-{
-}
diff --git a/scribo/demo/viewer/image_scene.hh b/scribo/demo/viewer/image_scene.hh
deleted file mode 100644
index b141478..0000000
--- a/scribo/demo/viewer/image_scene.hh
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_IMAGE_SCENE_HH
-# define SCRIBO_DEMO_VIEWER_IMAGE_SCENE_HH
-
-# include <QtGui>
-
-class ImageRegion;
-
-class ImageScene
- : public QGraphicsScene
-{
- Q_OBJECT
-
-public:
- ImageScene(QObject *parent = 0);
- ~ImageScene();
-
- void mousePressEvent(QGraphicsSceneMouseEvent* event);
- void clear();
-
-signals:
- void selected(QString, QString);
- void deselected();
-
-private:
- ImageRegion* selected_;
- QVector<ImageRegion*> region_vector_;
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_IMAGE_SCENE_HH
diff --git a/scribo/demo/viewer/image_view.cc b/scribo/demo/viewer/image_view.cc
deleted file mode 100644
index bb34eb7..0000000
--- a/scribo/demo/viewer/image_view.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "image_view.hh"
-
-ImageView::ImageView(QGraphicsScene* scene)
- : QGraphicsView(scene)
-{
-}
-
-void
-ImageView::wheelEvent(QWheelEvent* event)
-{
- // Basic zoom code (same as yavgui)
- if (event->delta() != 0)
- {
- qreal degrees = ((qreal) event->delta()) / 8;
- qreal sc;
- if (degrees > 0)
- sc = 1 + degrees / 100;
- else
- sc = 1 / (1 - degrees / 100);
-
- QPointF center = mapToScene(width() / 2, height() / 2);
- QPointF mouse = mapToScene(event->pos());
-
- qreal dx = (mouse.x() - center.x());
- qreal dy = (mouse.y() - center.y());
- QPointF newCenter = QPointF (mouse.x() - dx / sc,
- mouse.y() - dy / sc);
- scale(sc, sc);
- scaleUpdate();
- }
-}
-
-void
-ImageView::keyPressEvent(QKeyEvent* event)
-{
- if (event->key() == Qt::Key_PageUp)
- scale(1.25, 1.25);
- else if (event->key() == Qt::Key_PageDown)
- scale(0.75, 0.75);
- else if (event->key() == Qt::Key_Home)
- resetMatrix();
- else if (event->key() == Qt::Key_End)
- fitInView(sceneRect(), Qt::KeepAspectRatio);
- else
- {
- QGraphicsView::keyPressEvent(event);
- return;
- }
- scaleUpdate();
- event->accept();
-}
-
-void
-ImageView::scaleUpdate()
-{
- // Used to determine whether to change the main image cache mode.
- QRect orig(0, 0, 10, 1);
- QRectF scene = mapToScene(orig).boundingRect();
- emit scaleUpdated(10 / scene.width());
-}
-
-ImageView::~ImageView()
-{
-}
diff --git a/scribo/demo/viewer/image_view.hh b/scribo/demo/viewer/image_view.hh
deleted file mode 100644
index 622999b..0000000
--- a/scribo/demo/viewer/image_view.hh
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_IMAGE_VIEW_HH
-# define SCRIBO_DEMO_VIEWER_IMAGE_VIEW_HH
-
-# include <QtGui>
-
-class ImageView
- : public QGraphicsView
-{
- Q_OBJECT
-
-public:
- ImageView(QGraphicsScene* scene);
- ~ImageView();
-
- void wheelEvent(QWheelEvent* event);
- void keyPressEvent(QKeyEvent *event);
-
- // Call after changing the scale.
- void scaleUpdate();
-
-signals:
- // Scale is approximate.
- void scaleUpdated(qreal scale);
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_IMAGE_VIEW_HH
diff --git a/scribo/demo/viewer/image_widget.cc b/scribo/demo/viewer/image_widget.cc
deleted file mode 100644
index f86ff1d..0000000
--- a/scribo/demo/viewer/image_widget.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "image_widget.hh"
-#include "image_view.hh"
-
-ImageWidget::ImageWidget(QGraphicsScene* scene)
- : view_ (new ImageView(scene))
-{
- scene->setParent(view_);
-
- QLabel* title = new QLabel(tr("Layout"));
- title->setAlignment(Qt::AlignHCenter);
-
- QVBoxLayout* layout = new QVBoxLayout;
- layout->addWidget(title);
- layout->addWidget(view_);
-
- view_->setDragMode(QGraphicsView::ScrollHandDrag);
- view_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view_->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view_->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
-
- connect(view_, SIGNAL(scaleUpdated(qreal)),
- this, SIGNAL(scaleUpdated(qreal)));
-
- setLayout(layout);
-}
-
-
-ImageWidget::~ImageWidget()
-{
-}
-
-
-void
-ImageWidget::update()
-{
- view_->fitInView(view_->sceneRect(), Qt::KeepAspectRatio);
- view_->scaleUpdate();
-}
-
-ImageView *
-ImageWidget::view() const
-{
- return view_;
-}
diff --git a/scribo/demo/viewer/image_widget.hh b/scribo/demo/viewer/image_widget.hh
deleted file mode 100644
index 79dd672..0000000
--- a/scribo/demo/viewer/image_widget.hh
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_IMAGE_WIDGET_HH
-# define SCRIBO_DEMO_VIEWER_IMAGE_WIDGET_HH
-
-# include <QtGui>
-# include "image_view.hh"
-
-class ImageView;
-
-class ImageWidget
- : public QWidget
-{
- Q_OBJECT
-
-public:
- ImageWidget(QGraphicsScene* scene);
- ~ImageWidget();
-
- ImageView * view() const;
-
-public slots:
- void update();
-
-signals:
- void scaleUpdated(qreal scale);
-
-private:
- ImageView* view_;
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_IMAGE_WIDGET_HH
diff --git a/scribo/demo/viewer/key_widget.cc b/scribo/demo/viewer/key_widget.cc
deleted file mode 100644
index 3b07617..0000000
--- a/scribo/demo/viewer/key_widget.cc
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "key_widget.hh"
-#include "common.hh"
-
-KeyWidget::KeyWidget(const region::KeyMap& key_map)
- : items_(new QTreeWidget())
-{
- item_list_.append(new QTreeWidgetItem(QStringList("Text")));
- item_list_.append(new QTreeWidgetItem(QStringList("Separators")));
- item_list_.append(new QTreeWidgetItem(QStringList("Misc. Regions")));
- item_list_.append(new QTreeWidgetItem(QStringList("Typographical lines")));
-
- QLabel* title = new QLabel(tr("Key"));
- title->setAlignment(Qt::AlignHCenter);
-
- foreach(QTreeWidgetItem* item, item_list_)
- {
- items_->addTopLevelItem(item);
- item->setCheckState(0, Qt::Checked);
- item->setExpanded(true);
- }
- items_->setHeaderHidden(true);
-
- base_id_.append(0);
- base_id_.append(region::EndOfTextRegion + 1);
- base_id_.append(region::EndOfSepsRegion + 1);
- base_id_.append(region::EndOfMiscRegion + 1);
- base_id_.append(region::EndOfTypoRegion + 1);
-
- for (int j = 0; j < base_id_.size() - 1; ++j)
- for (int i = base_id_.at(j); i < base_id_.at(j + 1) - 1; ++i)
- add_item_(key_map.at(i).first, key_map.at(i).second, false, item_list_.at(j));
-
- QVBoxLayout* layout = new QVBoxLayout;
- layout->addWidget(title);
- layout->addWidget(items_);
-
- setLayout(layout);
-
- connect(items_, SIGNAL(itemChanged(QTreeWidgetItem*, int)),
- this, SLOT(update(QTreeWidgetItem*)));
-}
-
-void KeyWidget::update_all()
-{
- foreach(QTreeWidgetItem* item, item_list_)
- for (int i = 0; i < item->childCount(); ++i)
- update(item->child(i));
-}
-
-void KeyWidget::setAll(bool b)
-{
- Qt::CheckState state;
- if (b)
- state = Qt::Checked;
- else
- state = Qt::Unchecked;
-
- foreach(QTreeWidgetItem* item, item_list_)
- item->setCheckState(0, state);
-}
-
-void KeyWidget::setAllCheck(QTreeWidgetItem* parent)
-{
- for (int i = 0; i < parent->childCount(); ++i)
- {
- if (parent->checkState(0) == Qt::Checked)
- parent->child(i)->setCheckState(0, Qt::Checked);
- else
- parent->child(i)->setCheckState(0, Qt::Unchecked);
- update(parent->child(i));
- }
-}
-
-void
-KeyWidget::change_mode(bool b)
-{
- item_list_.at(0)->child(region::Line)->setHidden(!b);
- // FIXME: we may like to hide also typographical objects.
-}
-
-void
-KeyWidget::add_item_(QString text, QColor color, bool b, QTreeWidgetItem* parent)
-{
- QTreeWidgetItem* item = new QTreeWidgetItem(QStringList(text));
- QPixmap pixmap(10, 6);
-
- pixmap.fill(color);
- item->setIcon(0, QIcon(pixmap));
- item->setCheckState(0, Qt::Checked);
- parent->addChild(item);
- item->setHidden(b);
-}
-
-bool
-KeyWidget::isChecked(region::RegionId id)
-{
- QTreeWidgetItem* current_item = 0;
-
- foreach(QTreeWidgetItem* item, item_list_)
- {
- current_item = item->child(id);
- if (item)
- break;
- else
- current_item = 0;
- }
-
- if (!current_item)
- return false;
-
- return current_item->checkState(0) == Qt::Checked;
-}
-
-void
-KeyWidget::update(QTreeWidgetItem* item_up)
-{
- int id = -1;
-
- foreach(QTreeWidgetItem* item, item_list_)
- if (item_up == item)
- {
- setAllCheck(item);
- return;
- }
-
-
- int i = 0;
- foreach(QTreeWidgetItem* item, item_list_)
- {
- id = item->indexOfChild(item_up);
- if (id != -1)
- {
- id += base_id_.at(i);
- break;
- }
- ++i;
- }
-
- emit updated(id, item_up->checkState(0) == Qt::Checked);
-}
-
-KeyWidget::~KeyWidget()
-{
-}
-
diff --git a/scribo/demo/viewer/key_widget.hh b/scribo/demo/viewer/key_widget.hh
deleted file mode 100644
index 1a3518e..0000000
--- a/scribo/demo/viewer/key_widget.hh
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_KEY_WIDGET_HH
-# define SCRIBO_DEMO_VIEWER_KEY_WIDGET_HH
-
-# include <QtGui>
-# include "common.hh"
-
-class KeyWidget
- : public QWidget
-{
- Q_OBJECT
-
-public:
- KeyWidget(const region::KeyMap& key_map);
- ~KeyWidget();
-
- bool isChecked(region::RegionId id);
- QTreeWidget* items() { return items_; };
- void update_all();
-
-signals:
- void updated(int key, bool checked);
-
-public slots:
- void setAll(bool b);
-
-private slots:
- void change_mode(bool b);
- void update(QTreeWidgetItem* item);
- void setAllCheck(QTreeWidgetItem* parent);
-
-private:
- void add_item_(QString text, QColor color, bool b, QTreeWidgetItem* parent);
-
- QTreeWidget* items_;
- QVector<QTreeWidgetItem*> item_list_;
- QVector<int> base_id_;
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_KEY_WIDGET_HH
diff --git a/scribo/demo/viewer/main.cc b/scribo/demo/viewer/main.cc
index 0c50c7b..79668f4 100644
--- a/scribo/demo/viewer/main.cc
+++ b/scribo/demo/viewer/main.cc
@@ -1,5 +1,4 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -15,35 +14,26 @@
// You should have received a copy of the GNU General Public License
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#include <QtGui>
-#include <iostream>
-
#undef MLN_WO_GLOBAL_VARS
-#include "viewer.hh"
+
+#include <scribo/make/debug_filename.hh>
#include <mln/labeling/colorize.hh>
-#include <mln/math/pi.hh>
#include <mln/io/magick/load.hh>
-#include <scribo/make/debug_filename.hh>
-#include <mln/debug/filename.hh>
#include <mln/literal/colors.hh>
+#include <mln/debug/filename.hh>
+#include <QtGui/QApplication>
+#include <mln/math/pi.hh>
-int main(int argc, char** argv)
-{
- if (argc > 2 ||
- (argc == 2 &&
- (QString(argv[1]) == "--help" || QString(argv[1]) == "-h")))
- {
- std::cout << "Usage:" << std::endl
- << argv[0] << " <image dir>" << std::endl;
- return 0;
- }
-
- Magick::InitializeMagick(*argv);
-
- Viewer* viewer = Viewer::Instance(argc, argv);
-
- if (!viewer)
- return -1;
+#include "mainwindow.hh"
- return viewer->exec();
+int main(int argc, char *argv[])
+{
+ Magick::InitializeMagick(*argv);
+ // On Linux, we NEED to use the raster graphics system.
+ // Linux don't really support openGL graphics system (the default one on Linux).
+ QApplication::setGraphicsSystem("raster");
+ QApplication a(argc, argv);
+ MainWindow w;
+ w.show();
+ return a.exec();
}
diff --git a/scribo/demo/viewer/ocr_options.cc b/scribo/demo/viewer/ocr_options.cc
deleted file mode 100644
index 0ff09d9..0000000
--- a/scribo/demo/viewer/ocr_options.cc
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "defs.hh"
-#include "ocr_options.hh"
-#include "config.hh"
-
-// Defines enum of binarization algorithms
-# include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-using namespace scribo::toolchain::internal;
-
-
-static const char *language[][2] = {
- { "English", "eng" },
- { "French", "fra" },
- { 0, 0 }
-};
-
-
-ocr_options::ocr_options(QWidget *parent)
- : OptionWidget(parent)
-{
- setupUi(this);
-
- for (unsigned i = 0; language[i][0]; ++i)
- ocr_language->insertItem(i, language[i][0]);
-
- load_config();
-}
-
-ocr_options::~ocr_options()
-{
-}
-
-
-int ocr_options::find_index(const QString& lang)
-{
- for (unsigned i = 0; language[i][0]; ++i)
- if (lang == language[i][1])
- return i;
- return 0;
-}
-
-
-void ocr_options::load_config()
-{
- config * const conf = config::get_instance();
-
- enable_ocr->setChecked(conf->ocr_enabled());
- ocr_language->setCurrentIndex(find_index(conf->ocr_language()));
-}
-
-
-void ocr_options::save_config()
-{
- config * const conf = config::get_instance();
-
- conf->set_ocr_enabled(enable_ocr->isChecked());
- conf->set_ocr_language(language[ocr_language->currentIndex()][1]);
-}
diff --git a/scribo/demo/viewer/ocr_options.hh b/scribo/demo/viewer/ocr_options.hh
deleted file mode 100644
index 67ab4ef..0000000
--- a/scribo/demo/viewer/ocr_options.hh
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_OCR_OPTIONS_HH
-# define SCRIBO_DEMO_VIEWER_OCR_OPTIONS_HH
-
-# include <QtGui>
-# include <ocr_options.ui.h>
-# include "option_widget.hh"
-
-class ocr_options : public OptionWidget, private Ui::OcrOptions
-{
- Q_OBJECT;
-
-public:
- ocr_options(QWidget *parent = 0);
- ~ocr_options();
-
- void load_config();
- void save_config();
-
-private:
- int find_index(const QString& lang);
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_OCR_OPTIONS_HH
diff --git a/scribo/demo/viewer/ocr_options.ui b/scribo/demo/viewer/ocr_options.ui
deleted file mode 100644
index d001c64..0000000
--- a/scribo/demo/viewer/ocr_options.ui
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>OcrOptions</class>
- <widget class="QWidget" name="OcrOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>366</width>
- <height>112</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QGroupBox" name="enable_ocr">
- <property name="title">
- <string>Enable OCR</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="1" column="1">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Language</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QComboBox" name="ocr_language"/>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/scribo/demo/viewer/option_widget.cc b/scribo/demo/viewer/option_widget.cc
deleted file mode 100644
index 4557749..0000000
--- a/scribo/demo/viewer/option_widget.cc
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-# include "option_widget.hh"
-
-OptionWidget::OptionWidget(QWidget * parent)
- : QWidget(parent)
-{
-}
-
-void OptionWidget::save_config()
-{
-}
-
-void OptionWidget::load_config()
-{
-}
diff --git a/scribo/demo/viewer/option_widget.hh b/scribo/demo/viewer/option_widget.hh
deleted file mode 100644
index 6b24e90..0000000
--- a/scribo/demo/viewer/option_widget.hh
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_OPTION_WIDGET_HH
-# define SCRIBO_DEMO_VIEWER_OPTION_WIDGET_HH
-
-#include <QWidget>
-
-struct OptionWidget : public QWidget
-{
- OptionWidget(QWidget * parent);
-
- virtual void load_config();
- virtual void save_config();
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_OPTION_WIDGET_HH
diff --git a/scribo/demo/viewer/preferences_dialog.cc b/scribo/demo/viewer/preferences_dialog.cc
deleted file mode 100644
index 1eb80a7..0000000
--- a/scribo/demo/viewer/preferences_dialog.cc
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "preferences_dialog.hh"
-#include "general_options.hh"
-#include "ocr_options.hh"
-#include "preprocessing_options.hh"
-#include "segmentation_options.hh"
-
-
-
-preferences_dialog::preferences_dialog(QWidget *parent)
- : QDialog(parent)
-{
- setupUi(this);
-
- // We may want to remove this useless object in the ui file.
- delete widget;
-
- setAttribute(Qt::WA_DeleteOnClose);
-
- load_option_list();
- optionList->setCurrentRow(0);
-}
-
-preferences_dialog::~preferences_dialog()
-{
-}
-
-
-void preferences_dialog::load_option_list()
-{
- static const char *options[] = { "General", "Preprocessing", "Segmentation", "OCR", 0 };
-
- int i;
- for (i = 0; options[i]; ++i)
- optionList->insertItem(i, options[i]);
-
- widgets_.fill(0, i);
-}
-
-void preferences_dialog::on_optionList_currentRowChanged(int row)
-{
- select_option_widget(row);
-}
-
-
-void preferences_dialog::select_option_widget(int row)
-{
- if (row >= widgets_.size())
- {
- qDebug() << "select_option_widget - Hu? Something wrong... Invalid row";
- return;
- }
-
- if (!widgets_[row])
- {
- QWidget *widget = 0;
-
- switch (row)
- {
- case 0:
- widget = new general_options(this);
- break;
-
- case 1:
- widget = new preprocessing_options(this);
- break;
-
- case 2:
- widget = new segmentation_options(this);
- break;
-
- case 3:
- widget = new ocr_options(this);
- break;
-
- default:
- qDebug() << "select_option_widget - Hu? Something wrong...";
- }
-
- if (widget)
- widgets_[row] = widget;
- }
-
- if (horizontalLayout_2->count() == 2)
- {
- QWidget *current_widget = horizontalLayout_2->itemAt(1)->widget();
- horizontalLayout_2->removeWidget(current_widget);
- current_widget->hide();
- }
-
- horizontalLayout_2->insertWidget(1, widgets_[row]);
- widgets_[row]->show();
-}
-
-
-void preferences_dialog::accept()
-{
- for (int i = 0; i < widgets_.size(); ++i)
- if (widgets_[i])
- {
- static_cast<OptionWidget *>(widgets_[i])->save_config();
- delete widgets_[i];
- }
- QDialog::accept();
-}
-
-
-void preferences_dialog::reject()
-{
- for (int i = 0; i < widgets_.size(); ++i)
- delete widgets_[i];
- QDialog::reject();
-}
diff --git a/scribo/demo/viewer/preferences_dialog.hh b/scribo/demo/viewer/preferences_dialog.hh
deleted file mode 100644
index 0368bbe..0000000
--- a/scribo/demo/viewer/preferences_dialog.hh
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_PREFERENCES_DIALOG_HH
-# define SCRIBO_DEMO_VIEWER_PREFERENCES_DIALOG_HH
-
-# include <QtGui>
-# include <preferences_dialog.ui.h>
-
-class preferences_dialog : public QDialog, private Ui::PreferencesDialog
-{
- Q_OBJECT;
-
-public:
- preferences_dialog(QWidget *parent = 0);
- ~preferences_dialog();
-
-private slots:
- void on_optionList_currentRowChanged(int row);
- virtual void accept();
- virtual void reject();
-
-private: // Methods
- void load_option_list();
- void select_option_widget(int row);
-
-private: // Attributes
- QVector<QWidget *> widgets_;
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_PREFERENCES_DIALOG_HH
diff --git a/scribo/demo/viewer/preferences_dialog.ui b/scribo/demo/viewer/preferences_dialog.ui
deleted file mode 100644
index 1d40563..0000000
--- a/scribo/demo/viewer/preferences_dialog.ui
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PreferencesDialog</class>
- <widget class="QDialog" name="PreferencesDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>668</width>
- <height>418</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Preferences</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Preferences</span></p></body></html></string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QListWidget" name="optionList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Maximum" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>200</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="baseSize">
- <size>
- <width>100</width>
- <height>0</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QWidget" name="widget" native="true"/>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>PreferencesDialog</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>248</x>
- <y>254</y>
- </hint>
- <hint type="destinationlabel">
- <x>157</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>buttonBox</sender>
- <signal>rejected()</signal>
- <receiver>PreferencesDialog</receiver>
- <slot>reject()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>316</x>
- <y>260</y>
- </hint>
- <hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/scribo/demo/viewer/preprocess.cc b/scribo/demo/viewer/preprocess.cc
index fd9a48b..b95cc21 100644
--- a/scribo/demo/viewer/preprocess.cc
+++ b/scribo/demo/viewer/preprocess.cc
@@ -16,14 +16,12 @@
#include "preprocess.hh"
-void preprocess::on_progress()
+void Preprocess::on_progress()
{
- emit progress();
+ emit progress();
}
-
-void preprocess::on_new_progress_label(const char *label)
+void Preprocess::on_new_progress_label(const char *label)
{
- QString lbl(label);
- emit new_progress_label(label);
+ emit newProgressLabel(QString(label));
}
diff --git a/scribo/demo/viewer/preprocess.hh b/scribo/demo/viewer/preprocess.hh
index 4562cfb..79120ff 100644
--- a/scribo/demo/viewer/preprocess.hh
+++ b/scribo/demo/viewer/preprocess.hh
@@ -14,28 +14,29 @@
// You should have received a copy of the GNU General Public License
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#ifndef SCRIBO_DEMO_VIEWER_PREPROCESS_HH
-# define SCRIBO_DEMO_VIEWER_PREPROCESS_HH
+#ifndef PREPROCESS_HH
+#define PREPROCESS_HH
-# include <QtCore/QObject>
-# include <mln/core/image/image2d.hh>
-# include <mln/value/rgb8.hh>
-# include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
+#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
+#include <mln/core/image/image2d.hh>
+#include <mln/value/rgb8.hh>
+#include <QObject>
using namespace scribo::toolchain::internal;
-struct preprocess
- : public QObject,
- public text_in_doc_preprocess_functor<mln::image2d<mln::value::rgb8> >
+class Preprocess :
+ public QObject,
+ public text_in_doc_preprocess_functor<mln::image2d<mln::value::rgb8> >
{
- Q_OBJECT;
+ Q_OBJECT
- virtual void on_progress();
- virtual void on_new_progress_label(const char *label);
+ public:
+ virtual void on_progress();
+ virtual void on_new_progress_label(const char *label);
-signals:
- void new_progress_label(const QString& label);
- void progress();
+ signals:
+ void newProgressLabel(const QString& label);
+ void progress();
};
-#endif // ! SCRIBO_DEMO_VIEWER_PREPROCESS_HH
+#endif // PREPROCESS_HH
diff --git a/scribo/demo/viewer/preprocessing_options.cc b/scribo/demo/viewer/preprocessing_options.cc
deleted file mode 100644
index 2d55fea..0000000
--- a/scribo/demo/viewer/preprocessing_options.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "defs.hh"
-#include "preprocessing_options.hh"
-#include "config.hh"
-
-// Defines enum of binarization algorithms
-# include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-using namespace scribo::toolchain::internal;
-
-preprocessing_options::preprocessing_options(QWidget *parent)
- : OptionWidget(parent)
-{
- setupUi(this);
-
- bin_algoCbox->insertItem(Convert, "Violent convert");
- bin_algoCbox->insertItem(Sauvola, "Local threshold");
- bin_algoCbox->insertItem(SauvolaMs,
- "Local threshold multiscale");
-
- load_config();
-}
-
-preprocessing_options::~preprocessing_options()
-{
-}
-
-
-void preprocessing_options::load_config()
-{
- config * const conf = config::get_instance();
-
- subsampleCb->setChecked(conf->preprocessing_subsample());
- remove_bgCb->setChecked(conf->preprocessing_remove_bg());
- deskewCb->setChecked(conf->preprocessing_deskew());
- remove_noiseCb->setChecked(conf->preprocessing_remove_noise());
- bin_algoCbox->setCurrentIndex(conf->preprocessing_bin_algo());
-}
-
-
-void preprocessing_options::save_config()
-{
- config * const conf = config::get_instance();
-
- conf->set_preprocessing_subsample(subsampleCb->isChecked());
- conf->set_preprocessing_remove_bg(remove_bgCb->isChecked());
- conf->set_preprocessing_deskew(deskewCb->isChecked());
- conf->set_preprocessing_remove_noise(remove_noiseCb->isChecked());
- conf->set_preprocessing_bin_algo(bin_algoCbox->currentIndex());
-}
diff --git a/scribo/demo/viewer/preprocessing_options.hh b/scribo/demo/viewer/preprocessing_options.hh
deleted file mode 100644
index c676880..0000000
--- a/scribo/demo/viewer/preprocessing_options.hh
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_PREPROCESSING_OPTIONS_HH
-# define SCRIBO_DEMO_VIEWER_PREPROCESSING_OPTIONS_HH
-
-# include <QtGui>
-# include <preprocessing_options.ui.h>
-# include "option_widget.hh"
-
-class preprocessing_options : public OptionWidget, private Ui::PreprocessingOptions
-{
- Q_OBJECT;
-
-public:
- preprocessing_options(QWidget *parent = 0);
- ~preprocessing_options();
-
- void load_config();
- void save_config();
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_PREPROCESSING_OPTIONS_HH
diff --git a/scribo/demo/viewer/preprocessing_options.ui b/scribo/demo/viewer/preprocessing_options.ui
deleted file mode 100644
index 962cf49..0000000
--- a/scribo/demo/viewer/preprocessing_options.ui
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PreprocessingOptions</class>
- <widget class="QWidget" name="PreprocessingOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>466</width>
- <height>198</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Configure toolchain</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Binarization method:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="bin_algoCbox"/>
- </item>
- </layout>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="subsampleCb">
- <property name="text">
- <string>Run on subsampled image</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QCheckBox" name="remove_bgCb">
- <property name="text">
- <string>Remove background (slow)</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
- <widget class="QCheckBox" name="deskewCb">
- <property name="text">
- <string>Deskew</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0">
- <widget class="QCheckBox" name="remove_noiseCb">
- <property name="text">
- <string>Remove noise</string>
- </property>
- </widget>
- </item>
- <item row="5" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>48</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/scribo/demo/viewer/process.cc b/scribo/demo/viewer/process.cc
index 8fa5b9f..1c2d22f 100644
--- a/scribo/demo/viewer/process.cc
+++ b/scribo/demo/viewer/process.cc
@@ -16,27 +16,22 @@
#include "process.hh"
-process::process(const char *doc_filename)
- : super_t(doc_filename)
+Process::Process(const char *doc_filename)
+ : superT(doc_filename)
{
-
}
-void process::on_progress()
+void Process::on_progress()
{
- emit progress();
+ emit progress();
}
-
-void process::on_new_progress_label(const char *label)
+void Process::on_new_progress_label(const char *label)
{
- QString lbl(label);
- emit new_progress_label(label);
+ emit newProgressLabel(QString(label));
}
-
-void process::on_xml_saved()
+void Process::on_xml_saved()
{
- QString filename(output_file.c_str());
- emit xml_saved(filename);
+ emit xmlSaved(QString(output_file.c_str()));
}
diff --git a/scribo/demo/viewer/process.hh b/scribo/demo/viewer/process.hh
index 09ace43..b5877b7 100644
--- a/scribo/demo/viewer/process.hh
+++ b/scribo/demo/viewer/process.hh
@@ -14,33 +14,32 @@
// You should have received a copy of the GNU General Public License
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#ifndef SCRIBO_DEMO_VIEWER_PROCESS_HH
-# define SCRIBO_DEMO_VIEWER_PROCESS_HH
+#ifndef PROCESS_HH
+#define PROCESS_HH
-# include <QtCore/QObject>
-# include <mln/core/image/image2d.hh>
-# include <scribo/toolchain/internal/content_in_doc_functor.hh>
+#include <scribo/toolchain/internal/content_in_doc_functor.hh>
+#include <mln/core/image/image2d.hh>
+#include <QObject>
using namespace scribo::toolchain::internal;
-struct process
- : public QObject,
- public content_in_doc_functor<mln::image2d<bool> >
+struct Process :
+ public QObject,
+ public content_in_doc_functor<mln::image2d<bool> >
{
- Q_OBJECT;
- typedef content_in_doc_functor<mln::image2d<bool> > super_t;
-
-public:
- process(const char *doc_filename);
-
- virtual void on_progress();
- virtual void on_new_progress_label(const char *label);
- virtual void on_xml_saved();
-
-signals:
- void new_progress_label(const QString& label);
- void progress();
- void xml_saved(const QString& filename);
+ Q_OBJECT
+ typedef content_in_doc_functor<mln::image2d<bool> > superT;
+
+ public :
+ explicit Process(const char *docFilename);
+ virtual void on_progress();
+ virtual void on_new_progress_label(const char *label);
+ virtual void on_xml_saved();
+
+ signals:
+ void newProgressLabel(const QString& label);
+ void progress();
+ void xmlSaved(const QString& filename);
};
-#endif // ! SCRIBO_DEMO_VIEWER_PROCESS_HH
+#endif // PROCESS_HH
diff --git a/scribo/demo/viewer/runner.cc b/scribo/demo/viewer/runner.cc
index da2f3bf..2cf8e97 100644
--- a/scribo/demo/viewer/runner.cc
+++ b/scribo/demo/viewer/runner.cc
@@ -1,5 +1,4 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -17,227 +16,184 @@
#include "runner.hh"
-#include <mln/core/image/image2d.hh>
-#include <mln/value/rgb8.hh>
-#include <mln/io/magick/load.hh>
-
-#include "demodir.hh"
-
-#include "process.hh"
-#include "preprocess.hh"
-#include "config.hh"
-#include "defs.hh"
-
-
-
using namespace mln;
using namespace scribo::toolchain::internal;
-static
-QString get_pathto(const QString& file,
- const QString localdirsuffix = QString())
+static QString get_pathto(const QString& file, const QString localdirsuffix = QString())
{
- QFile f(SCRIBO_LOCAL_DEMODIR "/" + localdirsuffix + "/" + file);
- if (f.exists())
- return SCRIBO_LOCAL_DEMODIR "/" + localdirsuffix;
-
- f.setFileName(SCRIBO_PREFIX_LIBEXECDIR "/" + file);
- if (f.exists())
- return SCRIBO_PREFIX_LIBEXECDIR;
-
- qDebug() << "FATAL ERROR: Can't locate file: " + file;
+ QFile f(SCRIBO_LOCAL_DEMODIR "/" + localdirsuffix + "/" + file);
+ if (f.exists())
+ return SCRIBO_LOCAL_DEMODIR "/" + localdirsuffix;
+ f.setFileName(SCRIBO_PREFIX_BINDIR "/" + file);
+ if (f.exists())
+ return SCRIBO_PREFIX_BINDIR;
return "";
}
-
-runner::runner(QObject *parent)
- : QThread(parent)
+Runner::Runner(QObject *parent) :
+ QThread(parent)
{
- moveToThread(this);
+ moveToThread(this);
}
-
-void runner::run()
+void Runner::run()
{
-
- switch(mode_)
- {
- default:
- case Demat:
+ if(mode_ == Demat)
{
- image2d<value::rgb8> ima;
- io::magick::load(ima, args_.at(0).toUtf8().constData());
-
- image2d<bool> bin_ima = preprocess(ima);
- process(ima, bin_ima);
+ image2d<value::rgb8> ima;
+ for(int i = 0; i < args_.count(); i++)
+ {
+ io::magick::load(ima, args_.at(i).toUtf8().constData());
+ image2d<bool> bin_ima = preprocess(ima);
+ process(ima, bin_ima, i);
+ }
}
- break;
- case Export:
- export_as();
- break;
- }
+ else if(mode_ == Export)
+ export_as();
- emit finished();
- qDebug() << "Done.";
+ emit finished();
}
-
-void runner::stop()
+void Runner::stop()
{
- terminate();
+ terminate();
}
-
-
// Demat related stuff
-
-void runner::start_demat(const QString& filename)
+void Runner::start_demat(const QStringList& filenames)
{
- args_.clear();
- args_ << filename;
- mode_ = Demat;
-
- QThread::start();
+ args_.clear();
+ args_ = filenames;
+ mode_ = Demat;
+ QThread::start();
}
-image2d<bool>
-runner::preprocess(const image2d<value::rgb8>& ima)
+image2d<bool> Runner::preprocess(const image2d<value::rgb8>& ima)
{
- emit new_step("Preprocessing");
-
- ::preprocess f;
+ emit new_step("Preprocessing");
+ Preprocess f;
- // Load config.
- config * const conf = config::get_instance();
+ // Load config.
+ Configs *const conf = Configs::getInstance();
- connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
- connect(&f, SIGNAL(new_progress_label(const QString&)),
- this, SIGNAL(new_progress_label(const QString&)));
+ connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
+ connect(&f, SIGNAL(newProgressLabel(QString)),
+ this, SIGNAL(new_progress_label(const QString&)));
- f.enable_subsample = conf->preprocessing_subsample();
- f.enable_fg_extraction = conf->preprocessing_remove_bg();
- f.enable_deskew = conf->preprocessing_deskew();
- f.enable_denoising = conf->preprocessing_remove_noise();
+ f.enable_subsample = conf->preprocessingSubsample();
+ f.enable_fg_extraction = conf->preprocessingRemoveBg();
+ f.enable_deskew = conf->preprocessingDeskew();
+ f.enable_denoising = conf->preprocessingRemoveNoise();
- f.binarization_algo = static_cast<Binarization_Algo>(conf->preprocessing_bin_algo());
+ f.binarization_algo = static_cast<Binarization_Algo>(conf->preprocessingBinAlgo());
- emit new_progress_max_value(f.nsteps());
+ emit new_progress_max_value(f.nsteps());
- // Perform preprocessing.
- f(ima);
+ // Perform preprocessing.
+ f(ima);
- qDebug() << "Preprocess Done.";
- return f.output;
+ return f.output;
}
-void runner::process(const image2d<value::rgb8>& original_ima,
- const image2d<bool>& processed_ima)
+void Runner::process(const image2d<value::rgb8>& original_ima,
+ const image2d<bool>& processed_ima, int arg)
{
- emit new_step("Page segmentation");
-
- ::process f(args_.at(0).toUtf8().constData());
-
- connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
- connect(&f, SIGNAL(new_progress_label(const QString&)),
- this, SIGNAL(new_progress_label(const QString&)));
- connect(&f, SIGNAL(xml_saved(const QString&)),
- this, SIGNAL(xml_saved(const QString&)));
-
- // Load config.
- config * const conf = config::get_instance();
-
- defs::FindSeparators
- find_seps = static_cast<defs::FindSeparators>(conf->segmentation_find_seps());
- f.enable_line_seps = (find_seps == defs::Lines
- || find_seps == defs::LinesAndWhitespaces);
- f.enable_whitespace_seps = (find_seps == defs::Whitespaces
- || find_seps == defs::LinesAndWhitespaces);
- f.enable_ocr = conf->ocr_enabled();
- f.ocr_language = conf->ocr_language().toAscii().data();
- f.xml_format = scribo::io::xml::PageExtended;
-
-
- f.save_doc_as_xml = true;
- QFileInfo file(args_.at(0));
- QString output_dir = QDir::tempPath();
- if (conf->general_save_xml_enabled())
- {
- if (conf->general_save_xml_same_dir())
- output_dir = file.absolutePath();
- else if (conf->general_save_xml_custom_dir())
- output_dir = conf->general_save_xml_custom_dir_path();
- else
- qDebug() << "runner::progress - Invalid xml saving option!";
+ emit new_step("Page segmentation");
- QDir dir(output_dir);
- if (!dir.exists() && !dir.mkpath(output_dir))
- output_dir = QDir::tempPath();
- }
- f.output_file = (output_dir + "/" + file.baseName() + "_gui.xml").toUtf8().constData();
+ Process f(args_.at(arg).toUtf8().constData());
- emit new_progress_max_value(f.nsteps());
+ connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
+ connect(&f, SIGNAL(newProgressLabel(QString)),
+ this, SIGNAL(new_progress_label(QString)));
+ connect(&f, SIGNAL(xmlSaved(QString)),
+ this, SIGNAL(xml_saved(const QString&)));
- // Perform text detection.
- f(original_ima, processed_ima);
+ // Load config.
+ Configs *const conf = Configs::getInstance();
- qDebug() << "Process Done.";
-}
+ Separator::FindSeparator find_seps = static_cast<Separator::FindSeparator>(conf->segmentationFindSeps());
+ f.enable_line_seps = (find_seps == Separator::Lines
+ || find_seps == Separator::Both);
+ f.enable_whitespace_seps = (find_seps == Separator::Whitespaces
+ || find_seps == Separator::Both);
+ f.enable_ocr = conf->ocrEnabled();
+ f.ocr_language = conf->ocrLanguage().toAscii().data();
+ f.xml_format = scribo::io::xml::PageExtended;
+ f.save_doc_as_xml = true;
+ QFileInfo file(args_.at(arg));
+ QString output_dir = QDir::tempPath();
+ if (conf->generalSaveXmlEnabled())
+ {
+ if (conf->generalSaveXmlSameDir())
+ output_dir = file.absolutePath();
+ else if (conf->generalSaveXmlCustomDir())
+ output_dir = conf->generalSaveXmlCustomDirPath();
+
+ QDir dir(output_dir);
+ if (!dir.exists() && !dir.mkpath(output_dir))
+ output_dir = QDir::tempPath();
+ }
+ QString filename = (output_dir + "/" + file.baseName() + "_gui.xml");
+ f.output_file = filename.toUtf8().constData();
+ emit new_progress_max_value(f.nsteps());
-// Export related stuff
+ // Perform text detection.
+ f(original_ima, processed_ima);
+}
-void runner::start_export(const QString& imgfile,
- const QString& xmlfile, const QString& outfile)
+// Export related stuff
+void Runner::start_export(const QString& imgfile,
+ const QString& xmlfile, const QString& outfile)
{
- args_.clear();
- args_ << imgfile << xmlfile << outfile;
- mode_ = Export;
+ args_.clear();
+ args_ << imgfile << xmlfile << outfile;
+ mode_ = Export;
- QThread::start();
+ QThread::start();
}
-
-void runner::export_as()
+void Runner::export_as()
{
- emit new_step("Exporting document...");
- emit new_progress_max_value(2);
-
- // Checking output format
- QFileInfo f(args_.at(2));
-
- QString pathto_xml2doc = get_pathto("scribo-xml2doc", "xml2doc");
-
- if (pathto_xml2doc.isEmpty())
- {
- QMessageBox::critical(0, "Fatal error", "Cannot export! Cannot find scribo-xml2doc program!");
- return;
- }
-
- emit progress();
-
- int rvalue = 0;
- if (f.suffix() == "pdf")
- {
- emit new_step("Exporting as PDF...");
- rvalue = system(QString("%1/scribo-xml2doc --pdf %2 %3 %4")
- .arg(pathto_xml2doc).arg(args_.at(1)).arg(args_.at(0))
- .arg(args_.at(2)).toAscii().constData());
- }
- else if (f.suffix() == "html" || f.suffix() == "htm")
- {
- emit new_step("Exporting as HTML...");
- rvalue = system(QString("%1/scribo-xml2doc --html %2 %3 %4")
- .arg(pathto_xml2doc).arg(args_.at(1)).arg(args_.at(0))
- .arg(args_.at(2)).toAscii().constData());
- }
- else
- QMessageBox::critical(0, "Fatal error", "Cannot export! Invalid output format!");
-
- if (rvalue != 0)
- QMessageBox::critical(0, "Fatal error", "Cannot export! Return value is not 0!");
+ emit new_step("Exporting document");
+ emit new_progress_max_value(2);
+
+ // Checking output format
+ QFileInfo f(args_.at(2));
+
+ QString pathto_xml2doc = get_pathto("scribo-xml2doc", "xml2doc");
+
+ if (pathto_xml2doc.isEmpty())
+ {
+ QMessageBox::critical(0, "Fatal error", "Cannot export! Cannot find scribo-xml2doc program!");
+ return;
+ }
+
+ emit progress();
+
+ int rvalue = 0;
+ if (f.suffix() == "pdf")
+ {
+ emit new_step("Exporting as PDF");
+ rvalue = system(QString("%1/scribo-xml2doc --pdf %2 %3 %4")
+ .arg(pathto_xml2doc).arg(args_.at(1)).arg(args_.at(0))
+ .arg(args_.at(2)).toAscii().constData());
+ }
+ else if (f.suffix() == "html" || f.suffix() == "htm")
+ {
+ emit new_step("Exporting as HTML");
+ rvalue = system(QString("%1/scribo-xml2doc --html %2 %3 %4")
+ .arg(pathto_xml2doc).arg(args_.at(1)).arg(args_.at(0))
+ .arg(args_.at(2)).toAscii().constData());
+ }
+ else
+ QMessageBox::critical(0, "Fatal error", "Cannot export! Invalid output format!");
+
+ if (rvalue != 0)
+ QMessageBox::critical(0, "Fatal error", "Cannot export! Return value is not 0!");
}
diff --git a/scribo/demo/viewer/runner.hh b/scribo/demo/viewer/runner.hh
index 176dcd8..ee0e537 100644
--- a/scribo/demo/viewer/runner.hh
+++ b/scribo/demo/viewer/runner.hh
@@ -14,60 +14,61 @@
// You should have received a copy of the GNU General Public License
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#ifndef SCRIBO_DEMO_VIEWER_RUNNER_HH
-# define SCRIBO_DEMO_VIEWER_RUNNER_HH
-
-# include <QtGui>
-
-# include <mln/core/image/image2d.hh>
-# include <mln/value/rgb8.hh>
+#ifndef RUNNER_HH
+#define RUNNER_HH
+
+#include <mln/core/image/image2d.hh>
+#include <mln/io/magick/load.hh>
+#include <mln/value/rgb8.hh>
+#include <QStringList>
+#include <QMessageBox>
+#include <QThread>
+#include <QFile>
+
+#include "preprocess.hh"
+#include "process.hh"
+#include "configs.hh"
+#include "region.hh"
+#include "demodir.hh"
using namespace mln;
enum RunMode
{
- Demat,
- Export
+ Demat,
+ Export
};
-class runner : public QThread
+class Runner :
+ public QThread
{
- Q_OBJECT;
-
-public:
- runner(QObject *parent = 0);
-
- void start_demat(const QString& filename);
- void start_export(const QString& imgfile,
- const QString& xmlfile, const QString& outfile);
-
-public slots:
- void stop();
-
-signals:
- void new_step(const QString& step_name);
- void new_progress_max_value(int i);
- void new_progress_label(const QString& msg);
- void xml_saved(const QString& filename);
- void progress();
- void finished();
-
-private: // members
- image2d<bool> preprocess(const image2d<value::rgb8>& ima);
- void process(const image2d<value::rgb8>& original_ima,
- const image2d<bool>& processed_ima);
-
- void export_as();
-
- virtual void run();
-
- template <typename V>
- unsigned find_best_scale(const mln::image2d<V>& ima);
-
-private: // attributes
- QStringList args_;
- RunMode mode_;
+ Q_OBJECT
+
+ public:
+ explicit Runner(QObject *parent = 0);
+ void start_demat(const QStringList& filenames);
+ void start_export(const QString& imgfile, const QString& xmlfile, const QString& outfile);
+
+ private:
+ image2d<bool> preprocess(const image2d<value::rgb8>& ima);
+ void process(const image2d<value::rgb8>& original_ima, const image2d<bool>& processed_ima, int arg);
+ void export_as();
+ virtual void run();
+ template <typename V> unsigned find_best_scale(const mln::image2d<V>& ima);
+
+ QStringList args_;
+ RunMode mode_;
+
+ public slots:
+ void stop();
+
+ signals:
+ void new_step(const QString& step_name);
+ void new_progress_max_value(int i);
+ void new_progress_label(const QString& msg);
+ void xml_saved(const QString& filename);
+ void progress();
+ void finished();
};
-
-#endif // ! SCRIBO_DEMO_VIEWER_RUNNER_HH
+#endif // RUNNER_HH
diff --git a/scribo/demo/viewer/segmentation_options.cc b/scribo/demo/viewer/segmentation_options.cc
deleted file mode 100644
index c120879..0000000
--- a/scribo/demo/viewer/segmentation_options.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "defs.hh"
-#include "segmentation_options.hh"
-#include "config.hh"
-
-// Defines enum of binarization algorithms
-# include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
-
-using namespace scribo::toolchain::internal;
-
-segmentation_options::segmentation_options(QWidget *parent)
- : OptionWidget(parent)
-{
- setupUi(this);
-
- find_sepsCbox->insertItem(defs::Lines, "Lines");
- find_sepsCbox->insertItem(defs::Whitespaces, "Whitespaces");
- find_sepsCbox->insertItem(defs::LinesAndWhitespaces, "Lines and whitespaces");
-
- load_config();
-}
-
-segmentation_options::~segmentation_options()
-{
-}
-
-
-void segmentation_options::load_config()
-{
- config * const conf = config::get_instance();
-
- find_sepsCbox->setCurrentIndex(conf->segmentation_find_seps());
-}
-
-
-void segmentation_options::save_config()
-{
- config * const conf = config::get_instance();
-
- conf->set_segmentation_find_seps(find_sepsCbox->currentIndex());
-}
diff --git a/scribo/demo/viewer/segmentation_options.hh b/scribo/demo/viewer/segmentation_options.hh
deleted file mode 100644
index bdf65f9..0000000
--- a/scribo/demo/viewer/segmentation_options.hh
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_SEGMENTATION_OPTIONS_HH
-# define SCRIBO_DEMO_VIEWER_SEGMENTATION_OPTIONS_HH
-
-# include <QtGui>
-# include <segmentation_options.ui.h>
-# include "option_widget.hh"
-
-class segmentation_options : public OptionWidget, private Ui::SegmentationOptions
-{
- Q_OBJECT;
-
-public:
- segmentation_options(QWidget *parent = 0);
- ~segmentation_options();
-
- void load_config();
- void save_config();
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_SEGMENTATION_OPTIONS_HH
diff --git a/scribo/demo/viewer/segmentation_options.ui b/scribo/demo/viewer/segmentation_options.ui
deleted file mode 100644
index 485e448..0000000
--- a/scribo/demo/viewer/segmentation_options.ui
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SegmentationOptions</class>
- <widget class="QWidget" name="SegmentationOptions">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Find separators</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="find_sepsCbox">
- <property name="editable">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="1" column="0">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>258</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/scribo/demo/viewer/step_widget.cc b/scribo/demo/viewer/step_widget.cc
deleted file mode 100644
index 19b5d0f..0000000
--- a/scribo/demo/viewer/step_widget.cc
+++ /dev/null
@@ -1,178 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-# include "step_widget.hh"
-# include "config.hh"
-
-StepWidget::StepWidget()
- : view_(new QListWidget()),
- step_(QString::Null())
-{
- QLabel* title = new QLabel(tr("Steps"));
- title->setAlignment(Qt::AlignHCenter);
-
- QVBoxLayout* layout = new QVBoxLayout;
-
- layout->addWidget(title);
- layout->addWidget(view_);
-
- view_->setSortingEnabled(true);
-
- setLayout(layout);
-
- connect(view_, SIGNAL(itemActivated(QListWidgetItem*)),
- this, SLOT(activate(QListWidgetItem*)));
-
- connect(this, SIGNAL(activated(QListWidgetItem*)),
- this, SLOT(activate(QListWidgetItem*)));
-
-}
-
-StepWidget::~StepWidget()
-{
-}
-
-
-void StepWidget::activate(QListWidgetItem* item)
-{
- QString key, value;
-
- StepQMap::iterator iter = map_.find(item->text());
-
- if (iter != map_.end())
- {
- view_->setCurrentItem(item);
- step_ = item->text();
- key = iter.key();
- value = iter.value();
-
- qDebug() << "Loading " << value;
- emit load_xml(value);
- }
- else
- qDebug() << "Step not found!";
-
- emit step_selected(view_->count());
-}
-
-
-void StepWidget::fill_steps(QString file, bool step, bool container)
-{
- view_->clear();
- map_.clear();
-
- if (container)
- {
- emit change_base(true);
- // emit load_image(file, true);
- emit load_xml(file);
- }
- else
- {
- emit change_base(false);
- // image is loaded once
- emit load_image(file, false);
-
-
- QFileInfo f(file);
- file_with_no_ext_ = f.baseName();
-
- QStringList dirlist;
- dirlist << f.absolutePath() << QDir::tempPath();
-
- // Set directories to look at according to settings.
- config * const conf = config::get_instance();
- if (conf->general_save_xml_custom_dir())
- dirlist << conf->general_save_xml_custom_dir_path();
-
- foreach(QString path, dirlist)
- {
- QDir dir(path);
-
- if (dir.isReadable())
- {
- QStringList filter;
- filter << "*.xml";
- QFileInfoList xml_list = dir.entryInfoList(filter);
- for (int i = 0; i < xml_list.size(); ++i)
- insert_new_entry(xml_list.at(i));
- }
- }
-
- if ( (step && step_ != QString::Null()))
- {
- QList<QListWidgetItem*> list = view_->findItems(step_, Qt::MatchContains);
-
- if (!list.isEmpty())
- emit activated(list.first());
- }
- else
- {
- step_ = QString::Null();
- if (view_->count())
- emit activated(view_->item(0));
- }
- }
-}
-
-
-QListWidgetItem* StepWidget::insert_new_entry(const QFileInfo& file)
-{
- QListWidgetItem *item = 0;
-
- if (file.fileName().startsWith(file_with_no_ext_))
- {
- QString key = file.baseName();
- key.replace(file_with_no_ext_ + QString("_"), QString(""));
- key.replace(QRegExp("^step([0-9])"), "Step \\1");
- key.replace(QRegExp("^Step ([0-9])_"), "Step \\1 : ");
- key.replace("_", " ");
-
- bool exists = (map_.find(key) != map_.end());
-
- map_.insertMulti(key, file.absoluteFilePath());
-
- if (!exists)
- {
- item = new QListWidgetItem(key);
- view_->addItem(item);
- }
- else
- item = view_->findItems(key, Qt::MatchCaseSensitive).at(0);
- }
-
- return item;
-}
-
-
-QListWidgetItem* StepWidget::add_element(const QString& element)
-{
- QListWidgetItem *item = new QListWidgetItem(element);
- view_->addItem(item);
-
- return item;
-}
-
-QString StepWidget::current() const
-{
- return map_.value(step_);
-}
-
-
-
-
-
-
diff --git a/scribo/demo/viewer/step_widget.hh b/scribo/demo/viewer/step_widget.hh
deleted file mode 100644
index f648ede..0000000
--- a/scribo/demo/viewer/step_widget.hh
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-
-#ifndef SCRIBO_DEMO_VIEWER_STEP_WIDGET_HH_
-# define SCRIBO_DEMO_VIEWER_STEP_WIDGET_HH_
-
-# include <QtGui>
-
-typedef QMap<QString, QString> StepQMap;
-
-class StepWidget
- : public QWidget
-{
- Q_OBJECT
-
-public:
- StepWidget();
- ~StepWidget();
- QListWidgetItem* add_element(const QString& element);
-
- QString current() const;
-
-signals:
- void load_image(QString, bool);
- void load_xml(QString);
- void activated(QListWidgetItem*);
- void change_base(bool);
- void step_selected(bool);
-
-public slots:
- void fill_steps(QString file, bool step = false, bool container = false);
- void activate(QListWidgetItem* item);
- QListWidgetItem* insert_new_entry(const QFileInfo& file);
-
-private:
- QListWidget* view_;
- StepQMap map_;
- QString step_;
- QString file_with_no_ext_;
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_STEP_WIDGET_HH_
diff --git a/scribo/demo/viewer/viewer.cc b/scribo/demo/viewer/viewer.cc
deleted file mode 100644
index 866761d..0000000
--- a/scribo/demo/viewer/viewer.cc
+++ /dev/null
@@ -1,1021 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-
-#include <iostream>
-#include <limits.h>
-
-#include "viewer.hh"
-#include "key_widget.hh"
-#include "browser_widget.hh"
-#include "xml_widget.hh"
-#include "step_widget.hh"
-#include "image_scene.hh"
-#include "image_view.hh"
-#include "image_region.hh"
-#include "help_dialog.hh"
-#include "preferences_dialog.hh"
-#include "runner.hh"
-#include "config.hh"
-
-#include "common.hh"
-
-Viewer::Viewer(int &argc, char** argv)
- : app_ (new QApplication(argc, argv)),
- win_ (new QMainWindow()),
- image_(0),
- scene_(new ImageScene()),
- files_(new QDirModel()),
- doc_layout_(0),
- key_map_(region::RegionIdCount),
- no_cache_(false),
- extended_mode_(false),
- xml_file_(QString::Null()),
- base64_(false),
- text_(true),
- use_image_(true),
- pdialog_(win_)
-{
- // Key map
- // --------
-
- key_map_[region::Text] = qMakePair(tr("Text Region"), QColor(0, 200, 0));
-
- // Extension
- key_map_[region::Line] = qMakePair(tr("Text line"), QColor(255, 0, 0));
-
- key_map_[region::Image] = qMakePair(tr("Image"), QColor(255, 120, 0));
- key_map_[region::Noise] = qMakePair(tr("Noise"), QColor(43, 39, 128));
- key_map_[region::Table] = qMakePair(tr("Table"), QColor(220, 246, 0));
- key_map_[region::LineDrawing] = qMakePair(tr("LineDrawing"),
- QColor(255, 198, 0));
- key_map_[region::Graphic] = qMakePair(tr("Graphic"), QColor(255, 0, 144));
- key_map_[region::Chart] = qMakePair(tr("Chart"), QColor(0, 204, 255));
- key_map_[region::Maths] = qMakePair(tr("Maths"), QColor(170, 0, 255));
-
- // Extension
- key_map_[region::HorizontalSeparator] = qMakePair(tr("HorizontalSeparator"), QColor(0, 0, 255));
- key_map_[region::VerticalSeparator] = qMakePair(tr("VerticalSeparator"), QColor(0, 0, 255));
- key_map_[region::WhitespaceSeparator] = qMakePair(tr("Whitespace Separator"), QColor(0, 0, 128));
-
- // Extension
- key_map_[region::Baseline] = qMakePair(tr("Baseline"), QColor(128, 0, 255));
- key_map_[region::Meanline] = qMakePair(tr("Meanline"), QColor(128, 0, 255));
-
-
-
- // Region ids
- // ----------
-
- region_ids_["TextRegion"] = region::Text;
-
- // Extension
- region_ids_["Line"] = region::Line;
-
- region_ids_["ImageRegion"] = region::Image;
- region_ids_["NoiseRegion"] = region::Noise;
- region_ids_["TableRegion"] = region::Table;
- region_ids_["Line_drawingRegion"] = region::LineDrawing;
- region_ids_["GraphicRegion"] = region::Graphic;
- region_ids_["ChartRegion"] = region::Chart;
- region_ids_["MathsRegion"] = region::Maths;
-
- // Extension
- region_ids_["VerticalSeparatorRegion"] = region::VerticalSeparator;
- region_ids_["HorizontalSeparatorRegion"] = region::HorizontalSeparator;
- region_ids_["WhitespaceSeparatorRegion"] = region::WhitespaceSeparator;
-
-
-
- win_->resize(1152, 864);
- win_->statusBar();
-
- QMenu* file_menu = win_->menuBar()->addMenu(tr("File"));
- QMenu* option_menu = win_->menuBar()->addMenu(tr("Options"));
- QMenu* view_menu = win_->menuBar()->addMenu(tr("View"));
- QMenu* help_menu = win_->menuBar()->addMenu(tr("Help"));
-
-
- // File menu
-
- QAction *doc_seg_action = create_action("Segment document", file_menu,
- "Segment document", "Ctrl+S");
- connect(doc_seg_action, SIGNAL(triggered()),
- this, SLOT(run_process()));
- file_menu->addAction(doc_seg_action);
-
- file_menu->addSeparator();
-
- export_action_ = create_action("Export as...", file_menu,
- "Export as...", "Shift+Ctrl+S");
- connect(export_action_, SIGNAL(triggered()),
- this, SLOT(export_as()));
- file_menu->addAction(export_action_);
- export_action_->setEnabled(false);
-
- file_menu->addSeparator();
-
- QAction *preview_print_action = create_action("Printing preview", file_menu,
- "Printint preview", "Ctrl+P");
- connect(preview_print_action, SIGNAL(triggered()),
- this, SLOT(preview_print()));
- file_menu->addAction(preview_print_action);
- preview_print_action->setEnabled(false);
-
-
- QAction *print_action = create_action("Print", file_menu,
- "Print", "Ctrl+P");
- connect(print_action, SIGNAL(triggered()),
- this, SLOT(print()));
- file_menu->addAction(print_action);
- print_action->setEnabled(false);
-
- file_menu->addSeparator();
-
-
- QAction* quit_action = create_action("Quit", file_menu,
- "Exit the program.", "Ctrl+q");
- connect(quit_action, SIGNAL(triggered()),
- app_, SLOT(quit()));
- file_menu->addAction(quit_action);
-
- // Option menu
-
- QAction* preferences_action_ = create_action("Preferences", option_menu,
- "Preferences", "Ctrl+Alt+P");
- preferences_action_->setCheckable(false);
- connect(preferences_action_, SIGNAL(triggered(bool)),
- this, SLOT(on_preferences()));
- option_menu->addAction(preferences_action_);
-
-
- // View menu
-
- outline_action_ = create_action("Draw outline", view_menu,
- "Draw region outlines.", "Ctrl+o");
- outline_action_->setCheckable(true);
- outline_action_->setChecked(true);
- connect(outline_action_, SIGNAL(toggled(bool)),
- this, SIGNAL(setOutline(bool)));
- view_menu->addAction(outline_action_);
-
- precise_action_ = create_action("Precise outline", view_menu,
- "1px outline relative to the image "
- "(1px relative to the view if off).",
- "Shift+Ctrl+p");
- precise_action_->setCheckable(true);
- precise_action_->setChecked(false);
- connect(precise_action_, SIGNAL(toggled(bool)),
- this, SIGNAL(setPrecise(bool)));
- view_menu->addAction(precise_action_);
-
- fill_action_ = create_action("Fill regions", view_menu,
- "Color the inside of regions.", "Ctrl+f");
- fill_action_->setCheckable(true);
- fill_action_->setChecked(true);
- connect(fill_action_, SIGNAL(toggled(bool)),
- this, SIGNAL(setFill(bool)));
- view_menu->addAction(fill_action_);
-
- QAction* cache_action = create_action("Disable cache", view_menu,
- "Disable the image cache (useful for"
- " large images).", "Ctrl+c");
- cache_action->setCheckable(true);
- cache_action->setChecked(false);
- connect(cache_action, SIGNAL(toggled(bool)),
- this, SLOT(useCache(bool)));
- view_menu->addAction(cache_action);
-
-
- QAction* extended_action = create_action("Extended mode", view_menu,
- "If enabled, some features "
- "not supported by ICDAR"
- " are added such as text regions"
- "or text lines", "Ctrl+e");
- extended_action->setCheckable(true);
- extended_action->setChecked(false);
- connect(extended_action, SIGNAL(toggled(bool)),
- this, SLOT(useExtended(bool)));
- view_menu->addAction(extended_action);
-
- QAction* show_image_action = create_action("Show pictures", view_menu,
- "Display pictures on the scene or not",
- "Ctrl+i");
- show_image_action->setCheckable(true);
- show_image_action->setChecked(true);
- connect(show_image_action, SIGNAL(toggled(bool)),
- this, SLOT(useImage(bool)));
- view_menu->addAction(show_image_action);
-
- QAction* show_text_action = create_action("Show text", view_menu,
- "Show detected text inside boxes.",
- "Ctrl+t");
- show_text_action->setCheckable(true);
- show_text_action->setChecked(true);
- connect(show_text_action, SIGNAL(toggled(bool)),
- this, SLOT(useText(bool)));
- view_menu->addAction(show_text_action);
-
- key_wgt_ = new KeyWidget(key_map_);
- QAction *show_region_action = create_action("Show regions", view_menu,
- "Display regions that are present in"
- " the XML file.",
- "Ctrl+r");
- show_region_action->setCheckable(true);
- show_region_action->setChecked(true);
- connect(show_region_action, SIGNAL(toggled(bool)),
- key_wgt_, SLOT(setAll(bool)));
- view_menu->addAction(show_region_action);
-
- // Help menu
-
- QAction* about_action = create_action("About", help_menu,
- "About this program",
- "Ctrl+h");
- connect(about_action, SIGNAL(triggered()),
- this, SLOT(help()));
- help_menu->addAction(about_action);
-
- // Layout
-
- QSplitter* h_splitter = new QSplitter();
- QSplitter* v_splitter = new QSplitter(Qt::Vertical);
- QSplitter* v_splitter2 = new QSplitter(Qt::Vertical);
-
- step_widget_ = new StepWidget();
- XmlWidget* xml_wgt = new XmlWidget();
- browser_wgt_ = new BrowserWidget(files_, argc != 2 ? QString() : argv[1]);
- image_wgt_ = new ImageWidget(scene_);
-
- connect(step_widget_, SIGNAL(step_selected(bool)),
- export_action_, SLOT(setEnabled(bool)));
- connect(step_widget_, SIGNAL(step_selected(bool)),
- print_action, SLOT(setEnabled(bool)));
- connect(step_widget_, SIGNAL(step_selected(bool)),
- preview_print_action, SLOT(setEnabled(bool)));
-
- scene_->setBackgroundBrush(scene_->palette().window());
-
- v_splitter->addWidget(step_widget_);
- v_splitter->addWidget(key_wgt_);
- v_splitter->addWidget(browser_wgt_);
-
- v_splitter2->addWidget(image_wgt_);
- v_splitter2->addWidget(xml_wgt);
-
- h_splitter->addWidget(v_splitter);
- h_splitter->addWidget(v_splitter2);
-
- win_->setCentralWidget(h_splitter);
-
- QList<int> v_sizes;
- v_sizes << 200 << 250 << 350;
- v_splitter->setSizes(v_sizes);
-
- QList<int> v_sizes2;
- v_sizes2 << 725 << 175;
- v_splitter2->setSizes(v_sizes2);
-
- QList<int> h_sizes;
- h_sizes << 200 << 900;
- h_splitter->setSizes(h_sizes);
-
- connect(browser_wgt_, SIGNAL(activated(QString, bool, bool)),
- step_widget_, SLOT(fill_steps(QString, bool, bool)));
-
- connect(step_widget_, SIGNAL(change_base(bool)),
- this, SLOT(change_base(bool)));
- connect(step_widget_, SIGNAL(load_image(QString, bool)),
- this, SLOT(load(QString, bool)));
- connect(step_widget_, SIGNAL(load_xml(QString)),
- this, SLOT(load_xml(QString)));
-
- connect(this, SIGNAL(mode_changed(bool)),
- key_wgt_, SLOT(change_mode(bool)));
- connect(this, SIGNAL(updated()),
- image_wgt_, SLOT(update()));
- connect(this, SIGNAL(fill_xml(QString)),
- xml_wgt, SLOT(fill_widget(QString)));
-
- connect(key_wgt_, SIGNAL(updated(int, bool)),
- this, SIGNAL(key_updated(int, bool)));
-
- connect(scene_, SIGNAL(selected(QString, QString)),
- xml_wgt, SLOT(select(QString, QString)));
- connect(scene_, SIGNAL(deselected()),
- xml_wgt, SLOT(deselect()));
-
- connect(image_wgt_, SIGNAL(scaleUpdated(qreal)),
- this, SLOT(maybeChangeCacheMode(qreal)));
-
-
- // Progress dialog and process runner.
- pdialog_.setModal(true);
- pdialog_.setAutoClose(false);
- pdialog_.setCancelButton(0);
- connect(&runner_, SIGNAL(finished()), &pdialog_, SLOT(close()));
-
- connect(&runner_, SIGNAL(new_step(const QString&)),
- &pdialog_, SLOT(setWindowTitle(const QString&)));
- connect(&runner_, SIGNAL(new_progress_max_value(int)),
- &pdialog_, SLOT(setMaximum(int)));
- connect(&runner_, SIGNAL(new_progress_label(const QString&)),
- &pdialog_, SLOT(setLabelText(const QString&)));
- connect(&runner_, SIGNAL(progress()),
- this, SLOT(run_progress()));
- connect(&runner_, SIGNAL(xml_saved(const QString&)),
- this, SLOT(on_xml_saved(const QString&)));
-
- extended_action->setChecked(true);
-}
-
-
-Viewer::~Viewer()
-{
- // Remove temporary xml files.
- foreach(QString file, tmp_files_to_remove_)
- QFile::remove(file);
-}
-
-void
-Viewer::add_text(QDomNode line)
-{
-
- int a_height = line.toElement().attribute("aHeight", "0").toInt();
- int d_height = line.toElement().attribute("dHeight", "0").toInt();
- int x_height = line.toElement().attribute("xHeight", "0").toInt();
-
- if (d_height < 0)
- d_height = -d_height;
-
- if ( (a_height - x_height) < (d_height))
- a_height = x_height + d_height;
-
- if ( (a_height - x_height) > (d_height))
- d_height = a_height - x_height;
-
- QDomNode coords = line.firstChild();
-
- while (!coords.isNull() && !coords.toElement().tagName().contains("Coords"))
- coords = coords.nextSibling();
-
- if (coords.isNull())
- {
- qDebug() << "Warning : textline without coordinates...";
- return;
- }
-
- QDomNode point = coords.firstChild();
-
- int x_min = INT_MAX;
- int y_min = INT_MAX;
-
- while (!point.isNull())
- {
- int x = point.toElement().attribute("x", "0").toInt();
- int y = point.toElement().attribute("y", "0").toInt();
-
- if (x < x_min)
- x_min = x;
-
- if (y < y_min)
- y_min = y;
-
- point = point.nextSibling();
- }
-
- QString text = line.toElement().attribute("text", "");
- QFont font("Times");
- font.setPixelSize(a_height + d_height);
- QGraphicsTextItem* text_item = scene_->addText(text, font);
- text_item->setPos(x_min, y_min);
- text_item->setTextInteractionFlags(Qt::TextSelectableByMouse);
- text_item->setZValue(5);
- text_vector_ << text_item;
- if (!text_)
- scene_->removeItem(text_item);
-
-}
-
-void
-Viewer::add_region(QDomNode father, QString attr_id)
-{
- QDomNode coords = father.firstChild();
- QString name = father.toElement().tagName();
- region::RegionId id = static_cast<region::RegionId>(region_ids_[name]);
-
- while (!coords.isNull() && !coords.toElement().tagName().contains("Coords"))
- coords = coords.nextSibling();
-
- if (coords.isNull())
- {
- qDebug() << "Warning : add_region - region without coordinates";
- return;
- }
-
- QDomNode point = coords.firstChild();
- QVector<QPoint> points;
-
- while (!point.isNull())
- {
- int x = point.toElement().attribute("x", "0").toInt();
- int y = point.toElement().attribute("y", "0").toInt();
-
- points << QPoint(x, y);
- point = point.nextSibling();
- }
-
- ImageRegion* r = new ImageRegion(id,
- key_map_[id].first,
- key_map_[id].second,
- attr_id, points,
- outline_action_->isChecked(),
- fill_action_->isChecked(),
- precise_action_->isChecked(),
- key_wgt_->isChecked(id));
-
- connect(this, SIGNAL(key_updated(int, bool)),
- r, SLOT(setDrawIfSameId(int, bool)));
- connect(this, SIGNAL(setOutline(bool)),
- r, SLOT(setOutline(bool)));
- connect(this, SIGNAL(setPrecise(bool)),
- r, SLOT(setPrecise(bool)));
- connect(this, SIGNAL(setFill(bool)),
- r, SLOT(setFill(bool)));
-
- scene_->addItem(r);
-}
-
-
-void
-Viewer::add_typo_lines(QDomNode father, QString attr_id)
-{
- // Retrieve typographical information
- int baseline = father.toElement().attribute("baseline").toInt();
- int meanline = father.toElement().attribute("meanline").toInt();
-
- QRect bbox;
-
- // Looking for bbox coordinates.
- {
- QDomNode coords = father.firstChild();
- while (!coords.isNull() && !coords.toElement().tagName().contains("Coords"))
- coords = coords.nextSibling();
-
- if (coords.isNull())
- return;
-
-
- QDomNode point = coords.firstChild();
- QVector<QPoint> points;
-
- while (!point.isNull())
- {
- int x = point.toElement().attribute("x", "0").toInt();
- int y = point.toElement().attribute("y", "0").toInt();
-
- points << QPoint(x, y);
- point = point.nextSibling();
- }
-
- QPolygon polygon(points);
- bbox = polygon.boundingRect();
- }
-
- // Creating blocks
-
- // Baseline
- {
- QVector<QPoint> points;
- points.append(QPoint(bbox.topLeft().x(), baseline));
- points.append(QPoint(bbox.topRight().x(), baseline));
-
- ImageRegion* r = new ImageRegion(region::Baseline,
- key_map_[region::Baseline].first,
- key_map_[region::Baseline].second,
- attr_id, points,
- outline_action_->isChecked(),
- fill_action_->isChecked(),
- precise_action_->isChecked(),
- key_wgt_->isChecked(region::Baseline));
-
- connect(this, SIGNAL(key_updated(int, bool)),
- r, SLOT(setDrawIfSameId(int, bool)));
- connect(this, SIGNAL(setOutline(bool)),
- r, SLOT(setOutline(bool)));
- connect(this, SIGNAL(setPrecise(bool)),
- r, SLOT(setPrecise(bool)));
- connect(this, SIGNAL(setFill(bool)),
- r, SLOT(setFill(bool)));
-
- scene_->addItem(r);
- }
-
- // Meanline
- {
- QVector<QPoint> points;
- points.append(QPoint(bbox.topLeft().x(), meanline));
- points.append(QPoint(bbox.topRight().x(), meanline));
-
- ImageRegion* r = new ImageRegion(region::Meanline,
- key_map_[region::Meanline].first,
- key_map_[region::Meanline].second,
- attr_id, points,
- outline_action_->isChecked(),
- fill_action_->isChecked(),
- precise_action_->isChecked(),
- key_wgt_->isChecked(region::Meanline));
-
- connect(this, SIGNAL(key_updated(int, bool)),
- r, SLOT(setDrawIfSameId(int, bool)));
- connect(this, SIGNAL(setOutline(bool)),
- r, SLOT(setOutline(bool)));
- connect(this, SIGNAL(setPrecise(bool)),
- r, SLOT(setPrecise(bool)));
- connect(this, SIGNAL(setFill(bool)),
- r, SLOT(setFill(bool)));
-
- scene_->addItem(r);
- }
-}
-
-
-void
-Viewer::load_xml(QString filename)
-{
- app_->setOverrideCursor(QCursor(Qt::WaitCursor));
- emit fill_xml(filename);
-
- if (image_ && image_->scene() && image_->scene() == scene_)
- scene_->removeItem(image_);
-
- text_vector_.clear();
- image_vector_.clear();
- scene_->clear();
-
- if (!base64_ && use_image_ && image_)
- scene_->addItem(image_);
-
- scene_->update();
-
- xml_file_ = filename;
- QFile f_in(xml_file_);
- f_in.open(QIODevice::ReadOnly);
-
- QDomDocument doc;
- doc.setContent(&f_in);
- f_in.close();
-
- QDomElement root = doc.documentElement();
- QDomNode page = root.firstChild();
-
- while (!page.isNull() && !page.toElement().tagName().contains("Page"))
- page = page.nextSibling();
-
- if (page.isNull())
- return;
-
- int width = page.toElement().attribute("imageWidth", "none").toInt();
- int height = page.toElement().attribute("imageHeight", "none").toInt();
-
- scene_->setSceneRect(0, 0, width, height);
-
- QDomNode region = page.firstChild();
-
- while (!region.isNull())
- {
- if (region.toElement().tagName().contains(QRegExp("(WhitespaceSeparator|Image|Graphic|Chart|Separator|Table|Text)Region")))
- {
- QString attr_id = region.toElement().attribute("id", "none");
- add_region(region, attr_id);
-
- if ( base64_ &&
- region.toElement().tagName().contains(QRegExp("(Image|Graphic|Chart|Separator|Table)Region")))
- {
- QDomNode container = region.firstChild();
-
- while (!container.isNull() && !container.toElement().tagName().contains("container"))
- container = container.nextSibling();
-
- QDomNode coords = region.firstChild();
-
- while (!coords.isNull() && !coords.toElement().tagName().contains("Coords"))
- coords = coords.nextSibling();
-
- if (!container.isNull() && !coords.isNull())
- {
- QDomNode child = container.firstChild();
-
- while (!child.isNull() && !child.toElement().tagName().contains("data"))
- child = child.nextSibling();
-
- QPixmap pix;
- QString data = child.toElement().text();
- QByteArray ba;
- ba = ba.append(data);
- QByteArray out_ba = QByteArray::fromBase64(ba);
- pix.loadFromData(out_ba);
-
- QGraphicsPixmapItem* image = new QGraphicsPixmapItem(pix);
-
- QDomNode point = coords.firstChild();
-
- int x_min = INT_MAX;
- int y_min = INT_MAX;
-
- while (!point.isNull())
- {
- int x = point.toElement().attribute("x", "0").toInt();
- int y = point.toElement().attribute("y", "0").toInt();
-
- if (x < x_min)
- x_min = x;
-
- if (y < y_min)
- y_min = y;
-
- point = point.nextSibling();
- }
-
- image->setShapeMode(QGraphicsPixmapItem::BoundingRectShape);
- image->setZValue(0);
- image->setOffset(x_min, y_min);
- if (use_image_)
- scene_->addItem(image);
- image_vector_ << image;
-
- if (no_cache_)
- image->setCacheMode(QGraphicsItem::NoCache);
- else
- image->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
-
- child = child.nextSibling();
- }
- }
-
- if (region.toElement().tagName().contains("TextRegion"))
- {
- QDomNode line = region.firstChild();
-
- do
- {
- while (!line.isNull() && !line.toElement().tagName().contains("Line"))
- line = line.nextSibling();
-
- if (!line.isNull())
- {
- if (extended_mode_)
- {
- QString line_id = line.toElement().attribute("id", "none");
- add_region(line, line_id);
- add_typo_lines(line, line_id);
- }
- add_text(line);
- }
- }
- while (!(line = line.nextSiblingElement("Line")).isNull());
- }
- }
-
- region = region.nextSibling();
- }
-
- //emit updated();
- scene_->update();
- key_wgt_->update_all();
-
- app_->restoreOverrideCursor();
-}
-
-void
-Viewer::load(QString filename, bool b)
-{
- app_->setOverrideCursor(QCursor(Qt::WaitCursor));
-
- scene_->clear();
- text_vector_.clear();
- image_vector_.clear();
- scene_->update();
- image_ = 0;
- xml_file_ = QString::Null();
-
- // Load the image in a pixmap that is directly shown on screen.
- // This is very slow when used with the normal rendering system.
- // OpenGL might speed up things a bit.
- if (b)
- image_ = new QGraphicsPixmapItem(load_base64(filename));
- else
- image_ = new QGraphicsPixmapItem(QPixmap(filename));
-
- current_image_ = filename;
-
- image_->setShapeMode(QGraphicsPixmapItem::BoundingRectShape);
- image_->setZValue(0);
- if (use_image_)
- scene_->addItem(image_);
-
- if (no_cache_)
- image_->setCacheMode(QGraphicsItem::NoCache);
- else
- image_->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
-
- app_->restoreOverrideCursor();
- emit updated();
-
- app_->restoreOverrideCursor();
-}
-
-int
-Viewer::exec()
-{
- win_->show();
- return app_->exec();
-}
-
-void
-Viewer::help()
-{
- HelpDialog dlg;
- dlg.exec();
-}
-
-void
-Viewer::maybeChangeCacheMode(qreal scale)
-{
- if (image_)
- {
- if (scale >= 0.7)
- image_->setCacheMode(QGraphicsItem::NoCache);
- else if (!no_cache_)
- image_->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
- }
-}
-
-void Viewer::useExtended(bool b)
-{
- extended_mode_ = b;
- key_wgt_->update_all();
-
- if (xml_file_ != QString::Null())
- load_xml(xml_file_);
-
- emit mode_changed(b);
-}
-
-void
-Viewer::useCache(bool b)
-{
- no_cache_ = b;
- if (b)
- {
- if (image_)
- image_->setCacheMode(QGraphicsItem::NoCache);
- }
- else
- if (image_)
- image_->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
-}
-
-QPixmap Viewer::load_base64(QString xml)
-{
- QPixmap pix;
- QFile f_in(xml);
- f_in.open(QIODevice::ReadOnly);
-
- QDomDocument doc;
- doc.setContent(&f_in);
- f_in.close();
-
- QDomElement root = doc.documentElement();
- QDomNode child = root.firstChild();
-
- while (!child.isNull() && !child.toElement().tagName().contains("Page"))
- child = child.nextSibling();
-
- child = child.firstChild();
- while (!child.isNull())
- {
- if (child.toElement().tagName().contains(QRegExp("ImageRegion")))
- {
- QDomNode node = child.firstChild();
- QString id = child.toElement().attribute("id", "none");
-
- while (!node.isNull() && !node.toElement().tagName().contains("container"))
- node = node.nextSibling();
-
- if (!node.isNull())
- {
- QString data = node.firstChildElement("data").text();
- QByteArray ba;
- ba = ba.append(data);
- QByteArray out_ba = QByteArray::fromBase64(ba);
- pix.loadFromData(out_ba);
-
- return pix;
- }
- }
- child = child.nextSibling();
- }
-
- return pix;
-}
-
-void
-Viewer::useText(bool b)
-{
- text_ = b;
- if (!b)
- {
- for (int i = 0; i < text_vector_.size(); ++i)
- scene_->removeItem(text_vector_[i]);
- }
- else
- {
- for (int i = 0; i < text_vector_.size(); ++i)
- scene_->addItem(text_vector_[i]);
- }
-
- scene_->update();
-}
-
-void
-Viewer::useImage(bool b)
-{
- use_image_ = b;
- if (!b)
- {
- if (image_ && image_->scene() && image_->scene() == scene_)
- scene_->removeItem(image_);
-
- for (int i = 0; i < image_vector_.size(); ++i)
- scene_->removeItem(image_vector_[i]);
- }
- else
- {
- if (image_ && image_->scene() == 0)
- scene_->addItem(image_);
-
- for (int i = 0; i < image_vector_.size(); ++i)
- scene_->addItem(image_vector_[i]);
- }
-
- scene_->update();
-}
-
-void
-Viewer::change_base(bool b)
-{
- base64_ = b;
-}
-
-
-QAction
-*Viewer::create_action(QString name, QMenu *menu, QString status, QString shortcut)
-{
- QAction* action = new QAction(name, menu);
- action->setStatusTip(status);
- action->setShortcut(QKeySequence(shortcut));
-
- return (action);
-}
-
-void
-Viewer::on_preferences()
-{
- preferences_dialog *win = new preferences_dialog(win_);
- win->show();
-}
-
-
-void
-Viewer::run_process()
-{
- if (!current_image_.isEmpty())
- {
- reset_progress_dialog();
- runner_.start_demat(current_image_);
- }
-}
-
-
-void
-Viewer::run_progress()
-{
- pdialog_.setValue(pdialog_.value() + 1);
-}
-
-
-void
-Viewer::on_xml_saved(const QString& filename)
-{
- config * const conf = config::get_instance();
-
- if (!conf->general_save_xml_enabled())
- tmp_files_to_remove_.insert(filename);
-
- QListWidgetItem *item = step_widget_->insert_new_entry(filename);
- step_widget_->activate(item);
-}
-
-
-void
-Viewer::export_as()
-{
- QFileInfo f(browser_wgt_->current());
- QString output_suggestion = f.baseName() + ".pdf";
- QString output = QFileDialog::getSaveFileName(0, "Export document as...", output_suggestion, tr("PDF (*.pdf);; HTML (*.html *.htm)"));
-
- if (!output.isEmpty())
- {
- reset_progress_dialog();
- runner_.start_export(browser_wgt_->current(), step_widget_->current(), output);
- qDebug() << "Saving to " << output << " - " << browser_wgt_->current() << " - " << step_widget_->current();
- }
-}
-
-
-void
-Viewer::reset_progress_dialog()
-{
- pdialog_.setValue(0);
- pdialog_.setLabelText("");
- pdialog_.show();
-}
-
-
-void
-Viewer::print()
-{
- QPrinter printer(QPrinter::HighResolution);
- configure_printer(printer);
-
- QPrintDialog dialog(&printer);
- dialog.setWindowTitle(tr("Print Document"));
- if (dialog.exec() != QDialog::Accepted)
- return;
-
- do_print(&printer);
-}
-
-void
-Viewer::preview_print()
-{
- QPrinter printer(QPrinter::HighResolution);
- configure_printer(printer);
-
- QPrintPreviewDialog preview(&printer);
- connect(&preview, SIGNAL(paintRequested(QPrinter *)),
- this, SLOT(do_print(QPrinter *)));
-
- preview.exec();
-}
-
-void Viewer::do_print(QPrinter * printer)
-{
- QList<QGraphicsItem *> items = image_wgt_->view()->items();
-
- QPainter painter(printer);
-
- QGraphicsItem *item;
- QStyleOptionGraphicsItem options;
-
- // Painting backward objects first.
- for (int i = items.size() - 1; i >= 0; --i)
- {
- item = items.at(i);
-
- if (item != image_)
- {
- QRect vport = image_->mapRectFromItem(item,
- item->boundingRect()).toRect();
-
- painter.translate(std::abs(item->boundingRect().x() - vport.x()),
- std::abs(item->boundingRect().y() - vport.y()));
- }
-
-
- item->paint(&painter, &options);
- painter.resetTransform();
- }
-}
-
-void
-Viewer::configure_printer(QPrinter& printer)
-{
- printer.setPageSize(QPrinter::A4);
- printer.setResolution(300);
-}
diff --git a/scribo/demo/viewer/viewer.hh b/scribo/demo/viewer/viewer.hh
deleted file mode 100644
index c68dd02..0000000
--- a/scribo/demo/viewer/viewer.hh
+++ /dev/null
@@ -1,132 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_VIEWER_HH
-# define SCRIBO_DEMO_VIEWER_VIEWER_HH
-
-# include <QtGui>
-# include <QDomNode>
-# include "common.hh"
-# include "runner.hh"
-# include "image_widget.hh"
-
-class ImageScene;
-class DomModel;
-class KeyWidget;
-class ImageRegion;
-class StepWidget;
-class BrowserWidget;
-
-
-class Viewer
- : public QObject
-{
- Q_OBJECT
-
-public:
- ~Viewer();
-
- static Viewer* Instance(int &argc, char** argv);
-
- int exec();
-
-public slots:
- // Load the file as an image, load the layout if xml with the same
- // name is found.
- void load(QString filename, bool b);
- void help();
- void load_xml(QString filename);
- void maybeChangeCacheMode(qreal scale);
- void useCache(bool b);
- void useExtended(bool b);
- void useText(bool b);
- void useImage(bool b);
- void change_base(bool b);
-
-private slots:
- void on_preferences();
- void run_process();
- void run_progress();
- void on_xml_saved(const QString& filename);
- void export_as();
- void print();
- void preview_print();
- void do_print(QPrinter * printer);
-
-signals:
- void updated();
- void key_updated(int key, bool checked);
- void setOutline(bool b);
- void setPrecise(bool b);
- void setFill(bool b);
- void mode_changed(bool b);
- void fill_xml(QString);
-
-private:
- Viewer(int &argc, char** argv);
- Viewer();
-
- void xml_to_layout();
- QPixmap load_base64(QString xml);
- void add_region(QDomNode father, QString attr_id);
- void add_text(QDomNode line);
- void add_typo_lines(QDomNode father, QString attr_id);
- QAction *create_action(QString name, QMenu* menu, QString status, QString shortcut);
- void reset_progress_dialog();
- void configure_printer(QPrinter& printer);
-
- QApplication* app_;
- QMainWindow* win_;
- StepWidget* step_widget_;
- BrowserWidget* browser_wgt_;
-
- QGraphicsPixmapItem* image_;
-
- ImageScene* scene_;
- ImageWidget* image_wgt_;
- QDirModel* files_;
- DomModel* doc_layout_;
-
- QAction* outline_action_;
- QAction* fill_action_;
- QAction* precise_action_;
- QAction *export_action_;
-
- KeyWidget* key_wgt_;
-
- QMap<QString, int> region_ids_;
- region::KeyMap key_map_;
-
- bool no_cache_;
- bool extended_mode_;
- QString xml_file_;
- bool base64_;
- bool text_;
- bool use_image_;
- QVector<QGraphicsTextItem *> text_vector_;
- QVector<QGraphicsPixmapItem*> image_vector_;
- QString current_image_;
-
- QProgressDialog pdialog_;
- runner runner_;
-
- QSet<QString> tmp_files_to_remove_;
-};
-
-#include "viewer.hxx"
-
-#endif // ! SCRIBO_DEMO_VIEWER_VIEWER_HH
diff --git a/scribo/demo/viewer/viewer.hxx b/scribo/demo/viewer/viewer.hxx
deleted file mode 100644
index cba59f3..0000000
--- a/scribo/demo/viewer/viewer.hxx
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-//
-// As a special exception, you may use this file as part of a free
-// software project without restriction. Specifically, if other files
-// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to produce
-// an executable, this file does not by itself cause the resulting
-// executable to be covered by the GNU General Public License. This
-// exception does not however invalidate any other reasons why the
-// executable file might be covered by the GNU General Public License.
-
-#ifndef VIEWER_HXX_
-# define VIEWER_HXX_
-
-# include "viewer.hh"
-
-inline Viewer* Viewer::Instance(int &argc, char** argv)
-{
- static Viewer viewer(argc, argv);
-
- return &viewer;
-}
-
-#endif /* !VIEWER_HXX_ */
diff --git a/scribo/demo/viewer/viewer.qrc b/scribo/demo/viewer/viewer.qrc
deleted file mode 100644
index c64fdcc..0000000
--- a/scribo/demo/viewer/viewer.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="icons">
- <file>icons/olena_smaller.jpg</file>
- </qresource>
-</RCC>
diff --git a/scribo/demo/viewer/xml_widget.cc b/scribo/demo/viewer/xml_widget.cc
deleted file mode 100644
index 642cf9a..0000000
--- a/scribo/demo/viewer/xml_widget.cc
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#include "xml_widget.hh"
-
-XmlWidget::XmlWidget()
- : tree_(new QTreeWidget()),
- property_(new QTreeWidget())
-{
- QLabel* title = new QLabel(tr("XML"));
- title->setAlignment(Qt::AlignHCenter);
-
- tree_->setHeaderHidden(true);
-
- QVBoxLayout* layout = new QVBoxLayout;
- QHBoxLayout *hlayout = new QHBoxLayout;
-
- QStringList header_names;
- header_names << tr("Name") << tr("Value");
- property_->setHeaderItem(new QTreeWidgetItem(header_names));
-
- hlayout->addWidget(tree_);
- hlayout->addWidget(property_);
-
- layout->addWidget(title);
- layout->addLayout(hlayout);
-
- setLayout(layout);
-
- connect(tree_, SIGNAL(itemDoubleClicked (QTreeWidgetItem*, int)),
- this, SLOT(check_item (QTreeWidgetItem*) ) );
-}
-
-void
-XmlWidget::select(QString id, QString /*name*/)
-{
- QDomNode n = node_map_[item_map_[id]];
-
- if (!n.isNull())
- {
- QTreeWidgetItem* item = node_map_.key(n);
-
- tree_->setCurrentItem(item, 0);
- item->setExpanded(true);
- check_item(item);
- }
-}
-
-void
-XmlWidget::check_item (QTreeWidgetItem* item)
-{
- QDomNode node = node_map_[item];
-
- if (node.hasAttributes())
- {
- property_->clear();
- QDomNamedNodeMap attributes = node.toElement().attributes();
-
- for (int i = 0; i < attributes.count(); ++i)
- {
- QStringList values;
- values << attributes.item(i).toAttr().name() << attributes.item(i).toAttr().value();
- property_->addTopLevelItem(new QTreeWidgetItem(values));
- }
- }
-
- property_->resizeColumnToContents(0);
-}
-
-void XmlWidget::NFS(QDomNode node, QTreeWidgetItem* item)
-{
- if (!node.isNull())
- {
- QString append;
- if (node.toElement().tagName().contains("Point"))
- {
- QString x = node.toElement().attribute("x", "0");
- QString y = node.toElement().attribute("y", "0");
- append.append(" = (" + x + ", " + y + ")");
- }
-
- QTreeWidgetItem* child =
- new QTreeWidgetItem(QStringList(node.toElement().tagName() + node.nodeValue() + append));
-
- if (node.hasAttributes())
- {
- QString id = node.toElement().attribute("id", "none");
- item_map_[id] = child;
- }
-
- node_map_[child] = node;
- item->addChild(child);
-
- QDomNode sibling = node.firstChild();
- while (!sibling.isNull())
- {
- if (!sibling.toElement().tagName().contains("data"))
- NFS(sibling, child);
- else
- {
- QTreeWidgetItem* child_son =
- new QTreeWidgetItem(QStringList("data = base64-encoded"));
-
- child->addChild(child_son);
- }
- sibling = sibling.nextSibling();
- }
- }
-}
-
-void XmlWidget::fill_widget(QString xml)
-{
- node_map_.clear();
- item_map_.clear();
-
- tree_->clear();
- property_->clear();
- QFile f_in(xml);
- f_in.open(QIODevice::ReadOnly);
-
- QDomDocument doc;
- doc.setContent(&f_in);
- f_in.close();
-
- int i = 0;
-
- QDomElement root = doc.documentElement();
- QTreeWidgetItem* root_item=
- new QTreeWidgetItem(QStringList(root.tagName()));
-
- tree_->addTopLevelItem(root_item);
- root = root.firstChild().toElement();
-
- while (!root.isNull())
- {
- ++i;
- NFS(root, root_item);
- root = root.nextSibling().toElement();
- }
-}
-
-void
-XmlWidget::deselect()
-{
- property_->clear();
-}
-
-XmlWidget::~XmlWidget()
-{
-}
diff --git a/scribo/demo/viewer/xml_widget.hh b/scribo/demo/viewer/xml_widget.hh
deleted file mode 100644
index b7cd868..0000000
--- a/scribo/demo/viewer/xml_widget.hh
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef SCRIBO_DEMO_VIEWER_XML_WIDGET_HH
-# define SCRIBO_DEMO_VIEWER_XML_WIDGET_HH
-
-# include <QtGui>
-# include <QDomNode>
-
-class DomModel;
-
-class XmlWidget
- : public QWidget
-{
- Q_OBJECT
-
-public:
- XmlWidget();
- ~XmlWidget();
-
-public slots:
- void select(QString id, QString name);
- void deselect();
- void fill_widget(QString xml);
- void check_item (QTreeWidgetItem* item);
-
-private:
- void NFS(QDomNode node, QTreeWidgetItem* item);
- QTreeWidget* tree_;
- QTreeWidget* property_;
- QMap<QString, QTreeWidgetItem*> item_map_;
- QMap<QTreeWidgetItem*, QDomNode> node_map_;
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_XML_WIDGET_HH
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch unstable/scribo has been updated
via a6aaffe887605d9d3168584eb4b68646c29ade13 (commit)
via 8c22f85639fcc40021f2a79cd20b1d893603406a (commit)
via d4d136fcb6448b5e2282d8598630132ab8114994 (commit)
via 4a16753e91d448243d2c151c6aa6064b4e580b4e (commit)
via 2ed6b8ec1d3ed5fccf35cf3a555edda9f5163f3e (commit)
via 732dd9996f896dd56def0482122c9e06b3c43101 (commit)
via 44d0803f20a08c10217b89f05e0d6628ac73e967 (commit)
via caa884411440db0c43405e3182251728ff0b04b9 (commit)
via 18236f195934f077b3f6bb46ef5d36021289217c (commit)
via a36968ff5ac4cc841db4d3b137b0df57cf529656 (commit)
via 5337931293e143f43e40a8be13478aa7e6e2d188 (commit)
via 9ebbca1570609ab7309f35c2de655b3a9a18e3f6 (commit)
via 5fe95d357c7d43ae542a0ef0541903d2c414600d (commit)
via 43feab8fed9052c043700e9315c99dec146331b3 (commit)
via 9ddc4c8ab53bbcb94c1665b7d2cadf14a4f10fb9 (commit)
via bc9310b72cef13b2947ca4b141dd506d73738240 (commit)
via 02c9ee2b680b11d9b0f8c234be154702a605efed (commit)
via 0e03c859ec761fd2c42dc9ddb4e9c1d91fedcae4 (commit)
via 0319bef0a9f5b8e04df241e3157fb824b1eb1b20 (commit)
via 3705ff9141b24992d340c1a36b334955f1fecee0 (commit)
via 1ec914f64b40d9a90dce4fc8cc1cb61905d89a5a (commit)
via 0e51828995be380eecd7d21d7bcb1e5fe1b211c6 (commit)
via efec80c23a85f3b304fe4101cebed309ffb6f809 (commit)
via 58b937bfea02850e29c952c9ba978a185ef717b5 (commit)
via 5635203e925268cf592688f38999c270a9fa5567 (commit)
via 9aa27a63da4f353509a89b539c11621ffd314ad6 (commit)
via bf4dcc26e1f7c4f200859972bf5e548bf788d202 (commit)
via a928f7e91da04f2fa7f5b1d5a0903fc89fb536e1 (commit)
via f709c246f9580618520a66d93e20540027190aaa (commit)
via d0f19fcead6a62c52391ac5d30d404a60bc142f7 (commit)
via 13926e8701f3f6ac52da3bb303c61dd6a9529d10 (commit)
via 5fd931bf5d3b19928d2a0281c16e49bb86222a05 (commit)
via b16ebc42bd5a085add33d1522f6c90b72efb9ee9 (commit)
via e7ece121182967a40216e1876ede3cef61e52e46 (commit)
via 42b527a3cc89a318c6606ca085b9c828d2c755b1 (commit)
via 347fbf70991e16fef7035ebfd206190b69697c21 (commit)
via 8837bd5fdbfbf08c1c3703da37c6580f04afe3fe (commit)
via 01f77f1461fbd0f6d745111fdac75900d9195051 (commit)
via e456b2c4a594ef85c27bde2e70bc98fce98b6be0 (commit)
via 690daa5a473f248cbfa89d169ed8f567045d86b6 (commit)
via c454f5a61f06423a7311c437f45b80772670654e (commit)
via 38a85549d025d68d4c52657ef77d7e353e4be523 (commit)
via 3a400aace3064a468abb57a2ff82f56e536fd071 (commit)
via d46aeb366f6ec2be17addf1c5702d7fbb8c43d4a (commit)
via 927d06abf1bb6b427177dab1cb7366b802c81a95 (commit)
via a0627924aa9b8e4d6f8992ba60dbbd9d027a9de8 (commit)
via 31943134f6fa78bb04eb3c20a55aa05df205a57d (commit)
via 71fd63d5785cde5128f51945e14f421dff094376 (commit)
from a9795b3b2307fea0b16162cb5a00f2f7197f829f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
a6aaffe Merge branch Antoine Froger's work into unstable/scribo.
8c22f85 Remove working directories.
d4d136f * .gitignore: New.
4a16753 Fix some little bugs.
2ed6b8e Segmentation works. Recognition do not work correctly, do not know if it is related to this computer specifically. Some tests to do.
732dd99 Fix segmentation chain problems.
44d0803 Reimplement the toolchain segmentation but do not compile due to tesseract.
caa8844 Fix little bugs on attributes model.
18236f1 Allow the user to print the segmentation.
a36968f Scale the scene on CTRL + wheel or CTRL +/ -. Allow scrolling on right click.
5337931 Add scene scale, cloth to finish menu bar.
9ebbca1 Create the custom graphics view : handle the whelling and CTLR + or - scale of the view.
5fe95d3 Go back to the previous way for adding tree widget item in the region widget. Add TODO file.
43feab8 Test to change the static const array and load wanted data in QSettings but do not work.
9ddc4c8 Connect region widget with the scene and xml widget.
bc9310b Completely finished xml widget with : add splitter, correct bugs (when deselecting and just have an item with no region item corresponding), real-time property modification with multiple selection. Also tabify dock widget in main window and fixed the corner dock area. Finished region widget interface. TODO : connect the region widget interface with the scene correctly.
02c9ee2 Cloth to have finished xml widget multiple selection. Finished pages widget : when deleting, testing if the widget has the focus. Also reimplement some stuff in the scene : add RootGraphicalItem to prepare the region widget. TODO : Finish xml widget multiple selection (problem : can t add prperlythe new selected item without clear selection and add new selection).
0e03c85 Finished page widget current row selection. TODO : Clear selection when click in the scene and all xml tree visible when any graphical item selected.
0319bef Good page widget advancement : customize model to see in the vieww which picture is selected and optimize memory and speed with new custom model.
3705ff9 Good xml tree with selection from scene and from tree. Fixed redondance in pages widget.
1ec914f Continue xmlWidget. Succeed in the implementation of the model for the tree and the selected tree. Problem with the selection proxy : don t reach childs. Don t have test the attribute widget.
0e51828 Try to implement model but can t find out how to load and delete all curent index to replace it.
efec80c Add proper GScribo/xmlitem and /xmlmodel but can t test : problem with tesseract linking on personal computer.
58b937b Update XmlTree with custom modeland delegate to handle multiple tree view with one model. Begin the implementation on GScribo.
5635203 Add configs inline functions.
9aa27a6 new feFeatures for the tree widget : new treeWidget which show the selectionned items on the scene. TODO : Kill that and do it with model and proxy model to do something more generic.
bf4dcc2 Finished selection from tree view to select on the scene.
a928f7e Finish link between item tagName and item attribute.
f709c24 Finished xml tree but just locality of root node false (pointer deleted before the signal is emitted). Also add relation between graphical item and tree item.
d0f19fc Finished xmlTree and new xml class with mixed of QWidgetTreeItem and PolygonItem interactions
13926e8 Get chain segmentation and good pages viewer (add selection and remove)
5fd931b Get chain segmentation and good pages viewer (add selection and remove).
b16ebc4 Finish pages viewer (just one little problem) and add config dialog.
e7ece12 Try to implement good model/ view for training.
42b527a Add listview implementation tentative. With custiom delegate item and custom model.
347fbf7 Add scribo interface and tests. Block on scroll layout.
8837bd5 Optimisation, runner works well, add destructors and delete fine.
01f77f1 Add runner and all segmentation tasks.
e456b2c Try to add segmentation tasks.
690daa5 New good selection and look.
c454f5a Finish selection.
38a8554 Debug and correct.
3a400aa New XmlParserFile proper.
d46aeb3 Update Test2.
927d06a Add xml parser.
a062792 Add selection.
3194313 Add GraphicsView and MouseEvent.
71fd63d new QT tests
-----------------------------------------------------------------------
Summary of changes:
GScribo/BUGS | 1 +
GScribo/GScribo.pro | 83 ++++
GScribo/GScribo.pro.user | 405 +++++++++++++++++++
GScribo/GScribo.pro.user.1.3 | 283 +++++++++++++
GScribo/PagesWidget/pagesdelegate.cpp | 20 +
GScribo/PagesWidget/pagesdelegate.h | 18 +
GScribo/PagesWidget/pagesmodel.cpp | 55 +++
GScribo/PagesWidget/pagesmodel.h | 43 ++
GScribo/PagesWidget/pageswidget.cpp | 49 +++
GScribo/PagesWidget/pageswidget.h | 55 +++
GScribo/Preferences/generaloptions.cpp | 44 ++
GScribo/Preferences/generaloptions.h | 34 ++
.../Preferences/generaloptions.ui | 0
GScribo/Preferences/ocroptions.cpp | 53 +++
GScribo/Preferences/ocroptions.h | 33 ++
.../Preferences/ocroptions.ui | 0
GScribo/Preferences/optionwidget.h | 15 +
GScribo/Preferences/preferencesdialog.cpp | 98 +++++
GScribo/Preferences/preferencesdialog.h | 42 ++
.../Preferences/preferencesdialog.ui | 0
GScribo/Preferences/preprocessingoptions.cpp | 45 +++
GScribo/Preferences/preprocessingoptions.h | 32 ++
.../Preferences/preprocessingoptions.ui | 0
GScribo/Preferences/segmentationoptions.cpp | 33 ++
GScribo/Preferences/segmentationoptions.h | 31 ++
.../Preferences/segmentationoptions.ui | 0
GScribo/Processing/preprocess.cpp | 11 +
GScribo/Processing/preprocess.h | 26 ++
GScribo/Processing/process.cpp | 21 +
GScribo/Processing/process.h | 29 ++
GScribo/Processing/progressdialog.cpp | 16 +
GScribo/Processing/progressdialog.h | 22 +
GScribo/Processing/runner.cpp | 183 +++++++++
GScribo/Processing/runner.h | 58 +++
GScribo/Rendering/abstractregionitem.h | 13 +
GScribo/Rendering/backgroundtexture.h | 12 +
GScribo/Rendering/graphicsview.cpp | 150 +++++++
GScribo/Rendering/graphicsview.h | 43 ++
GScribo/Rendering/regionitem.cpp | 59 +++
GScribo/Rendering/regionitem.h | 80 ++++
GScribo/Rendering/rootgraphicsitem.h | 30 ++
GScribo/Rendering/scene.cpp | 273 +++++++++++++
GScribo/Rendering/scene.h | 118 ++++++
GScribo/Rendering/selection.cpp | 36 ++
GScribo/Rendering/selection.h | 20 +
GScribo/TODO | 100 +++++
GScribo/XmlWidget/attributesmodel.cpp | 69 ++++
GScribo/XmlWidget/attributesmodel.h | 48 +++
GScribo/XmlWidget/selectionproxy.h | 47 +++
GScribo/XmlWidget/xmlattributes.cpp | 23 ++
GScribo/XmlWidget/xmlattributes.h | 33 ++
GScribo/XmlWidget/xmldelegate.h | 30 ++
GScribo/XmlWidget/xmlitem.cpp | 43 ++
GScribo/XmlWidget/xmlitem.h | 90 +++++
GScribo/XmlWidget/xmlmodel.cpp | 87 ++++
GScribo/XmlWidget/xmlmodel.h | 44 ++
GScribo/XmlWidget/xmlview.cpp | 88 ++++
GScribo/XmlWidget/xmlview.h | 79 ++++
GScribo/XmlWidget/xmlwidget.cpp | 34 ++
GScribo/XmlWidget/xmlwidget.h | 54 +++
GScribo/aboutdialog.h | 25 ++
GScribo/aboutdialog.ui | 136 +++++++
GScribo/configs.h | 134 +++++++
GScribo/dir.h | 7 +
GScribo/dockwidget.h | 22 +
GScribo/main.cpp | 23 ++
GScribo/mainwindow.cpp | 415 ++++++++++++++++++++
GScribo/mainwindow.h | 120 ++++++
GScribo/mainwindow.ui | 35 ++
GScribo/region.h | 56 +++
GScribo/regionwidget.cpp | 70 ++++
GScribo/regionwidget.h | 40 ++
GScribo/variantpointer.h | 19 +
GScribo/xml.cpp | 206 ++++++++++
GScribo/xml.h | 93 +++++
75 files changed, 4942 insertions(+), 0 deletions(-)
create mode 100644 GScribo/BUGS
create mode 100644 GScribo/GScribo.pro
create mode 100644 GScribo/GScribo.pro.user
create mode 100644 GScribo/GScribo.pro.user.1.3
create mode 100644 GScribo/PagesWidget/pagesdelegate.cpp
create mode 100644 GScribo/PagesWidget/pagesdelegate.h
create mode 100644 GScribo/PagesWidget/pagesmodel.cpp
create mode 100644 GScribo/PagesWidget/pagesmodel.h
create mode 100644 GScribo/PagesWidget/pageswidget.cpp
create mode 100644 GScribo/PagesWidget/pageswidget.h
create mode 100644 GScribo/Preferences/generaloptions.cpp
create mode 100644 GScribo/Preferences/generaloptions.h
copy scribo/demo/viewer/general_options.ui => GScribo/Preferences/generaloptions.ui (100%)
create mode 100644 GScribo/Preferences/ocroptions.cpp
create mode 100644 GScribo/Preferences/ocroptions.h
copy scribo/demo/viewer/ocr_options.ui => GScribo/Preferences/ocroptions.ui (100%)
create mode 100644 GScribo/Preferences/optionwidget.h
create mode 100644 GScribo/Preferences/preferencesdialog.cpp
create mode 100644 GScribo/Preferences/preferencesdialog.h
copy scribo/demo/viewer/preferences_dialog.ui => GScribo/Preferences/preferencesdialog.ui (100%)
create mode 100644 GScribo/Preferences/preprocessingoptions.cpp
create mode 100644 GScribo/Preferences/preprocessingoptions.h
copy scribo/demo/viewer/preprocessing_options.ui => GScribo/Preferences/preprocessingoptions.ui (100%)
create mode 100644 GScribo/Preferences/segmentationoptions.cpp
create mode 100644 GScribo/Preferences/segmentationoptions.h
copy scribo/demo/viewer/segmentation_options.ui => GScribo/Preferences/segmentationoptions.ui (100%)
create mode 100644 GScribo/Processing/preprocess.cpp
create mode 100644 GScribo/Processing/preprocess.h
create mode 100644 GScribo/Processing/process.cpp
create mode 100644 GScribo/Processing/process.h
create mode 100644 GScribo/Processing/progressdialog.cpp
create mode 100644 GScribo/Processing/progressdialog.h
create mode 100644 GScribo/Processing/runner.cpp
create mode 100644 GScribo/Processing/runner.h
create mode 100644 GScribo/Rendering/abstractregionitem.h
create mode 100644 GScribo/Rendering/backgroundtexture.h
create mode 100644 GScribo/Rendering/graphicsview.cpp
create mode 100644 GScribo/Rendering/graphicsview.h
create mode 100644 GScribo/Rendering/regionitem.cpp
create mode 100644 GScribo/Rendering/regionitem.h
create mode 100644 GScribo/Rendering/rootgraphicsitem.h
create mode 100644 GScribo/Rendering/scene.cpp
create mode 100644 GScribo/Rendering/scene.h
create mode 100644 GScribo/Rendering/selection.cpp
create mode 100644 GScribo/Rendering/selection.h
create mode 100644 GScribo/TODO
create mode 100644 GScribo/XmlWidget/attributesmodel.cpp
create mode 100644 GScribo/XmlWidget/attributesmodel.h
create mode 100644 GScribo/XmlWidget/selectionproxy.h
create mode 100644 GScribo/XmlWidget/xmlattributes.cpp
create mode 100644 GScribo/XmlWidget/xmlattributes.h
create mode 100644 GScribo/XmlWidget/xmldelegate.h
create mode 100644 GScribo/XmlWidget/xmlitem.cpp
create mode 100644 GScribo/XmlWidget/xmlitem.h
create mode 100644 GScribo/XmlWidget/xmlmodel.cpp
create mode 100644 GScribo/XmlWidget/xmlmodel.h
create mode 100644 GScribo/XmlWidget/xmlview.cpp
create mode 100644 GScribo/XmlWidget/xmlview.h
create mode 100644 GScribo/XmlWidget/xmlwidget.cpp
create mode 100644 GScribo/XmlWidget/xmlwidget.h
create mode 100644 GScribo/aboutdialog.h
create mode 100644 GScribo/aboutdialog.ui
create mode 100644 GScribo/configs.h
create mode 100644 GScribo/dir.h
create mode 100644 GScribo/dockwidget.h
create mode 100644 GScribo/main.cpp
create mode 100644 GScribo/mainwindow.cpp
create mode 100644 GScribo/mainwindow.h
create mode 100644 GScribo/mainwindow.ui
create mode 100644 GScribo/region.h
create mode 100644 GScribo/regionwidget.cpp
create mode 100644 GScribo/regionwidget.h
create mode 100644 GScribo/variantpointer.h
create mode 100644 GScribo/xml.cpp
create mode 100644 GScribo/xml.h
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena-2.0-135-ga6aaffe Merge branch Antoine Froger's work into unstable/scribo.
by Antoine Froger 18 Feb '13
by Antoine Froger 18 Feb '13
18 Feb '13
This is a merge commit message of the following branches:
Merge: a9795b3 8c22f85
Conflicts:
.gitignore
GScribo/BUGS | 1 +
GScribo/GScribo.pro | 83 +++++
GScribo/GScribo.pro.user | 405 +++++++++++++++++++++++++
GScribo/GScribo.pro.user.1.3 | 283 ++++++++++++++++++
GScribo/PagesWidget/pagesdelegate.cpp | 20 ++
GScribo/PagesWidget/pagesdelegate.h | 18 ++
GScribo/PagesWidget/pagesmodel.cpp | 55 ++++
GScribo/PagesWidget/pagesmodel.h | 43 +++
GScribo/PagesWidget/pageswidget.cpp | 49 +++
GScribo/PagesWidget/pageswidget.h | 55 ++++
GScribo/Preferences/generaloptions.cpp | 44 +++
GScribo/Preferences/generaloptions.h | 34 ++
GScribo/Preferences/generaloptions.ui | 100 ++++++
GScribo/Preferences/ocroptions.cpp | 53 ++++
GScribo/Preferences/ocroptions.h | 33 ++
GScribo/Preferences/ocroptions.ui | 62 ++++
GScribo/Preferences/optionwidget.h | 15 +
GScribo/Preferences/preferencesdialog.cpp | 98 ++++++
GScribo/Preferences/preferencesdialog.h | 42 +++
GScribo/Preferences/preferencesdialog.ui | 121 ++++++++
GScribo/Preferences/preprocessingoptions.cpp | 45 +++
GScribo/Preferences/preprocessingoptions.h | 32 ++
GScribo/Preferences/preprocessingoptions.ui | 76 +++++
GScribo/Preferences/segmentationoptions.cpp | 33 ++
GScribo/Preferences/segmentationoptions.h | 31 ++
GScribo/Preferences/segmentationoptions.ui | 52 ++++
GScribo/Processing/preprocess.cpp | 11 +
GScribo/Processing/preprocess.h | 26 ++
GScribo/Processing/process.cpp | 21 ++
GScribo/Processing/process.h | 29 ++
GScribo/Processing/progressdialog.cpp | 16 +
GScribo/Processing/progressdialog.h | 22 ++
GScribo/Processing/runner.cpp | 183 +++++++++++
GScribo/Processing/runner.h | 58 ++++
GScribo/Rendering/abstractregionitem.h | 13 +
GScribo/Rendering/backgroundtexture.h | 12 +
GScribo/Rendering/graphicsview.cpp | 150 +++++++++
GScribo/Rendering/graphicsview.h | 43 +++
GScribo/Rendering/regionitem.cpp | 59 ++++
GScribo/Rendering/regionitem.h | 80 +++++
GScribo/Rendering/rootgraphicsitem.h | 30 ++
GScribo/Rendering/scene.cpp | 273 +++++++++++++++++
GScribo/Rendering/scene.h | 118 ++++++++
GScribo/Rendering/selection.cpp | 36 +++
GScribo/Rendering/selection.h | 20 ++
GScribo/TODO | 100 ++++++
GScribo/XmlWidget/attributesmodel.cpp | 69 +++++
GScribo/XmlWidget/attributesmodel.h | 48 +++
GScribo/XmlWidget/selectionproxy.h | 47 +++
GScribo/XmlWidget/xmlattributes.cpp | 23 ++
GScribo/XmlWidget/xmlattributes.h | 33 ++
GScribo/XmlWidget/xmldelegate.h | 30 ++
GScribo/XmlWidget/xmlitem.cpp | 43 +++
GScribo/XmlWidget/xmlitem.h | 90 ++++++
GScribo/XmlWidget/xmlmodel.cpp | 87 ++++++
GScribo/XmlWidget/xmlmodel.h | 44 +++
GScribo/XmlWidget/xmlview.cpp | 88 ++++++
GScribo/XmlWidget/xmlview.h | 79 +++++
GScribo/XmlWidget/xmlwidget.cpp | 34 ++
GScribo/XmlWidget/xmlwidget.h | 54 ++++
GScribo/aboutdialog.h | 25 ++
GScribo/aboutdialog.ui | 136 +++++++++
GScribo/configs.h | 134 +++++++++
GScribo/dir.h | 7 +
GScribo/dockwidget.h | 22 ++
GScribo/main.cpp | 23 ++
GScribo/mainwindow.cpp | 415 ++++++++++++++++++++++++++
GScribo/mainwindow.h | 120 ++++++++
GScribo/mainwindow.ui | 35 +++
GScribo/region.h | 56 ++++
GScribo/regionwidget.cpp | 70 +++++
GScribo/regionwidget.h | 40 +++
GScribo/variantpointer.h | 19 ++
GScribo/xml.cpp | 206 +++++++++++++
GScribo/xml.h | 93 ++++++
75 files changed, 5353 insertions(+), 0 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0
---
.gitignore | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..32c602a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.o
+moc_*.cpp
+ui_*.h
\ No newline at end of file
--
1.7.2.5
1
0

d0f19fc Finished xmlTree and new xml class with mixed of QWidgetTreeItem and PolygonItem interactions
by Antoine Froger 18 Feb '13
by Antoine Froger 18 Feb '13
18 Feb '13
---
GScribo/GScribo.pro | 11 +-
GScribo/GScribo.pro.user | 847 +++++-----------------
GScribo/Processing/progressdialog.cpp | 1 +
GScribo/Processing/runner.cpp | 2 +-
GScribo/Rendering/polygonitem.h | 11 +
GScribo/Rendering/scene.cpp | 17 +-
GScribo/Rendering/scene.h | 7 +-
GScribo/configs.cpp | 2 +-
GScribo/main.cpp | 4 +-
GScribo/mainwindow.cpp | 43 +-
GScribo/mainwindow.h | 7 +
XmlTree/pointer.h => GScribo/variantpointer.h | 10 +-
GScribo/xml.cpp | 234 ++++---
GScribo/xml.h | 51 +-
GScribo/xmlwidget.cpp | 19 +
GScribo/xmlwidget.h | 25 +
XmlTree/pointer.h => VariantPointer.h | 10 +-
XmlParser/XmlParser.pro.user | 984 ++++---------------------
XmlParser/xml.cpp | 1 +
XmlTree/XmlTree.pro.user | 516 +++++++------
XmlTree/mainwindow.cpp | 13 +-
XmlTree/mainwindow.h | 2 +
XmlTree/polygonitem.h | 12 +
XmlTree/xml.cpp | 174 ++++-
XmlTree/xml.h | 35 +-
25 files changed, 1090 insertions(+), 1948 deletions(-)
copy XmlTree/pointer.h => GScribo/variantpointer.h (65%)
create mode 100644 GScribo/xmlwidget.cpp
create mode 100644 GScribo/xmlwidget.h
copy XmlTree/pointer.h => VariantPointer.h (65%)
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
index 4175a7f..dc10ae6 100644
--- a/GScribo/GScribo.pro
+++ b/GScribo/GScribo.pro
@@ -17,6 +17,7 @@ SOURCES += main.cpp \
configs.cpp \
Rendering/scene.cpp \
Rendering/selection.cpp \
+ Rendering/polygonitem.cpp \
PagesViewer/pageswidget.cpp \
PagesViewer/listmodel.cpp \
Preferences/segmentationoptions.cpp \
@@ -25,17 +26,18 @@ SOURCES += main.cpp \
Preferences/generaloptions.cpp \
Preferences/optionwidget.cpp \
Preferences/preferencesdialog.cpp \
- Rendering/polygonitem.cpp \
Processing/progressdialog.cpp \
Processing/process.cpp \
Processing/preprocess.cpp \
Processing/runner.cpp \
- xml.cpp
+ xml.cpp \
+ xmlwidget.cpp
HEADERS += mainwindow.h \
configs.h \
region.h \
Rendering/scene.h \
Rendering/selection.h \
+ Rendering/polygonitem.h \
PagesViewer/pageswidget.h \
PagesViewer/listmodel.h \
Preferences/segmentationoptions.h \
@@ -44,13 +46,14 @@ HEADERS += mainwindow.h \
Preferences/generaloptions.h \
Preferences/optionwidget.h \
Preferences/preferencesdialog.h \
- Rendering/polygonitem.h \
Processing/preprocess.h \
Processing/progressdialog.h \
Processing/process.h \
dir.h \
Processing/runner.h \
- xml.h
+ xml.h \
+ variantpointer.h \
+ xmlwidget.h
FORMS += mainwindow.ui \
Preferences/preferencesdialog.ui \
Preferences/ocroptions.ui \
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index e10e6ac..aa72d79 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -1,692 +1,223 @@
-<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
-<!-- Written by Qt Creator 2.4.1, 2013-01-27T15:34:43. -->
<qtcreator>
<data>
- <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <variable>RunConfiguration0-BaseEnvironmentBase</variable>
+ <value type="int">2</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-CommandLineArguments</variable>
+ <valuelist type="QVariantList"/>
+ </data>
+ <data>
+ <variable>RunConfiguration0-ProFile</variable>
+ <value type="QString">GScribo.pro</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-RunConfiguration.name</variable>
+ <value type="QString">GScribo</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UseDyldImageSuffix</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UseTerminal</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserEnvironmentChanges</variable>
+ <valuelist type="QVariantList"/>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserSetName</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserWorkingDirectory</variable>
+ <value type="QString"></value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-type</variable>
+ <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
+ </data>
+ <data>
+ <variable>activeRunConfiguration</variable>
<value type="int">0</value>
</data>
<data>
- <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <variable>activebuildconfiguration</variable>
+ <value type="QString">Debug</value>
+ </data>
+ <data>
+ <variable>buildConfiguration-Debug</variable>
<valuemap type="QVariantMap">
- <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
- <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
- <value type="QString" key="language">Cpp</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QString" key="CurrentPreferences">CppGlobal</value>
- </valuemap>
- </valuemap>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
- <value type="QString" key="language">QmlJS</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
- </valuemap>
- </valuemap>
- <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
- <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
- <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
- <value type="int" key="EditorConfiguration.IndentSize">4</value>
- <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
- <value type="int" key="EditorConfiguration.PaddingMode">1</value>
- <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
- <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
- <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
- <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
- <value type="int" key="EditorConfiguration.TabSize">8</value>
- <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
- <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
- <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
- <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
- <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
- <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="QtVersionId" type="int">2</value>
+ <value key="ToolChain" type="int">0</value>
+ <value key="addQDumper" type=""></value>
+ <value key="buildConfiguration" type="int">2</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.PluginSettings</variable>
- <valuemap type="QVariantMap"/>
+ <variable>buildconfiguration-Debug-buildstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-2BHwXLdG3H,guid=3f8e1369093fc6feda23ccd2006fd740</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8mf291</value>
+ <value type="QString">GNOME_KEYRING_PID=5053</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=5128</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aZWNsu5062/agent.5062</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=10485796</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmOYVRRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359377411.799018-1039497682</value>
+ <value type="QString">XPSERVERLIST=:64 </value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ <value type="QString">_=/usr/bin/qtcreator</value>
+ </valuelist>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo/GScribo.pro</value>
+ <value type="QString">-spec</value>
+ <value type="QString">linux-g++</value>
+ <value type="QString">-r</value>
+ <value type="QString">CONFIG+=debug</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
+ <value key="abstractProcess.enabled" type="bool">false</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
+ </valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.0</variable>
+ <variable>buildconfiguration-Debug-buildstep1</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/GScribo-build-desktop-Debug</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Configuration d'exécution Qt4</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">GScribo</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">GScribo.pro</value>
- <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
- <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-2BHwXLdG3H,guid=3f8e1369093fc6feda23ccd2006fd740</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8mf291</value>
+ <value type="QString">GNOME_KEYRING_PID=5053</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=5128</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aZWNsu5062/agent.5062</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=10485796</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmOYVRRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359377411.799018-1039497682</value>
+ <value type="QString">XPSERVERLIST=:64 </value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ <value type="QString">_=/usr/bin/qtcreator</value>
+ </valuelist>
+ <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">-w</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.1</variable>
+ <variable>buildconfiguration-Debug-cleanstep0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.S60EmulatorTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/GScribo</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">GScribo sur l'émulateur Symbian</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60EmulatorRunConfiguration</value>
- <value type="QString" key="Qt4ProjectManager.S60EmulatorRunConfiguration.ProFile">GScribo.pro</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="cleanConfig" type="bool">true</value>
+ <valuelist key="makeargs" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.2</variable>
+ <variable>buildconfigurations</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">Debug</value>
+ </valuelist>
+ </data>
+ <data>
+ <variable>buildstep0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">3</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.S60DeviceTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/GScribo</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Créer le paquet SIS</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Create SIS package</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60SignBuildStep</value>
- <value type="QString" key="Qt4ProjectManager.S60CreatePackageStep.Certificate"></value>
- <value type="QString" key="Qt4ProjectManager.S60CreatePackageStep.Keyfile"></value>
- <value type="int" key="Qt4ProjectManager.S60CreatePackageStep.SignMode">0</value>
- <value type="bool" key="Qt4ProjectManager.S60CreatorPackageStep.SmartInstaller">false</value>
- <value type="bool" key="Qt4ProjectManager.S60CreatorPackageStep.SuppressPatchWarningDialog">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déployer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeployStep</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Déployer sur un périphérique Symbian</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">GScribo sur périphérique Symbian</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeviceRunConfiguration</value>
- <value type="QString" key="Qt4ProjectManager.S60DeviceRunConfiguration.CommandLineArguments"></value>
- <value type="QString" key="Qt4ProjectManager.S60DeviceRunConfiguration.ProFile">GScribo.pro</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ <value key="mkspec" type="QString"></value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.3</variable>
+ <variable>buildstep1</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">4</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.MaemoDeviceTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/GScribo-build-maemo-Debug</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déployer le paquet par montage UTFS</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MaemoDeployStep</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes"/>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compilation du paquet Debian et installation sur le périphérique Maemo5</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Déployer sur un périphérique Maemo</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">2.2MaemoDeployConfig</value>
- <value type="qulonglong" key="Qt4ProjectManager.MaemoRunConfiguration.DeviceId">0</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">GScribo (sur un périphérique distant)</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MaemoRunConfiguration</value>
- <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
- <value type="int" key="Qt4ProjectManager.MaemoRunConfiguration.BaseEnvironmentBase">1</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.ExportedLocalDirs"/>
- <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile">GScribo.pro</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.RemoteMountPoints"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
- <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.TargetCount</variable>
- <value type="int">4</value>
+ <variable>buildsteps</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">trolltech.qt4projectmanager.qmake</value>
+ <value type="QString">trolltech.qt4projectmanager.make</value>
+ </valuelist>
</data>
<data>
- <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
- <value type="QString">{5e5821f7-3a40-405f-b196-cbc6284a3a45}</value>
+ <variable>cleanstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ <value key="clean" type="bool">true</value>
+ </valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">10</value>
+ <variable>cleansteps</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">trolltech.qt4projectmanager.make</value>
+ </valuelist>
+ </data>
+ <data>
+ <variable>defaultFileEncoding</variable>
+ <value type="QByteArray">System</value>
+ </data>
+ <data>
+ <variable>project</variable>
+ <valuemap type="QVariantMap"/>
</data>
</qtcreator>
diff --git a/GScribo/Processing/progressdialog.cpp b/GScribo/Processing/progressdialog.cpp
index c4ae96f..1ae876f 100644
--- a/GScribo/Processing/progressdialog.cpp
+++ b/GScribo/Processing/progressdialog.cpp
@@ -3,6 +3,7 @@
ProgressDialog::ProgressDialog(QWidget *parent, Qt::WindowFlags flags):
QProgressDialog(parent, flags)
{
+ setWindowFlags(Qt::Dialog);
setModal(true);
setAutoClose(false);
setCancelButton(0);
diff --git a/GScribo/Processing/runner.cpp b/GScribo/Processing/runner.cpp
index 5024acd..8d5854c 100644
--- a/GScribo/Processing/runner.cpp
+++ b/GScribo/Processing/runner.cpp
@@ -134,7 +134,7 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
// Perform text detection.
f(original_ima, processed_ima);
- emit xml_saved(filename);
+ //emit xml_saved(filename);
}
// Export related stuff
diff --git a/GScribo/Rendering/polygonitem.h b/GScribo/Rendering/polygonitem.h
index 893bde3..af59631 100644
--- a/GScribo/Rendering/polygonitem.h
+++ b/GScribo/Rendering/polygonitem.h
@@ -4,6 +4,8 @@
#include <QGraphicsPathItem>
#include <QPen>
+#include "region.h"
+
class PolygonItem :
public QObject,
public QGraphicsPolygonItem
@@ -13,9 +15,12 @@ class PolygonItem :
public:
explicit PolygonItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
explicit PolygonItem(const QPolygonF& path, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
+
void setColor(const QColor& color);
QColor color() const;
+ inline void loadData(const GraphicRegion::Data& data);
+
private:
void init();
@@ -28,4 +33,10 @@ class PolygonItem :
void repaint(const QRectF& rect, bool clic);
};
+inline void PolygonItem::loadData(const GraphicRegion::Data &data)
+{
+ setColor(data.color);
+ setZValue(data.zValue);
+}
+
#endif // POLYGONITEM_H
diff --git a/GScribo/Rendering/scene.cpp b/GScribo/Rendering/scene.cpp
index 695a4f1..d9bedfb 100644
--- a/GScribo/Rendering/scene.cpp
+++ b/GScribo/Rendering/scene.cpp
@@ -33,17 +33,16 @@ QString Scene::backgroundPath() const
return path;
}
-void Scene::removeItems()
+void Scene::addPolygonItem(QGraphicsItem *item)
{
- QList<QGraphicsItem *> itemsList = items();
- QGraphicsItem *i;
+ this->item = item;
+ addItem(item);
+}
- // Remove all items on the scene expect the selection.
- foreach(i, itemsList)
- {
- if(i != &selection)
- delete i;
- }
+void Scene::reset()
+{
+ if(item)
+ removeItem(item);
}
void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
diff --git a/GScribo/Rendering/scene.h b/GScribo/Rendering/scene.h
index 6aa7668..58db2d1 100644
--- a/GScribo/Rendering/scene.h
+++ b/GScribo/Rendering/scene.h
@@ -17,8 +17,10 @@ class Scene :
explicit Scene(QObject *parent = 0);
explicit Scene(const QRectF &sceneRect, QObject *parent = 0);
explicit Scene(qreal x, qreal y, qreal width, qreal height, QObject *parent = 0);
+
QString backgroundPath() const;
- void removeItems();
+ void addPolygonItem(QGraphicsItem *item);
+ void reset();
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
@@ -28,6 +30,7 @@ class Scene :
private:
void init();
+ QGraphicsItem *item;
QString path;
Selection selection;
QPointF pressPos;
@@ -38,7 +41,7 @@ class Scene :
void setBackground(const QString& filename, const QPixmap& pixmap);
signals:
- void repaintItem(const QRectF& rect, bool clic);
+ void repaintItem(const QRectF& rect, bool clic);
};
#endif // SCENE_H
diff --git a/GScribo/configs.cpp b/GScribo/configs.cpp
index e003442..56282d3 100644
--- a/GScribo/configs.cpp
+++ b/GScribo/configs.cpp
@@ -7,7 +7,7 @@ Configs::Configs()
Configs * Configs::getInstance()
{
- static Configs * conf = new Configs();
+ static Configs *conf = new Configs();
return conf;
}
diff --git a/GScribo/main.cpp b/GScribo/main.cpp
index bd76409..9ccedca 100644
--- a/GScribo/main.cpp
+++ b/GScribo/main.cpp
@@ -13,8 +13,8 @@
int main(int argc, char *argv[])
{
Magick::InitializeMagick(*argv);
- //On Linux, we NEED to use the raster graphics system.
- //Linux don't really support X11 graphics system (the default one).
+ // On Linux, we NEED to use the raster graphics system.
+ // Linux don't really support X11 graphics system (the default one).
QApplication::setGraphicsSystem("raster");
QApplication a(argc, argv);
MainWindow w;
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
index 4b2a4d3..924ef87 100644
--- a/GScribo/mainwindow.cpp
+++ b/GScribo/mainwindow.cpp
@@ -1,6 +1,7 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
+/////////////////////////////////////////////////REEEEEEEEESSSSSSSSEEEEEEEETTTTTTTT DDDDDDDAAAAAANNNNNNNSSSSSSS XML /////////////////////
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
@@ -8,10 +9,10 @@ MainWindow::MainWindow(QWidget *parent) :
ui->setupUi(this);
setWindowTitle(tr("GScribo"));
- //progressDialog.setParent(this);
initGraphicsRegion();
initTextRegion();
+ initXmlWidget();
initPageWidget();
initToolBar();
initMenuBar();
@@ -46,6 +47,15 @@ void MainWindow::initPageWidget()
addDockWidget(Qt::LeftDockWidgetArea, &dockPages);
}
+void MainWindow::initXmlWidget()
+{
+ dockXml.setWindowTitle(tr("Xml"));
+ dockXml.setFeatures(QDockWidget::DockWidgetClosable);
+ dockXml.setWidget(&xmlWidget);
+
+ addDockWidget(Qt::BottomDockWidgetArea, &dockXml);
+}
+
void MainWindow::initTextRegion()
{
dockText.setWindowTitle(tr("Text"));
@@ -84,6 +94,7 @@ void MainWindow::onOpen()
QString path = paths[0];
QPixmap pixmap(path);
+ scene.reset();
scene.setBackground(path, pixmap);
pagesWidget.addPixmap(path, pixmap);
@@ -94,6 +105,26 @@ void MainWindow::onOpen()
pixmap.load(path);
pagesWidget.addPixmap(path, pixmap);
}
+
+ // Get instance of the configuration settings.
+ Configs * const conf = Configs::getInstance();
+
+ // Get xml file from image path.
+ path.remove(0, path.lastIndexOf('/')+1);
+ int pos = path.lastIndexOf('.');
+ path.remove(pos, path.length()-pos);
+ path += "_gui.xml";
+
+ // Load xml if it exists.
+ if(QDir::temp().exists(path))
+ path = QDir::tempPath() + "/" + path;
+ else if(QDir(conf->generalSaveXmlCustomDirPath()).exists(path))
+ path = conf->generalSaveXmlCustomDirPath() + "/" + path;
+ else
+ path = QString();
+
+ if(!path.isNull())
+ onXmlSaved(path);
}
}
@@ -105,7 +136,6 @@ void MainWindow::onSegment()
if(!pagesWidget.isVisible())
filenames << scene.backgroundPath();
-
else
filenames = pagesWidget.filenames();
@@ -114,6 +144,14 @@ void MainWindow::onSegment()
}
}
+void MainWindow::onXmlSaved(const QString& filename)
+{
+ xml.load(filename);
+ xmlWidget.load(xml.treeItem());
+
+ scene.addPolygonItem(xml.graphicItem());
+}
+
void MainWindow::onPreferences()
{
PreferencesDialog *preferenceDialog = new PreferencesDialog(this);
@@ -129,6 +167,7 @@ void MainWindow::connectWidgets()
connect(&runner, SIGNAL(new_progress_max_value(int)), &progressDialog, SLOT(setMaximum(int)));
connect(&runner, SIGNAL(new_progress_label(QString)), &progressDialog, SLOT(setLabelText(QString)));
connect(&runner, SIGNAL(finished()), &progressDialog, SLOT(close()));
+ connect(&runner, SIGNAL(xml_saved(QString)), this, SLOT(onXmlSaved(QString)));
}
void MainWindow::connectShortcuts()
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
index 708a4f6..c0196df 100644
--- a/GScribo/mainwindow.h
+++ b/GScribo/mainwindow.h
@@ -14,6 +14,8 @@
#include "PagesViewer/pageswidget.h"
#include "Processing/runner.h"
#include "Rendering/scene.h"
+#include "xmlwidget.h"
+#include "xml.h"
namespace Ui
{
@@ -37,6 +39,7 @@ class MainWindow:
void initTextRegion();
void initToolBar();
void initPageWidget();
+ void initXmlWidget();
void initMenuBar();
void connectWidgets();
void connectShortcuts();
@@ -44,16 +47,20 @@ class MainWindow:
Ui::MainWindow *ui;
QDockWidget dockText;
QDockWidget dockPages;
+ QDockWidget dockXml;
QGraphicsView graphicsView;
Scene scene;
QPlainTextEdit textEdit;
PagesWidget pagesWidget;
Runner runner;
ProgressDialog progressDialog;
+ Xml xml;
+ XmlWidget xmlWidget;
private slots:
void onOpen();
void onSegment();
+ void onXmlSaved(const QString& filename);
void onPreferences();
};
diff --git a/XmlTree/pointer.h b/GScribo/variantpointer.h
similarity index 65%
copy from XmlTree/pointer.h
copy to GScribo/variantpointer.h
index 7a84c47..907008b 100644
--- a/XmlTree/pointer.h
+++ b/GScribo/variantpointer.h
@@ -1,9 +1,9 @@
-#ifndef POINTER_H
-#define POINTER_H
+#ifndef VARIANTPOINTER_H
+#define VARIANTPOINTER_H
#include <QVariant>
-template<typename T> class Pointer
+template<typename T> class VariantPointer
{
public:
static inline QVariant toQVariant(T *pointer)
@@ -13,7 +13,7 @@ template<typename T> class Pointer
{ return (T *)variant.value<void *>(); }
private:
- Pointer() { }
+ VariantPointer() { }
};
-#endif // POINTER_H
+#endif // VARIANTPOINTER_H
diff --git a/GScribo/xml.cpp b/GScribo/xml.cpp
index c213728..8446a07 100644
--- a/GScribo/xml.cpp
+++ b/GScribo/xml.cpp
@@ -2,116 +2,182 @@
static const GraphicRegion::Data itemsData[] =
{
- {QColor::fromRgb(0, 0, 255, 60), "VerticalSeparatorRegion", (int)GraphicRegion::VerticalSeparator, 2},
- {QColor::fromRgb(0, 0, 255, 60), "HorizontalSeparatorRegion", (int)GraphicRegion::HorizontalSeparator, 2},
- {QColor::fromRgb(0, 0, 128, 60), "WhitespaceSeparatorRegion", (int)GraphicRegion::WhiteSpaceSeparator, 2},
- {QColor::fromRgb(255, 120, 0, 60), "ImageRegion", (int)GraphicRegion::Image, 1},
- {QColor::fromRgb(43, 39, 128, 60), "NoiseRegion", (int)GraphicRegion::Noise, 2},
- {QColor::fromRgb(220, 246, 0, 60), "TableRegion", (int)GraphicRegion::Table, 2},
- {QColor::fromRgb(170, 0, 255, 60), "MathsRegion", (int)GraphicRegion::Maths, 3},
- {QColor::fromRgb(255, 0, 144, 60), "GraphicRegion", (int)GraphicRegion::Graphic, 2},
- {QColor::fromRgb(0, 204, 255, 60), "ChartRegion", (int)GraphicRegion::Chart, 2}
+ /* COLOR | NAME | REGION | ZVALUE */
+ { QColor::fromRgb(255, 0, 0, 80), "Line", (int)GraphicRegion::Line, 2 },
+ { QColor::fromRgb(0, 100, 0, 80), "TextRegion", (int)GraphicRegion::Text, 1 },
+ { QColor::fromRgb(0, 0, 255, 60), "VerticalSeparatorRegion", (int)GraphicRegion::VerticalSeparator, 2 },
+ { QColor::fromRgb(0, 0, 255, 60), "HorizontalSeparatorRegion", (int)GraphicRegion::HorizontalSeparator, 2 },
+ { QColor::fromRgb(0, 0, 128, 60), "WhitespaceSeparatorRegion", (int)GraphicRegion::WhiteSpaceSeparator, 2 },
+ { QColor::fromRgb(255, 120, 0, 60), "ImageRegion", (int)GraphicRegion::Image, 1 },
+ { QColor::fromRgb(43, 39, 128, 60), "NoiseRegion", (int)GraphicRegion::Noise, 2 },
+ { QColor::fromRgb(220, 246, 0, 60), "TableRegion", (int)GraphicRegion::Table, 2 },
+ { QColor::fromRgb(170, 0, 255, 60), "MathsRegion", (int)GraphicRegion::Maths, 2 },
+ { QColor::fromRgb(255, 0, 144, 60), "GraphicRegion", (int)GraphicRegion::Graphic, 2 },
+ { QColor::fromRgb(0, 204, 255, 60), "ChartRegion", (int)GraphicRegion::Chart, 2 }
};
-Xml::Xml()
+Xml::Xml(const QString &filename)
{
-
+ load(filename);
}
-void Xml::graphicsRegion(const QDomElement& element, const GraphicRegion::Data& data, Scene *scene)
+void Xml::load(const QString &filename)
{
- if(!element.isNull())
+ if(!filename.isEmpty())
{
- QPolygon polygon;
- QDomElement elt = element.firstChild().firstChild().toElement();
- while(!elt.isNull())
- {
- polygon << QPoint(elt.attribute("x", "null").toInt(), elt.attribute("y", "null").toInt());
- elt = elt.nextSibling().toElement();
- };
- PolygonItem *polygonRegion = new PolygonItem(polygon, 0, scene);
- polygonRegion->setData(0, QVariant::fromValue(data.region));
- polygonRegion->setColor(data.color);
- polygonRegion->setZValue(data.zValue);
- connect(scene, SIGNAL(repaintItems(QRectF,bool)), polygonRegion, SLOT(repaint(QRectF,bool)));
- graphicsRegion(element.nextSiblingElement(data.name), data, scene);
+ QFile xmlFile(filename);
+ xmlFile.open(QIODevice::ReadOnly);
+
+ QDomDocument xml;
+ xml.setContent(&xmlFile);
+
+ xmlFile.close();
+
+ QDomElement root = xml.documentElement();
+ tItem.setText(0, root.tagName());
+
+ root = root.firstChild().toElement();
+ QTreeWidgetItem *parentTreeItem = init(root, &tItem);
+
+ // Run through the xml file structure by structure.
+ root = root.nextSibling().firstChild().toElement();
+ processNode(root, itemsData[1], parentTreeItem);
+ for(int i = 2; i < 10; i++)
+ processNode(root.nextSiblingElement(itemsData[i].name), itemsData[i], parentTreeItem);
}
}
-void Xml::graphicsTypoRegion(const QDomElement& element, const QPoint& xPos, Scene *scene)
+QTreeWidgetItem *Xml::init(const QDomElement& root, QTreeWidgetItem *rootTreeItem)
{
- int yPos = element.attribute("baseline", "null").toInt();
- QGraphicsLineItem *baselineRegion = new QGraphicsLineItem(QLine(QPoint(xPos.x(), yPos), QPoint(xPos.y(), yPos)), 0, scene);
- baselineRegion->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
- baselineRegion->setData(0, QVariant::fromValue((int)GraphicRegion::Baseline));
- baselineRegion->setZValue(3);
- yPos = element.attribute("meanline", "null").toInt();
- QGraphicsLineItem *meanlineRegion = new QGraphicsLineItem(QLine(QPoint(xPos.x(), yPos), QPoint(xPos.y(), yPos)), 0, scene);
- meanlineRegion->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
- meanlineRegion->setData(0, QVariant::fromValue((int)GraphicRegion::Meanline));
- meanlineRegion->setZValue(3);
+ QDomElement node = root;
+ QString nodeText;
+
+ QTreeWidgetItem *parentTreeItem = new QTreeWidgetItem(rootTreeItem);
+ parentTreeItem->setText(0, node.tagName());
+
+ QTreeWidgetItem *treeItem, *childTreeItem;
+ node = node.firstChild().toElement();
+
+ // Run through "METADATA" node and subnodes.
+ while(!node.isNull())
+ {
+ treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
+ treeItem->setText(0, node.tagName());
+
+ // Add widget item child with text content.
+ nodeText = node.text();
+ childTreeItem = new QTreeWidgetItem(treeItem);
+ childTreeItem->setText(0, nodeText);
+
+ node = node.nextSibling().toElement();
+ }
+
+ // Add "PAGE" root node and return it.
+ parentTreeItem = new QTreeWidgetItem(rootTreeItem, parentTreeItem);
+ parentTreeItem->setText(0, root.nextSibling().toElement().tagName());
+
+ return parentTreeItem;
}
-void Xml::graphicsLineRegion(const QDomElement &element, Scene *scene)
+void Xml::processNode(const QDomElement& root, const GraphicRegion::Data& data, QTreeWidgetItem *rootTreeItem)
{
- if(!element.isNull())
+ if(!root.isNull())
{
- QPolygon polygonLine;
- QDomElement elt = element.firstChild().firstChild().toElement();
- int xMin = INT_MAX;
- int xMax = -1;
- int x, y;
- while(!elt.isNull())
+ // Create corresponding tree item.
+ QTreeWidgetItem *parentTreeItem = fillWidgetItem(root.tagName(), rootTreeItem);
+ QTreeWidgetItem *treeItem;
+
+ QPolygon polygon;
+ QString sx, sy;
+
+ // Run through all points data.
+ QDomElement node = root.firstChild().firstChild().toElement();
+ while(!node.isNull())
{
- x = elt.attribute("x", "null").toInt();
- y = elt.attribute("y", "null").toInt();
- if (xMin > x)
- xMin = x;
- if (xMax < x)
- xMax = x;
- polygonLine << QPoint(x, y);
- elt = elt.nextSibling().toElement();
+ sx = node.attribute("x", "null");
+ sy = node.attribute("y", "null");
+
+ treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
+ treeItem->setText(0, node.tagName() + " = " + sx + ", " + sy);
+
+ polygon << QPoint(sx.toInt(), sy.toInt());
+ node = node.nextSibling().toElement();
}
- PolygonItem *lineRegion = new PolygonItem(polygonLine, 0, scene);
- lineRegion->setData(0, QVariant::fromValue((int)GraphicRegion::Line));
- lineRegion->setColor(QColor::fromRgb(255, 0, 0, 80));
- lineRegion->setZValue(2);
- connect(scene, SIGNAL(repaintItems(QRectF,bool)), lineRegion, SLOT(repaint(QRectF,bool)));
- graphicsTypoRegion(element, QPoint(xMin, xMax), scene);
- graphicsLineRegion(element.nextSiblingElement("Line"), scene);
+
+ // Create the graphical item from data structure.
+ PolygonItem *polygonItem = new PolygonItem(polygon, &gItem);
+ polygonItem->loadData(data);
+ // Store tree object in the graphical object.
+ polygonItem->setData(0, VariantPointer<QTreeWidgetItem>::toQVariant(parentTreeItem));
+
+ if(data.region == GraphicRegion::Text)
+ processLineNode(root.firstChild().nextSiblingElement("Line"), polygonItem, parentTreeItem->parent());
+
+ // Run through all nodes from the same data structure recursively.
+ processNode(root.nextSiblingElement(data.name), data, rootTreeItem);
}
}
-void Xml::graphicsTextRegion(const QDomElement &element, Scene *scene)
+void Xml::processLineNode(const QDomElement& root, PolygonItem *parentPolygonItem, QTreeWidgetItem *rootTreeItem)
{
- if(!element.isNull())
+ if(!root.isNull())
{
- QPolygon polygonText;
- QDomElement elt = element.firstChild().firstChild().toElement();
- while(!elt.isNull())
+ // Create corresponding tree item.
+ QTreeWidgetItem *parentTreeItem = fillWidgetItem(root.tagName(), rootTreeItem);
+ QTreeWidgetItem *treeItem;
+
+ QPolygon polygon;
+ QString sx, sy;
+ int x, y;
+
+ int xMin = INT_MAX;
+ int xMax = INT_MIN;
+
+ // Run through all points data.
+ QDomElement node = root.firstChild().firstChild().toElement();
+ while(!node.isNull())
{
- polygonText << QPoint(elt.attribute("x", "null").toInt(), elt.attribute("y", "null").toInt());
- elt = elt.nextSibling().toElement();
+ sx = node.attribute("x", "null");
+ sy = node.attribute("y", "null");
+
+ treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
+ treeItem->setText(0, node.tagName() + " = " + sx + ", " + sy);
+
+ x = sx.toInt();
+ y = sy.toInt();
+
+ // Get beginning and end of line.
+ if(xMin > x)
+ xMin = x;
+ if(xMax < x)
+ xMax = x;
+
+ polygon << QPoint(x, y);
+ node = node.nextSibling().toElement();
}
- PolygonItem *textRegion = new PolygonItem(polygonText, 0, scene);
- textRegion->setColor(QColor::fromRgb(0, 100, 0, 80));
- textRegion->setData(0, QVariant::fromValue((int)GraphicRegion::Text));
- textRegion->setZValue(1);
- connect(scene, SIGNAL(repaintItems(QRectF,bool)), textRegion, SLOT(repaint(QRectF,bool)));
- graphicsLineRegion(element.firstChild().nextSiblingElement("Line"), scene);
- graphicsTextRegion(element.nextSiblingElement("TextRegion"), scene);
+
+ // Create the graphical item from data structure.
+ PolygonItem *polygonItem = new PolygonItem(polygon, parentPolygonItem);
+ polygonItem->loadData(itemsData[0]);
+ // Store tree object in the graphical object.
+ polygonItem->setData(0, VariantPointer<QTreeWidgetItem>::toQVariant(parentTreeItem));
+
+ // Get meanline and baseline.
+ processTypoNode(root, QPoint(xMin, xMax), polygonItem);
+ // Run through all line nodes recursively.
+ processLineNode(root.nextSiblingElement("Line"), parentPolygonItem, rootTreeItem);
}
}
-void Xml::parseItems(const QString &filename, Scene *scene)
+void Xml::processTypoNode(const QDomElement& root, const QPoint& xPoint, PolygonItem *parentPolygonItem)
{
- QFile xmlFile(filename);
- xmlFile.open(QIODevice::ReadOnly);
- QDomDocument xml;
- xml.setContent(&xmlFile);
- xmlFile.close();
- QDomElement element = xml.documentElement().firstChild().nextSiblingElement("Page").firstChild().toElement();
- graphicsTextRegion(element, scene);
- for(int i = 0; i < 9; i++)
- graphicsRegion(element.nextSiblingElement(itemsData[i].name), itemsData[i], scene);
+ int yPos = root.attribute("baseline", "null").toInt();
+ QGraphicsLineItem *baselineItem = new QGraphicsLineItem(QLine(QPoint(xPoint.x(), yPos), QPoint(xPoint.y(), yPos)), parentPolygonItem);
+ baselineItem->setData(0, QVariant::fromValue((int)GraphicRegion::Baseline));
+ baselineItem->setZValue(3);
+
+ yPos = root.attribute("meanline", "null").toInt();
+ QGraphicsLineItem *meanlineItem = new QGraphicsLineItem(QLine(QPoint(xPoint.x(), yPos), QPoint(xPoint.y(), yPos)), parentPolygonItem);
+ meanlineItem->setData(0, QVariant::fromValue((int)GraphicRegion::Meanline));
+ meanlineItem->setZValue(3);
}
diff --git a/GScribo/xml.h b/GScribo/xml.h
index 840f73a..efd0511 100644
--- a/GScribo/xml.h
+++ b/GScribo/xml.h
@@ -1,38 +1,51 @@
#ifndef XML_H
#define XML_H
+#include <QTreeWidgetItem>
#include <QGraphicsItem>
+#include <QStringList>
#include <QDomElement>
-#include <QTextEdit>
#include <climits>
-#include <QString>
#include <QFile>
-#include "polygonitem.h"
+#include "Rendering/polygonitem.h"
+#include "variantpointer.h"
#include "region.h"
-#include "region.h"
-#include "scene.h"
-struct Node
-{
- QDomElement root;
- QDomElement
-};
-
-class Xml:
+class Xml :
QObject
{
+ Q_OBJECT
+
public:
- Xml();
- static void parseItems(const QString &filename, Scene *scene);
+ explicit Xml(const QString& filename = QString());
+
+ void load(const QString& filename);
+ inline QTreeWidgetItem *treeItem();
+ inline QGraphicsItem *graphicItem();
private:
- void graphicsRegion(const QDomElement& element, const GraphicRegion::Data& data, Scene *scene);
- void graphicsTypoRegion(const QDomElement& element, const QPoint& xPos, Scene *scene);
- void graphicsLineRegion(const QDomElement& element, Scene *scene);
- void graphicsTextRegion(const QDomElement& element, Scene *scene);
+ QTreeWidgetItem *init(const QDomElement& root, QTreeWidgetItem *rootTreeItem);
+ inline QTreeWidgetItem *fillWidgetItem(const QString& tagName, QTreeWidgetItem *rootTreeItem);
+ void processNode(const QDomElement& root, const GraphicRegion::Data& data, QTreeWidgetItem *rootTreeItem);
+ void processLineNode(const QDomElement& root, PolygonItem *parentPolygonItem, QTreeWidgetItem *rootTreeItem);
+ void processTypoNode(const QDomElement& root, const QPoint& xPoint, PolygonItem *rootPolygonItem);
- QDomElement root;
+ QGraphicsPolygonItem gItem;
+ QTreeWidgetItem tItem;
};
+inline QTreeWidgetItem *Xml::treeItem()
+{ return &tItem; }
+
+inline QGraphicsItem *Xml::graphicItem()
+{ return &gItem; }
+
+inline QTreeWidgetItem *Xml::fillWidgetItem(const QString& tagName, QTreeWidgetItem *rootTreeItem)
+{
+ QTreeWidgetItem *treeItem = new QTreeWidgetItem(rootTreeItem, QStringList(tagName));
+ treeItem = new QTreeWidgetItem(treeItem, QStringList("Coords"));
+ return treeItem;
+}
+
#endif // XML_H
diff --git a/GScribo/xmlwidget.cpp b/GScribo/xmlwidget.cpp
new file mode 100644
index 0000000..8f021b4
--- /dev/null
+++ b/GScribo/xmlwidget.cpp
@@ -0,0 +1,19 @@
+#include "xmlwidget.h"
+
+XmlWidget::XmlWidget(QWidget *parent) :
+ QWidget(parent)
+{
+ viewer.setHeaderHidden(true);
+
+ QHBoxLayout *hLayout = new QHBoxLayout;
+
+ QStringList headerNames;
+ headerNames << tr("Name") << tr("Value");
+
+ property.setHeaderItem(new QTreeWidgetItem(headerNames));
+
+ hLayout->addWidget(&viewer);
+ hLayout->addWidget(&property);
+
+ setLayout(hLayout);
+}
diff --git a/GScribo/xmlwidget.h b/GScribo/xmlwidget.h
new file mode 100644
index 0000000..9c01024
--- /dev/null
+++ b/GScribo/xmlwidget.h
@@ -0,0 +1,25 @@
+#ifndef XMLWIDGET_H
+#define XMLWIDGET_H
+
+#include <QTreeWidget>
+#include <QVBoxLayout>
+#include <QWidget>
+#include <QLabel>
+
+class XmlWidget :
+ public QWidget
+{
+ public:
+ explicit XmlWidget(QWidget *parent = 0);
+
+ inline void load(QTreeWidgetItem *treeItem);
+
+ private:
+ QTreeWidget viewer;
+ QTreeWidget property;
+};
+
+inline void XmlWidget::load(QTreeWidgetItem *treeItem)
+{ if(treeItem != 0) { viewer.reset(); viewer.addTopLevelItem(treeItem); } }
+
+#endif // XMLWIDGET_H
diff --git a/XmlTree/pointer.h b/VariantPointer.h
similarity index 65%
copy from XmlTree/pointer.h
copy to VariantPointer.h
index 7a84c47..907008b 100644
--- a/XmlTree/pointer.h
+++ b/VariantPointer.h
@@ -1,9 +1,9 @@
-#ifndef POINTER_H
-#define POINTER_H
+#ifndef VARIANTPOINTER_H
+#define VARIANTPOINTER_H
#include <QVariant>
-template<typename T> class Pointer
+template<typename T> class VariantPointer
{
public:
static inline QVariant toQVariant(T *pointer)
@@ -13,7 +13,7 @@ template<typename T> class Pointer
{ return (T *)variant.value<void *>(); }
private:
- Pointer() { }
+ VariantPointer() { }
};
-#endif // POINTER_H
+#endif // VARIANTPOINTER_H
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index 5cb6ffe..210f7cf 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -1,892 +1,160 @@
-<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
-<!-- Written by Qt Creator 2.4.1, 2013-01-28T01:19:28. -->
<qtcreator>
<data>
- <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <variable>RunConfiguration0-BaseEnvironmentBase</variable>
+ <value type="int">2</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-CommandLineArguments</variable>
+ <valuelist type="QVariantList"/>
+ </data>
+ <data>
+ <variable>RunConfiguration0-ProFile</variable>
+ <value type="QString">XmlParser.pro</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-RunConfiguration.name</variable>
+ <value type="QString">XmlParser</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UseDyldImageSuffix</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UseTerminal</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserEnvironmentChanges</variable>
+ <valuelist type="QVariantList"/>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserSetName</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserWorkingDirectory</variable>
+ <value type="QString"></value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-type</variable>
+ <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
+ </data>
+ <data>
+ <variable>activeRunConfiguration</variable>
<value type="int">0</value>
</data>
<data>
- <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <variable>activebuildconfiguration</variable>
+ <value type="QString">Debug</value>
+ </data>
+ <data>
+ <variable>buildConfiguration-Debug</variable>
<valuemap type="QVariantMap">
- <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
- <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
- <value type="QString" key="language">Cpp</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QString" key="CurrentPreferences">CppGlobal</value>
- </valuemap>
- </valuemap>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
- <value type="QString" key="language">QmlJS</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
- </valuemap>
- </valuemap>
- <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
- <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
- <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
- <value type="int" key="EditorConfiguration.IndentSize">4</value>
- <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
- <value type="int" key="EditorConfiguration.PaddingMode">1</value>
- <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
- <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
- <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
- <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
- <value type="int" key="EditorConfiguration.TabSize">8</value>
- <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
- <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
- <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
- <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
- <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
- <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="QtVersionId" type="int">0</value>
+ <value key="ToolChain" type="int">0</value>
+ <value key="buildConfiguration" type="int">2</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.PluginSettings</variable>
- <valuemap type="QVariantMap"/>
+ <variable>buildConfiguration-Release</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ <value key="QtVersionId" type="int">0</value>
+ <value key="buildConfiguration" type="int">0</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Debug-buildstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Debug-buildstep1</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Debug-cleanstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="cleanConfig" type="bool">true</value>
+ <valuelist key="makeargs" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ </valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.0</variable>
+ <variable>buildconfiguration-Release-buildstep0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit./usr/bin/gdb</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser-build-desktop-Debug</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit./usr/bin/gdb</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser-build-desktop-Release</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Configuration d'exécution Qt4</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">XmlParser</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">XmlParser.pro</value>
- <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
- <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.1</variable>
+ <variable>buildconfiguration-Release-buildstep1</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.S60EmulatorTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">XmlParser sur l'émulateur Symbian</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60EmulatorRunConfiguration</value>
- <value type="QString" key="Qt4ProjectManager.S60EmulatorRunConfiguration.ProFile">XmlParser.pro</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.2</variable>
+ <variable>buildconfiguration-Release-cleanstep0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">3</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.S60DeviceTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Créer le paquet SIS</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Create SIS package</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60SignBuildStep</value>
- <value type="QString" key="Qt4ProjectManager.S60CreatePackageStep.Certificate"></value>
- <value type="QString" key="Qt4ProjectManager.S60CreatePackageStep.Keyfile"></value>
- <value type="int" key="Qt4ProjectManager.S60CreatePackageStep.SignMode">0</value>
- <value type="bool" key="Qt4ProjectManager.S60CreatorPackageStep.SmartInstaller">false</value>
- <value type="bool" key="Qt4ProjectManager.S60CreatorPackageStep.SuppressPatchWarningDialog">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déployer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeployStep</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Déployer sur un périphérique Symbian</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">XmlParser sur périphérique Symbian</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.S60DeviceRunConfiguration</value>
- <value type="QString" key="Qt4ProjectManager.S60DeviceRunConfiguration.CommandLineArguments"></value>
- <value type="QString" key="Qt4ProjectManager.S60DeviceRunConfiguration.ProFile">XmlParser.pro</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.3</variable>
+ <variable>buildconfigurations</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">Debug</value>
+ <value type="QString">Release</value>
+ </valuelist>
+ </data>
+ <data>
+ <variable>buildstep0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">4</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.MaemoDeviceTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser-build-maemo-Debug</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlParser-build-maemo-Release</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déployer le paquet par montage UTFS</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MaemoDeployStep</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes"/>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compilation du paquet Debian et installation sur le périphérique Maemo5</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Déployer sur un périphérique Maemo</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">2.2MaemoDeployConfig</value>
- <value type="qulonglong" key="Qt4ProjectManager.MaemoRunConfiguration.DeviceId">0</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">XmlParser (sur un périphérique distant)</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MaemoRunConfiguration</value>
- <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
- <value type="int" key="Qt4ProjectManager.MaemoRunConfiguration.BaseEnvironmentBase">1</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.ExportedLocalDirs"/>
- <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile">XmlParser.pro</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.RemoteMountPoints"/>
- <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
- <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ <value key="mkspec" type="QString"></value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.TargetCount</variable>
- <value type="int">4</value>
+ <variable>buildstep1</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ </valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
- <value type="QString">{5e5821f7-3a40-405f-b196-cbc6284a3a45}</value>
+ <variable>buildsteps</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">trolltech.qt4projectmanager.qmake</value>
+ <value type="QString">trolltech.qt4projectmanager.make</value>
+ </valuelist>
</data>
<data>
- <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">10</value>
+ <variable>cleanstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ <value key="clean" type="bool">true</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>cleansteps</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">trolltech.qt4projectmanager.make</value>
+ </valuelist>
+ </data>
+ <data>
+ <variable>defaultFileEncoding</variable>
+ <value type="QByteArray">System</value>
+ </data>
+ <data>
+ <variable>project</variable>
+ <valuemap type="QVariantMap"/>
</data>
</qtcreator>
diff --git a/XmlParser/xml.cpp b/XmlParser/xml.cpp
index 67c5451..64df412 100644
--- a/XmlParser/xml.cpp
+++ b/XmlParser/xml.cpp
@@ -33,6 +33,7 @@ void Xml::graphicsRegion(const QDomElement& element, const GraphicRegion::Data&
polygonRegion->setData(0, QVariant::fromValue(data.region));
polygonRegion->setColor(data.color);
polygonRegion->setZValue(data.zValue);
+ polygonRegion->setZValue(data.zValue);
connect(scene, SIGNAL(repaintItems(QRectF,bool)), polygonRegion, SLOT(repaint(QRectF,bool)));
graphicsRegion(element.nextSiblingElement(data.name), data, scene);
}
diff --git a/XmlTree/XmlTree.pro.user b/XmlTree/XmlTree.pro.user
index 440d7c1..847bc66 100644
--- a/XmlTree/XmlTree.pro.user
+++ b/XmlTree/XmlTree.pro.user
@@ -1,265 +1,295 @@
-<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
-<!-- Written by Qt Creator 2.4.1, 2013-01-28T01:19:36. -->
<qtcreator>
<data>
- <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <variable>RunConfiguration0-BaseEnvironmentBase</variable>
+ <value type="int">2</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-CommandLineArguments</variable>
+ <valuelist type="QVariantList"/>
+ </data>
+ <data>
+ <variable>RunConfiguration0-ProFile</variable>
+ <value type="QString">XmlTree.pro</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-RunConfiguration.name</variable>
+ <value type="QString">XmlTree</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UseDyldImageSuffix</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UseTerminal</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserEnvironmentChanges</variable>
+ <valuelist type="QVariantList"/>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserSetName</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
+ <value type="bool">false</value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-UserWorkingDirectory</variable>
+ <value type="QString"></value>
+ </data>
+ <data>
+ <variable>RunConfiguration0-type</variable>
+ <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
+ </data>
+ <data>
+ <variable>activeRunConfiguration</variable>
<value type="int">0</value>
</data>
<data>
- <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <variable>activebuildconfiguration</variable>
+ <value type="QString">Debug</value>
+ </data>
+ <data>
+ <variable>buildConfiguration-Debug</variable>
<valuemap type="QVariantMap">
- <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
- <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
- <value type="QString" key="language">Cpp</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QString" key="CurrentPreferences">CppGlobal</value>
- </valuemap>
- </valuemap>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
- <value type="QString" key="language">QmlJS</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
- </valuemap>
- </valuemap>
- <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
- <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
- <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
- <value type="int" key="EditorConfiguration.IndentSize">4</value>
- <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
- <value type="int" key="EditorConfiguration.PaddingMode">1</value>
- <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
- <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
- <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
- <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
- <value type="int" key="EditorConfiguration.TabSize">8</value>
- <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
- <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
- <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
- <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
- <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
- <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="QtVersionId" type="int">0</value>
+ <value key="ToolChain" type="int">0</value>
+ <value key="addQDumper" type=""></value>
+ <value key="buildConfiguration" type="int">2</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.PluginSettings</variable>
- <valuemap type="QVariantMap"/>
+ <variable>buildConfiguration-Release</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ <value key="QtVersionId" type="int">0</value>
+ <value key="addQDumper" type=""></value>
+ <value key="buildConfiguration" type="int">0</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Debug-buildstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-eapkGsqUHQ,guid=856e00f0cd1b8664a4a8a6ce006f8d7e</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-bwEU7s</value>
+ <value type="QString">GNOME_KEYRING_PID=2961</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/XmlTree</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=3036</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yHlEXz2970/agent.2970</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=10485796</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm5EEHRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359358530.347400-806764092</value>
+ <value type="QString">XPSERVERLIST=:64 </value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ <value type="QString">_=/usr/bin/qtcreator</value>
+ </valuelist>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/XmlTree/XmlTree.pro</value>
+ <value type="QString">-spec</value>
+ <value type="QString">linux-g++</value>
+ <value type="QString">-r</value>
+ <value type="QString">CONFIG+=debug</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
+ <value key="abstractProcess.enabled" type="bool">false</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/XmlTree</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Debug-buildstep1</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-eapkGsqUHQ,guid=856e00f0cd1b8664a4a8a6ce006f8d7e</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-bwEU7s</value>
+ <value type="QString">GNOME_KEYRING_PID=2961</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/XmlTree</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=3036</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yHlEXz2970/agent.2970</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=10485796</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm5EEHRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359358530.347400-806764092</value>
+ <value type="QString">XPSERVERLIST=:64 </value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ <value type="QString">_=/usr/bin/qtcreator</value>
+ </valuelist>
+ <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">-w</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/XmlTree</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Debug-cleanstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-eapkGsqUHQ,guid=856e00f0cd1b8664a4a8a6ce006f8d7e</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-bwEU7s</value>
+ <value type="QString">GNOME_KEYRING_PID=2961</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/XmlTree</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=3036</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yHlEXz2970/agent.2970</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=10485796</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm5EEHRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359358530.347400-806764092</value>
+ <value type="QString">XPSERVERLIST=:64 </value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ <value type="QString">_=/usr/bin/qtcreator</value>
+ </valuelist>
+ <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">clean</value>
+ <value type="QString">-w</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/XmlTree</value>
+ <value key="cleanConfig" type="bool">true</value>
+ <valuelist key="makeargs" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Release-buildstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Release-buildstep1</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfiguration-Release-cleanstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildconfigurations</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">Debug</value>
+ <value type="QString">Release</value>
+ </valuelist>
+ </data>
+ <data>
+ <variable>buildstep0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ <value key="mkspec" type="QString"></value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildstep1</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>buildsteps</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">trolltech.qt4projectmanager.qmake</value>
+ <value type="QString">trolltech.qt4projectmanager.make</value>
+ </valuelist>
</data>
<data>
- <variable>ProjectExplorer.Project.Target.0</variable>
+ <variable>cleanstep0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit./usr/bin/gdb</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlTree-build-desktop-Debug</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
- <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit./usr/bin/gdb</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
- <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
- <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
- <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
- <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
- <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/onix/qt/XmlTree-build-desktop-Release</value>
- <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
- <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Pas de déploiement</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Configuration d'exécution Qt4</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">XmlTree</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
- <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">XmlTree.pro</value>
- <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
- <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
- <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
+ <value key="clean" type="bool">true</value>
</valuemap>
</data>
<data>
- <variable>ProjectExplorer.Project.TargetCount</variable>
- <value type="int">1</value>
+ <variable>cleansteps</variable>
+ <valuelist type="QVariantList">
+ <value type="QString">trolltech.qt4projectmanager.make</value>
+ </valuelist>
</data>
<data>
- <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
- <value type="QString">{5e5821f7-3a40-405f-b196-cbc6284a3a45}</value>
+ <variable>defaultFileEncoding</variable>
+ <value type="QByteArray">System</value>
</data>
<data>
- <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">10</value>
+ <variable>project</variable>
+ <valuemap type="QVariantMap"/>
</data>
</qtcreator>
diff --git a/XmlTree/mainwindow.cpp b/XmlTree/mainwindow.cpp
index 337b2f7..26729b7 100644
--- a/XmlTree/mainwindow.cpp
+++ b/XmlTree/mainwindow.cpp
@@ -7,10 +7,17 @@ MainWindow::MainWindow(QWidget *parent) :
{
ui->setupUi(this);
- xml.load("/home/onix/icdar_ppm_100p/mp00032c_gui.xml");
+ xml.load("/tmp/mp00082c_gui.xml");
- xmlWidget.load(xml.treeItem());
- setCentralWidget(&xmlWidget);
+ //xmlWidget.load(xml.treeItem());
+
+ view = new QGraphicsView(new QGraphicsScene());
+
+ QGraphicsItem *item;
+ foreach(item, xml.graphicsItems())
+ view->scene()->addItem(item);
+
+ setCentralWidget(view);
}
MainWindow::~MainWindow()
diff --git a/XmlTree/mainwindow.h b/XmlTree/mainwindow.h
index 61da1bb..221d43d 100644
--- a/XmlTree/mainwindow.h
+++ b/XmlTree/mainwindow.h
@@ -1,6 +1,7 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
+#include <QGraphicsView>
#include <QMainWindow>
#include "xmlwidget.h"
@@ -25,6 +26,7 @@ class MainWindow :
private:
Ui::MainWindow *ui;
+ QGraphicsView *view;
XmlWidget xmlWidget;
Xml xml;
};
diff --git a/XmlTree/polygonitem.h b/XmlTree/polygonitem.h
index 893bde3..0e8377d 100644
--- a/XmlTree/polygonitem.h
+++ b/XmlTree/polygonitem.h
@@ -4,6 +4,8 @@
#include <QGraphicsPathItem>
#include <QPen>
+#include "region.h"
+
class PolygonItem :
public QObject,
public QGraphicsPolygonItem
@@ -13,9 +15,12 @@ class PolygonItem :
public:
explicit PolygonItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
explicit PolygonItem(const QPolygonF& path, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
+
void setColor(const QColor& color);
QColor color() const;
+ inline void loadData(const GraphicRegion::Data& data);
+
private:
void init();
@@ -28,4 +33,11 @@ class PolygonItem :
void repaint(const QRectF& rect, bool clic);
};
+inline void PolygonItem::loadData(const GraphicRegion::Data &data)
+{
+ setData(0, data.region);
+ setColor(data.color);
+ setZValue(data.zValue);
+}
+
#endif // POLYGONITEM_H
diff --git a/XmlTree/xml.cpp b/XmlTree/xml.cpp
index a82ca4f..8dd9d17 100644
--- a/XmlTree/xml.cpp
+++ b/XmlTree/xml.cpp
@@ -1,8 +1,20 @@
#include "xml.h"
-Xml::Xml()
+static const GraphicRegion::Data itemsData[] =
{
-}
+ /* COLOR | NAME | REGION | ZVALUE */
+ { QColor::fromRgb(255, 0, 0, 80), "Line", (int)GraphicRegion::Line, 2 },
+ { QColor::fromRgb(0, 100, 0, 80), "TextRegion", (int)GraphicRegion::Text, 1 },
+ { QColor::fromRgb(0, 0, 255, 60), "VerticalSeparatorRegion", (int)GraphicRegion::VerticalSeparator, 2 },
+ { QColor::fromRgb(0, 0, 255, 60), "HorizontalSeparatorRegion", (int)GraphicRegion::HorizontalSeparator, 2 },
+ { QColor::fromRgb(0, 0, 128, 60), "WhitespaceSeparatorRegion", (int)GraphicRegion::WhiteSpaceSeparator, 2 },
+ { QColor::fromRgb(255, 120, 0, 60), "ImageRegion", (int)GraphicRegion::Image, 1 },
+ { QColor::fromRgb(43, 39, 128, 60), "NoiseRegion", (int)GraphicRegion::Noise, 2 },
+ { QColor::fromRgb(220, 246, 0, 60), "TableRegion", (int)GraphicRegion::Table, 2 },
+ { QColor::fromRgb(170, 0, 255, 60), "MathsRegion", (int)GraphicRegion::Maths, 2 },
+ { QColor::fromRgb(255, 0, 144, 60), "GraphicRegion", (int)GraphicRegion::Graphic, 2 },
+ { QColor::fromRgb(0, 204, 255, 60), "ChartRegion", (int)GraphicRegion::Chart, 2 }
+};
Xml::Xml(const QString &filename)
{
@@ -11,75 +23,157 @@ Xml::Xml(const QString &filename)
void Xml::load(const QString &filename)
{
- QFile xmlFile(filename);
- xmlFile.open(QIODevice::ReadOnly);
+ if(!filename.isEmpty())
+ {
+ QFile xmlFile(filename);
+ xmlFile.open(QIODevice::ReadOnly);
- QDomDocument xml;
- xml.setContent(&xmlFile);
+ QDomDocument xml;
+ xml.setContent(&xmlFile);
- xmlFile.close();
+ xmlFile.close();
- QDomElement root = xml.documentElement();
- tItems.setText(0, root.tagName());
+ QDomElement root = xml.documentElement();
+ tItems.setText(0, root.tagName());
- root = root.firstChild().toElement();
- init(root, &tItems);
+ root = root.firstChild().toElement();
+ QTreeWidgetItem *parentTreeItem = init(root, &tItems);
- root.nextSibling().toElement();
+ // Run through the xml file structure by structure.
+ root = root.nextSibling().firstChild().toElement();
+ for(int i = 1; i < 10; i++)
+ processNode(root.nextSiblingElement(itemsData[i].name), itemsData[i], parentTreeItem);
+ }
}
-void Xml::init(const QDomElement& root, QTreeWidgetItem *parentTreeItem)
+QTreeWidgetItem *Xml::init(const QDomElement& root, QTreeWidgetItem *rootTreeItem)
{
QDomElement node = root;
- QTreeWidgetItem *precTreeItem = 0;
+ QString nodeText;
+
+ QTreeWidgetItem *parentTreeItem = new QTreeWidgetItem(rootTreeItem);
+ parentTreeItem->setText(0, node.tagName());
+ QTreeWidgetItem *treeItem, *childTreeItem;
+ node = node.firstChild().toElement();
+
+ // Run through "METADATA" node and subnodes.
while(!node.isNull())
{
- QTreeWidgetItem *treeItem = new QTreeWidgetItem(parentTreeItem, precTreeItem);
+ treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
treeItem->setText(0, node.tagName());
// Add widget item child with text content.
- QString nodeText = node.text();
- QTreeWidgetItem *child = new QTreeWidgetItem(treeItem);
- child->setText(0, nodeText);
+ nodeText = node.text();
+ childTreeItem = new QTreeWidgetItem(treeItem);
+ childTreeItem->setText(0, nodeText);
- precTreeItem = treeItem;
node = node.nextSibling().toElement();
}
+
+ // Add "PAGE" root node and return it.
+ parentTreeItem = new QTreeWidgetItem(rootTreeItem, parentTreeItem);
+ parentTreeItem->setText(0, root.nextSibling().toElement().tagName());
+
+ return parentTreeItem;
}
-void Xml::processNode(const QDomElement& root, const GraphicRegion::Data& data, QTreeWidgetItem *parentTreeItem)
+void Xml::processNode(const QDomElement& root, const GraphicRegion::Data& data, QTreeWidgetItem *rootTreeItem)
{
-
- /*if(!root.isNull())
+ if(!root.isNull())
{
- QDomElement node = root;
+ // Create corresponding tree item.
+ QTreeWidgetItem *parentTreeItem = fillWidgetItem(root.tagName(), rootTreeItem);
+ QTreeWidgetItem *treeItem;
- QTreeWidgetItem *treeItem = new QTreeWidgetItem(parentTreeItem);
- treeItem->setText(0, node.tagName());
+ QPolygon polygon;
+ QString sx, sy;
- node = node.firstChild().toElement();
- treeItem = new QTreeWidgetItem(treeItem);
- treeItem->setText(0, node.tagName());
+ // Run through all points data.
+ QDomElement node = root.firstChild().firstChild().toElement();
+ while(!node.isNull())
+ {
+ sx = node.attribute("x", "null");
+ sy = node.attribute("y", "null");
+
+ treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
+ treeItem->setText(0, node.tagName() + " = " + sx + ", " + sy);
- node = node.firstChild().toElement();
- QTreeWidgetItem *precItem = 0;
+ polygon << QPoint(sx.toInt(), sy.toInt());
+ node = node.nextSibling().toElement();
+ }
+
+ // Create the graphical item from data structure.
+ PolygonItem *polygonItem = new PolygonItem(polygon);
+ polygonItem->loadData(data);
+ gItems << polygonItem;
if(data.region == GraphicRegion::Text)
- {
- while(!node.isNull())
- {
+ processLineNode(root.firstChild().nextSiblingElement("Line"), polygonItem, parentTreeItem->parent());
- }
- }
+ // Run through all nodes from the same data structure recursively.
+ processNode(root.nextSiblingElement(data.name), data, rootTreeItem);
+ }
+}
+
+void Xml::processLineNode(const QDomElement& root, PolygonItem *parentPolygonItem, QTreeWidgetItem *rootTreeItem)
+{
+ if(!root.isNull())
+ {
+ // Create corresponding tree item.
+ QTreeWidgetItem *parentTreeItem = fillWidgetItem(root.tagName(), rootTreeItem);
+ QTreeWidgetItem *treeItem;
+
+ QPolygon polygon;
+ QString sx, sy;
+ int x, y;
- else
+ int xMin = INT_MAX;
+ int xMax = INT_MIN;
+
+ // Run through all points data.
+ QDomElement node = root.firstChild().firstChild().toElement();
+ while(!node.isNull())
{
- while(!node.isNull())
- {
+ sx = node.attribute("x", "null");
+ sy = node.attribute("y", "null");
+
+ treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
+ treeItem->setText(0, node.tagName() + " = " + sx + ", " + sy);
- }
+ x = sx.toInt();
+ y = sy.toInt();
+
+ // Get beginning and end of line.
+ if(xMin > x)
+ xMin = x;
+ if(xMax < x)
+ xMax = x;
+
+ polygon << QPoint(x, y);
+ node = node.nextSibling().toElement();
}
- }*/
+ // Create the graphical item from data structure.
+ PolygonItem *polygonItem = new PolygonItem(polygon, parentPolygonItem);
+ polygonItem->loadData(itemsData[0]);
+
+ // Get meanline and baseline.
+ processTypoNode(root, QPoint(xMin, xMax), polygonItem);
+ // Run through all line nodes recursively.
+ processLineNode(root.nextSiblingElement("Line"), parentPolygonItem, rootTreeItem);
+ }
+}
+
+void Xml::processTypoNode(const QDomElement& root, const QPoint& xPoint, PolygonItem *parentPolygonItem)
+{
+ int yPos = root.attribute("baseline", "null").toInt();
+ QGraphicsLineItem *baselineItem = new QGraphicsLineItem(QLine(QPoint(xPoint.x(), yPos), QPoint(xPoint.y(), yPos)), parentPolygonItem);
+ baselineItem->setData(0, QVariant::fromValue((int)GraphicRegion::Baseline));
+ baselineItem->setZValue(3);
+
+ yPos = root.attribute("meanline", "null").toInt();
+ QGraphicsLineItem *meanlineItem = new QGraphicsLineItem(QLine(QPoint(xPoint.x(), yPos), QPoint(xPoint.y(), yPos)), parentPolygonItem);
+ meanlineItem->setData(0, QVariant::fromValue((int)GraphicRegion::Meanline));
+ meanlineItem->setZValue(3);
}
diff --git a/XmlTree/xml.h b/XmlTree/xml.h
index cb1d2a2..9abec4e 100644
--- a/XmlTree/xml.h
+++ b/XmlTree/xml.h
@@ -5,29 +5,30 @@
#include <QGraphicsItem>
#include <QStringList>
#include <QDomElement>
+#include <climits>
#include <QFile>
#include "polygonitem.h"
#include "region.h"
-class Xml
+class Xml :
+ QObject
{
+ Q_OBJECT
+
public:
- Xml();
- explicit Xml(const QString& filename);
+ explicit Xml(const QString& filename = QString());
+
void load(const QString& filename);
inline QTreeWidgetItem *treeItem();
+ inline QList<QGraphicsItem *> graphicsItems();
private:
- void init(const QDomElement& root, QTreeWidgetItem *parent);
- void processNode(const QDomElement& root, const GraphicRegion::Data& data, QTreeWidgetItem *parent);
-
- QGraphicsItem *graphicsText(const QDomElement& root);
- /*void graphicsLine(const QDomeElement& root, QGraphicsItem *graphicsText);
- void graphicsTypo(const QDomeElement& root, QGraphicsItem *graphicsLine);*/
-
- void fillTreeWidgetItem(const QDomElement& root, QTreeWidgetItem *parent);
- QGraphicsItem *graphicsRegion(const QDomElement& root);
+ QTreeWidgetItem *init(const QDomElement& root, QTreeWidgetItem *rootTreeItem);
+ inline QTreeWidgetItem *fillWidgetItem(const QString& tagName, QTreeWidgetItem *rootTreeItem);
+ void processNode(const QDomElement& root, const GraphicRegion::Data& data, QTreeWidgetItem *rootTreeItem);
+ void processLineNode(const QDomElement& root, PolygonItem *parentPolygonItem, QTreeWidgetItem *rootTreeItem);
+ void processTypoNode(const QDomElement& root, const QPoint& xPoint, PolygonItem *rootPolygonItem);
QList<QGraphicsItem *> gItems;
QTreeWidgetItem tItems;
@@ -36,4 +37,14 @@ class Xml
inline QTreeWidgetItem *Xml::treeItem()
{ return &tItems; }
+inline QList<QGraphicsItem *> Xml::graphicsItems()
+{ return gItems; }
+
+inline QTreeWidgetItem *Xml::fillWidgetItem(const QString& tagName, QTreeWidgetItem *rootTreeItem)
+{
+ QTreeWidgetItem *treeItem = new QTreeWidgetItem(rootTreeItem, QStringList(tagName));
+ treeItem = new QTreeWidgetItem(treeItem, QStringList("Coords"));
+ return treeItem;
+}
+
#endif // XML_H
--
1.7.2.5
1
0
* mainwindow.cpp: Set all temporary windows (such like progress dialog) as Qt::Dialog to avoid the title main window changement,
Disable/ Enable the exportation if the xml file has been recognized or not,
Exportation do not work due to the source program.
* xml.cpp: Create a function "recognized" which check if the current xml file has been recognized by the OCR.
* graphicsview.cpp: Enlarge the zoom.
---
GScribo/BUGS | 1 +
GScribo/GScribo.pro.user | 112 ++++++++++++++++++--------
GScribo/Preferences/preferencesdialog.cpp | 2 +-
GScribo/Preferences/preprocessingoptions.cpp | 10 +-
GScribo/Preferences/preprocessingoptions.h | 2 +-
GScribo/Processing/progressdialog.cpp | 11 +--
GScribo/Processing/progressdialog.h | 7 +-
GScribo/Processing/runner.cpp | 27 +++----
GScribo/Rendering/graphicsview.cpp | 4 +-
GScribo/TODO | 15 +++-
GScribo/aboutdialog.h | 3 +-
GScribo/aboutdialog.ui | 36 ++++----
GScribo/dir.h | 2 +-
GScribo/mainwindow.cpp | 65 ++++++++-------
GScribo/mainwindow.h | 16 +++-
GScribo/mainwindow.ui | 12 ---
GScribo/xml.cpp | 12 +++
GScribo/xml.h | 29 ++++---
18 files changed, 216 insertions(+), 150 deletions(-)
create mode 100644 GScribo/BUGS
diff --git a/GScribo/BUGS b/GScribo/BUGS
new file mode 100644
index 0000000..48af52e
--- /dev/null
+++ b/GScribo/BUGS
@@ -0,0 +1 @@
+- In release compilation, when the first text region is selected in the xml widget, the program crashs.
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index 27b49eb..d765506 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -77,7 +77,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -93,16 +93,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=15822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">SSH_AGENT_PID=23527</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=18874392</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">WINDOWID=12582936</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -124,7 +124,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -140,16 +140,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=15822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">SSH_AGENT_PID=23527</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=18874392</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">WINDOWID=12582936</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -167,6 +167,45 @@
<variable>buildconfiguration-Debug-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=23527</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=12582936</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ </valuelist>
+ <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">clean</value>
+ <value type="QString">-w</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
<value key="cleanConfig" type="bool">true</value>
<valuelist key="makeargs" type="QVariantList">
<value type="QString">clean</value>
@@ -178,7 +217,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -187,6 +226,7 @@
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/lrde/home/stage/froger_a</value>
<value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LANGUAGE=</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
<value type="QString">LOGNAME=froger_a</value>
<value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
@@ -194,16 +234,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=15822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">SSH_AGENT_PID=23527</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=18874392</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">WINDOWID=10485784</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -224,7 +264,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -233,6 +273,7 @@
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/lrde/home/stage/froger_a</value>
<value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LANGUAGE=</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
<value type="QString">LOGNAME=froger_a</value>
<value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
@@ -240,16 +281,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=15822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">SSH_AGENT_PID=23527</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=18874392</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">WINDOWID=10485784</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -268,7 +309,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YPw0beHDmH,guid=e1ea388d8198abba427530de0006165b</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -277,6 +318,7 @@
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/lrde/home/stage/froger_a</value>
<value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LANGUAGE=</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
<value type="QString">LOGNAME=froger_a</value>
<value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
@@ -284,16 +326,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=15822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">SSH_AGENT_PID=23527</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-rIfho23467/agent.23467</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=18874392</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">WINDOWID=10485784</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmS2P7SW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1361173353.46260-1384018529</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
diff --git a/GScribo/Preferences/preferencesdialog.cpp b/GScribo/Preferences/preferencesdialog.cpp
index 6855698..23a0dd6 100644
--- a/GScribo/Preferences/preferencesdialog.cpp
+++ b/GScribo/Preferences/preferencesdialog.cpp
@@ -2,7 +2,7 @@
#include "ui_preferencesdialog.h"
PreferencesDialog::PreferencesDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, Qt::Dialog),
ui(new Ui::PreferencesDialog)
{
ui->setupUi(this);
diff --git a/GScribo/Preferences/preprocessingoptions.cpp b/GScribo/Preferences/preprocessingoptions.cpp
index 640ad32..6639bae 100644
--- a/GScribo/Preferences/preprocessingoptions.cpp
+++ b/GScribo/Preferences/preprocessingoptions.cpp
@@ -1,7 +1,7 @@
#include "preprocessingoptions.h"
#include "ui_preprocessingoptions.h"
-//using namespace scribo::toolchain::internal;
+using namespace scribo::toolchain::internal;
PreprocessingOptions::PreprocessingOptions(QWidget *parent) :
OptionWidget(parent),
@@ -9,9 +9,9 @@ PreprocessingOptions::PreprocessingOptions(QWidget *parent) :
{
ui->setupUi(this);
- /*ui->bin_algoCbox->insertItem(Convert, "Violent convert");
+ ui->bin_algoCbox->insertItem(Convert, "Violent convert");
ui->bin_algoCbox->insertItem(Sauvola, "Local threshold");
- ui->bin_algoCbox->insertItem(SauvolaMs, "Local threshold multiscale");*/
+ ui->bin_algoCbox->insertItem(SauvolaMs, "Local threshold multiscale");
loadConfig();
}
@@ -29,7 +29,7 @@ void PreprocessingOptions::loadConfig()
ui->remove_bgCb->setChecked(conf->preprocessingRemoveBg());
ui->deskewCb->setChecked(conf->preprocessingDeskew());
ui->remove_noiseCb->setChecked(conf->preprocessingRemoveNoise());
- //ui->bin_algoCbox->setCurrentIndex(conf->preprocessingBinAlgo());
+ ui->bin_algoCbox->setCurrentIndex(conf->preprocessingBinAlgo());
}
@@ -41,5 +41,5 @@ void PreprocessingOptions::saveConfig()
conf->setPreprocessingRemoveBg(ui->remove_bgCb->isChecked());
conf->setPreprocessingDeskew(ui->deskewCb->isChecked());
conf->setPreprocessingRemoveNoise(ui->remove_noiseCb->isChecked());
- //conf->setPreprocessingBinAlgo(ui->bin_algoCbox->currentIndex());
+ conf->setPreprocessingBinAlgo(ui->bin_algoCbox->currentIndex());
}
diff --git a/GScribo/Preferences/preprocessingoptions.h b/GScribo/Preferences/preprocessingoptions.h
index 1818322..6cc0081 100644
--- a/GScribo/Preferences/preprocessingoptions.h
+++ b/GScribo/Preferences/preprocessingoptions.h
@@ -1,7 +1,7 @@
#ifndef PREPROCESSINGOPTIONS_H
#define PREPROCESSINGOPTIONS_H
-//#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
+#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
#include "optionwidget.h"
#include "region.h"
diff --git a/GScribo/Processing/progressdialog.cpp b/GScribo/Processing/progressdialog.cpp
index 1ae876f..7f9d833 100644
--- a/GScribo/Processing/progressdialog.cpp
+++ b/GScribo/Processing/progressdialog.cpp
@@ -1,20 +1,13 @@
#include "progressdialog.h"
-ProgressDialog::ProgressDialog(QWidget *parent, Qt::WindowFlags flags):
- QProgressDialog(parent, flags)
+ProgressDialog::ProgressDialog(QWidget *parent):
+ QProgressDialog(parent, Qt::Dialog)
{
- setWindowFlags(Qt::Dialog);
- setModal(true);
setAutoClose(false);
setCancelButton(0);
hide();
}
-void ProgressDialog::run()
-{
- setValue(value()+1);
-}
-
void ProgressDialog::reset()
{
setValue(0);
diff --git a/GScribo/Processing/progressdialog.h b/GScribo/Processing/progressdialog.h
index d1d1a20..822d9ba 100644
--- a/GScribo/Processing/progressdialog.h
+++ b/GScribo/Processing/progressdialog.h
@@ -9,11 +9,14 @@ class ProgressDialog :
Q_OBJECT
public:
- explicit ProgressDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ explicit ProgressDialog(QWidget *parent = 0);
void reset();
public slots:
- void run();
+ inline void run();
};
+void ProgressDialog::run()
+{ setValue(value()+1); }
+
#endif // PROGRESSDIALOG_H
diff --git a/GScribo/Processing/runner.cpp b/GScribo/Processing/runner.cpp
index 00348a5..c02223c 100644
--- a/GScribo/Processing/runner.cpp
+++ b/GScribo/Processing/runner.cpp
@@ -23,26 +23,21 @@ Runner::Runner(QObject *parent) :
void Runner::run()
{
- switch(mode_)
+ if(mode_ == Demat)
{
- default:
- case Demat:
+ image2d<value::rgb8> ima;
+ for(int i = 0; i < args_.count(); i++)
{
- image2d<value::rgb8> ima;
- for(int i = 0; i < args_.count(); i++)
- {
- io::magick::load(ima, args_.at(i).toUtf8().constData());
- image2d<bool> bin_ima = preprocess(ima);
- process(ima, bin_ima, i);
- }
- emit finished();
+ io::magick::load(ima, args_.at(i).toUtf8().constData());
+ image2d<bool> bin_ima = preprocess(ima);
+ process(ima, bin_ima, i);
}
- break;
-
- case Export:
- export_as();
- break;
}
+
+ else if(mode_ == Export)
+ export_as();
+
+ emit finished();
}
void Runner::stop()
diff --git a/GScribo/Rendering/graphicsview.cpp b/GScribo/Rendering/graphicsview.cpp
index ea846e9..336d5c2 100644
--- a/GScribo/Rendering/graphicsview.cpp
+++ b/GScribo/Rendering/graphicsview.cpp
@@ -61,7 +61,7 @@ void GraphicsView::wheelEvent(QWheelEvent *event)
scaleRatio_.height();
if(event->delta() > 0)
{
- if(nextScaleRatio <= 15)
+ if(nextScaleRatio <= 20)
{
scaleRatio_ *= degrees;
scale(degrees, degrees);
@@ -95,7 +95,7 @@ void GraphicsView::keyPressEvent(QKeyEvent* event)
{
nextScaleRatio = 1.2 * isWidthGreater_ ? scaleRatio_.width() :
scaleRatio_.height();
- if(nextScaleRatio <= 15)
+ if(nextScaleRatio <= 19)
{
scaleRatio_ *= 1.2;
scale(1.2, 1.2);
diff --git a/GScribo/TODO b/GScribo/TODO
index 1c6c89a..8e7b556 100644
--- a/GScribo/TODO
+++ b/GScribo/TODO
@@ -1,3 +1,11 @@
+* Concerning the configurations :
+ - Register the location of the different widget and if they are visible/ invisible to restore it on the next utilisation of the gui.
+
+
+* Concerning the menu bar :
+ - Assign shortcuts for each buttons.
+
+
* Concerning the xml widget :
- Can modify in real time the proxy with a regular expression. When the user click on a check box in the region widget, a new regular expression is created an sent to the xml widget but the proxy is not modified by this regular expression.
- In the table tree (the attributes tree), set the max of the header splitter. Currently it can be moved indefinitely to the right.
@@ -25,13 +33,18 @@
- Load less thumbnails (just the necessary to draw it on the widget) because sometimes, pictures are heavy.
- May be use a progress dialog during the loading where a large number of pictures are loaded.
- Offer the possibility to down/ upscale thumbnails.
+ - Allow the user to move ine the widget with arrow keys.
- Create also a button to delete selected items (rather than the key 'delete').
- During the segmentation, give the possibility to segment selected thumbnails, all thumbnails or juste the current.
- For each thumbnails, paint at his bottom a little progress dialog to check if the picture has already been segmented, not segmented or ongoing segmentation.
+* Concerning the progress dialog :
+ - Center on the main window.
+
* Concerning the xml file :
- Stop using the static array representation of the internal data structure for graphics region.
+ - Change the way we check if the user allows OCR to recognize the text or just segment.
- Find a better way to run through all node representing a graphics item without knowing it in advance. For exemple, the xml file looks like this :
@@ -84,4 +97,4 @@
* For other idea of interfaces using Qt :
- - gwenview (picture visionnary, good idea here).
+ - gwenview (picture visionnary, good ideas here).
diff --git a/GScribo/aboutdialog.h b/GScribo/aboutdialog.h
index 31f6239..fa91ada 100644
--- a/GScribo/aboutdialog.h
+++ b/GScribo/aboutdialog.h
@@ -14,7 +14,8 @@ class AboutDialog :
public QDialog
{
public:
- explicit AboutDialog() { ui = new Ui::AboutDialog; ui->setupUi(this); }
+ explicit AboutDialog(QWidget *parent = 0) : QDialog(parent, Qt::Dialog)
+ { ui = new Ui::AboutDialog; ui->setupUi(this); }
~AboutDialog() { delete ui; }
private:
diff --git a/GScribo/aboutdialog.ui b/GScribo/aboutdialog.ui
index 275e4ae..d16b076 100644
--- a/GScribo/aboutdialog.ui
+++ b/GScribo/aboutdialog.ui
@@ -78,24 +78,24 @@
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Document Image Analysis Tool</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This project is powered by <span style=" font-weight:600; font-style:italic;">Milena</span>, a generic image processing library.</p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is part of <span style=" font-weight:600; font-style:italic;">Olena</span>, an Image Processing Platform and its module <span style=" font-weight:600; font-style:italic;">Scribo</span>, a set of tools for Document Image Analysis.</p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://olena.lrde.epita.fr"><span style=" text-decoration: underline; color:#0057ae;">http://olena.lrde.epita.fr</span></a></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Thanks to Arthur Crépin-Leblond, Samuel Da Mota, Loic Denuziere, </span><span style=" font-size:8pt;">Jérôme Galtier,</span><span style=" font-size:8pt;"> </span><span style=" font-size:8pt;">Florent d'Halluin, </span><span style=" font-size:8pt;">Alex Hamelin, </span><span style=" font-size:8pt;">Damien Lefortier, </span><span style=" font-size:8pt;">Vincent Ordy, </span><span style=" font-size:8pt;">Guillaume Sadegh and</span><span style=" font-size:8pt;"> </span><span style=" font-size:8pt;">Warren Seine </span><span style=" font-size:8pt;">for their contribution.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p>
-<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt;">This application has been developed in the context of the SCRIBO project of the Free Software Thematic Group, part of the &quot;System@tic Paris-Région&quot; Cluster (France). This project is partially funded by the French Government, its economic development agencies, and by the Paris-Région institutions.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:7pt;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt;">Copyright (C) 2010, 2011 EPITA Research and Development Laboratory (LRDE)</span></p></body></html></string>
+</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:12pt; font-weight:600;">Document Image Analysis Tool</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:12pt; font-weight:600;"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans';">This project is powered by </span><span style=" font-family:'DejaVu Sans'; font-weight:600; font-style:italic;">Milena</span><span style=" font-family:'DejaVu Sans';">, a generic image processing library.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans';">It is part of </span><span style=" font-family:'DejaVu Sans'; font-weight:600; font-style:italic;">Olena</span><span style=" font-family:'DejaVu Sans';">, an Image Processing Platform and its module </span><span style=" font-family:'DejaVu Sans'; font-weight:600; font-style:italic;">Scribo</span><span style=" font-family:'DejaVu Sans';">, a set of tools for Document Image Analysis.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
+<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://olena.lrde.epita.fr"><span style=" font-family:'DejaVu Sans'; text-decoration: underline; color:#0057ae;">http://olena.lrde.epita.fr</span></a></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:8pt;">Thanks to Arthur Crépin-Leblond, Samuel Da Mota, Loic Denuziere, Jérôme Galtier, Florent d'Halluin, Alex Hamelin, Damien Lefortier, Vincent Ordy, Guillaume Sadegh and Warren Seine for their contribution.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:8pt;"></p>
+<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:8pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:7pt;">This application has been developed in the context of the SCRIBO project of the Free Software Thematic Group, part of the &quot;System@tic Paris-Région&quot; Cluster (France). This project is partially funded by the French Government, its economic development agencies, and by the Paris-Région institutions.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans'; font-size:7pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:7pt;">Copyright (C) 2012, 2013 EPITA Research and Development Laboratory (LRDE)</span></p></body></html></string>
</property>
<property name="wordWrap">
<bool>true</bool>
diff --git a/GScribo/dir.h b/GScribo/dir.h
index bf088f8..a6c036b 100644
--- a/GScribo/dir.h
+++ b/GScribo/dir.h
@@ -1,7 +1,7 @@
#ifndef DIR_H
#define DIR_H
-#define SCRIBO_LOCAL_DEMODIR "/home/onix/froger_a/olena/_build/scribo/demo"
+#define SCRIBO_LOCAL_DEMODIR "/lrde/home/stage/froger_a/olena/_build/scribo/demo"
#define SCRIBO_PREFIX_BINDIR "/usr/local/bin"
#endif // DIR_H
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
index 8682bec..4bb5c74 100644
--- a/GScribo/mainwindow.cpp
+++ b/GScribo/mainwindow.cpp
@@ -8,10 +8,10 @@ MainWindow::MainWindow(QWidget *parent) :
ui->setupUi(this);
setWindowTitle(tr("GScribo"));
- statusBar()->hide();
- ui->mainToolBar->hide();
+ showMaximized();
initGraphicsRegion();
+ initDialogsWidget();
initXmlWidget();
initRegionWidget();
initPageWidget();
@@ -27,6 +27,9 @@ MainWindow::MainWindow(QWidget *parent) :
MainWindow::~MainWindow()
{
+ delete preferencesDialog_;
+ delete aboutDialog_;
+ delete progressDialog_;
delete ui;
}
@@ -51,6 +54,13 @@ void MainWindow::initGraphicsRegion()
setCentralWidget(&graphicsView_);
}
+void MainWindow::initDialogsWidget()
+{
+ preferencesDialog_ = new PreferencesDialog(this);
+ aboutDialog_ = new AboutDialog(this);
+ progressDialog_ = new ProgressDialog(this);
+}
+
void MainWindow::initPageWidget()
{
dockPages_.setWindowTitle("Pages");
@@ -85,7 +95,7 @@ void MainWindow::initMenuBar()
QMenu *menuFile = ui->menuBar->addMenu(tr("File"));
QAction *open = menuFile->addAction(tr("Open"));
- connect(open, SIGNAL(triggered()), SLOT(onOpen()));
+ connect(open, SIGNAL(triggered()), this, SLOT(onOpen()));
segment_ = menuFile->addAction(tr("Segment"));
segment_->setEnabled(false);
@@ -130,10 +140,10 @@ void MainWindow::initMenuBar()
connect(xml, SIGNAL(triggered()), &dockXml_, SLOT(switchVisibility()));
QAction *preferences = ui->menuBar->addAction(tr("Preferences"));
- connect(preferences, SIGNAL(triggered()), SLOT(onPreferences()));
+ connect(preferences, SIGNAL(triggered()), this, SLOT(onPreferences()));
QAction *about = ui->menuBar->addAction(tr("About"));
- connect(about, SIGNAL(triggered()), SLOT(onAbout()));
+ connect(about, SIGNAL(triggered()), this, SLOT(onAbout()));
}
void MainWindow::setActionsEnabled(bool isSegmented)
@@ -141,7 +151,6 @@ void MainWindow::setActionsEnabled(bool isSegmented)
segment_->setEnabled(!isSegmented);
print_->setEnabled(isSegmented);
previewPrinting_->setEnabled(isSegmented);
- export_->setEnabled(isSegmented);
}
void MainWindow::disableActions()
@@ -176,16 +185,18 @@ void MainWindow::connectWidgets()
// Connect the xml widget with the region widget.
connect(®ionWidget_, SIGNAL(checkStateChanged(QString)), xmlWidget_.view(), SLOT(setFilterString(QString)));
- connect(&runner_, SIGNAL(progress()), &progressDialog_, SLOT(run()));
- connect(&runner_, SIGNAL(new_progress_max_value(int)), &progressDialog_, SLOT(setMaximum(int)));
- connect(&runner_, SIGNAL(new_progress_label(QString)), &progressDialog_, SLOT(setLabelText(QString)));
- connect(&runner_, SIGNAL(finished()), &progressDialog_, SLOT(close()));
+ connect(&runner_, SIGNAL(progress()), progressDialog_, SLOT(run()));
+ connect(&runner_, SIGNAL(new_progress_max_value(int)), progressDialog_, SLOT(setMaximum(int)));
+ connect(&runner_, SIGNAL(new_progress_label(QString)), progressDialog_, SLOT(setLabelText(QString)));
+ connect(&runner_, SIGNAL(finished()), progressDialog_, SLOT(close()));
connect(&runner_, SIGNAL(xml_saved(QString)), this, SLOT(onXmlSaved(QString)));
}
void MainWindow::onOpen()
{
- QStringList paths = QFileDialog::getOpenFileNames(&graphicsView_, "Open Image(s)", QDir::homePath(), "Images (*.png *.jpg *.ppm *.bmp)");
+ QStringList paths = QFileDialog::getOpenFileNames(this, "Open Image(s)", QDir::homePath(),
+ "Images (*.png *.jpg *.ppm *.bmp)");
+ setWindowTitle(tr("GScribo"));
if(paths.count() > 0)
{
@@ -233,7 +244,7 @@ void MainWindow::onSegment()
filenames << scene_.backgroundPath();
// Run segmentation of page(s).
- progressDialog_.reset();
+ progressDialog_->reset();
runner_.start_demat(filenames);
}
@@ -243,7 +254,7 @@ void MainWindow::onPreviewPrint()
printer.setPaperSize(QPrinter::A4);
printer.setResolution(300);
- QPrintPreviewDialog preview(&printer);
+ QPrintPreviewDialog preview(&printer, this);
connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printScene(QPrinter*)));
preview.exec();
@@ -255,7 +266,7 @@ void MainWindow::onPrint()
printer.setPaperSize(QPrinter::A4);
printer.setResolution(300);
- QPrintDialog dialog(&printer);
+ QPrintDialog dialog(&printer, this);
dialog.setWindowTitle("Print Document");
if(dialog.exec() != QDialog::Accepted)
@@ -266,8 +277,6 @@ void MainWindow::onPrint()
void MainWindow::printScene(QPrinter *printer)
{
- scene_.selectAll();
-
QPainter painter(printer);
QStyleOptionGraphicsItem options;
@@ -282,8 +291,6 @@ void MainWindow::printScene(QPrinter *printer)
for(int i = GraphicsRegion::Noise; i <= GraphicsRegion::Meanline; i++)
printItems(&painter, scene_.root()->childsFrom(static_cast<GraphicsRegion::Id>(i)), &options);
-
- scene_.clearSelection();
}
void MainWindow::printItems(QPainter *painter, const QList<QGraphicsItem *>& items, QStyleOptionGraphicsItem *options)
@@ -303,6 +310,12 @@ void MainWindow::printItems(QPainter *painter, const QList<QGraphicsItem *>& ite
void MainWindow::onExportation()
{
+ QMessageBox messageBox(this);
+ messageBox.setWindowTitle("Information");
+ messageBox.setText("This feature is not available yet");
+ messageBox.exec();
+ return;
+
QFileInfo fileInfo(scene_.backgroundPath());
QString outputSuggestion = fileInfo.baseName() + ".pdf";
QString output = QFileDialog::getSaveFileName(0, tr("Export Document As ..."), outputSuggestion,
@@ -310,23 +323,11 @@ void MainWindow::onExportation()
if(!output.isEmpty())
{
- progressDialog_.reset();
+ progressDialog_->reset();
runner_.start_export(scene_.backgroundPath(), xml_.filename(), output);
}
}
-void MainWindow::onPreferences()
-{
- PreferencesDialog *preferenceDialog = new PreferencesDialog(this);
- preferenceDialog->show();
-}
-
-void MainWindow::onAbout()
-{
- AboutDialog *about = new AboutDialog;
- about->show();
-}
-
void MainWindow::onXmlSaved(const QString& filename)
{
xml_.load(filename);
@@ -334,6 +335,7 @@ void MainWindow::onXmlSaved(const QString& filename)
scene_.setRoot(xml_.graphicsItem());
setActionsEnabled(true);
+ export_->setEnabled(xml_.recognized());
}
void MainWindow::onFileChanged(const QString& filename)
@@ -360,6 +362,7 @@ void MainWindow::onFileChanged(const QString& filename)
xml_.load(xmlPath);
scene_.changeScene(filename, xml_.graphicsItem());
xmlWidget_.changeView(xml_.xmlItem());
+ export_->setEnabled(xml_.recognized());
}
}
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
index 919314f..0637f44 100644
--- a/GScribo/mainwindow.h
+++ b/GScribo/mainwindow.h
@@ -42,6 +42,7 @@ class MainWindow:
private:
void initGraphicsRegion();
+ void initDialogsWidget();
void initPageWidget();
void initRegionWidget();
void initXmlWidget();
@@ -69,11 +70,13 @@ class MainWindow:
PagesWidget pagesWidget_;
RegionWidget regionWidget_;
- ProgressDialog progressDialog_;
- Runner runner_;
+ AboutDialog *aboutDialog_;
+ ProgressDialog *progressDialog_;
+ PreferencesDialog *preferencesDialog_;
XmlWidget xmlWidget_;
Xml xml_;
+ Runner runner_;
QAction *segment_;
QAction *previewPrinting_;
@@ -89,8 +92,8 @@ class MainWindow:
void onPreviewPrint();
void onPrint();
void onExportation();
- void onPreferences();
- void onAbout();
+ inline void onPreferences();
+ inline void onAbout();
void onXmlSaved(const QString& filename);
void onFileChanged(const QString& filename);
@@ -102,6 +105,11 @@ class MainWindow:
inline void onXmlUnselect(QList<XmlItem *> xmlItems);
};
+inline void MainWindow::onPreferences()
+{ preferencesDialog_->show(); }
+
+inline void MainWindow::onAbout()
+{ aboutDialog_->show(); }
inline void MainWindow::onXmlSelect(QList<XmlItem *> xmlItems)
{ onXmlChangeSelection(xmlItems, true); }
diff --git a/GScribo/mainwindow.ui b/GScribo/mainwindow.ui
index 0d91002..0512da9 100644
--- a/GScribo/mainwindow.ui
+++ b/GScribo/mainwindow.ui
@@ -28,18 +28,6 @@
</rect>
</property>
</widget>
- <widget class="QToolBar" name="mainToolBar">
- <property name="floatable">
- <bool>false</bool>
- </property>
- <attribute name="toolBarArea">
- <enum>TopToolBarArea</enum>
- </attribute>
- <attribute name="toolBarBreak">
- <bool>false</bool>
- </attribute>
- </widget>
- <widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
diff --git a/GScribo/xml.cpp b/GScribo/xml.cpp
index 05dfe7f..9b0334d 100644
--- a/GScribo/xml.cpp
+++ b/GScribo/xml.cpp
@@ -20,6 +20,14 @@ QString Xml::getPath(const QString& filename)
return configs->generalSaveXmlCustomDirPath() + "/" + xmlPath;
}
+void Xml::isRecognized(const QDomElement& textElement)
+{
+ QDomElement lineElement = textElement.firstChild().nextSiblingElement("Line");
+
+ // Check if the attributes "text" exists in the attributes of line in the xml file.
+ isRecognized_ = lineElement.attributeNode("text").isNull() ? false : true;
+}
+
void Xml::load(const QString& filename)
{
if(filename.isEmpty())
@@ -27,6 +35,7 @@ void Xml::load(const QString& filename)
xmlItem_ = 0;
graphicsItem_ = 0;
filename_ = QString();
+ isRecognized_ = false;
return;
}
@@ -53,6 +62,9 @@ void Xml::load(const QString& filename)
// Run through the xml file structure by structure.
root = root.nextSibling().firstChild().toElement();
+ // Check if the xml file has been recognized by the ocr or not.
+ isRecognized(root);
+
processNode(root, datas_[0], parentTreeItem);
for(int i = 2; i < 11; i++)
processNode(root.nextSiblingElement(datas_[i].name), datas_[i], parentTreeItem);
diff --git a/GScribo/xml.h b/GScribo/xml.h
index 5f3575a..f9274ed 100644
--- a/GScribo/xml.h
+++ b/GScribo/xml.h
@@ -5,6 +5,7 @@
#include <QGraphicsItem>
#include <QStringList>
#include <QDomElement>
+#include <QDomAttr>
#include <climits>
#include <QFile>
@@ -19,17 +20,17 @@
static const GraphicsRegion::Data datas_[] =
{
/* COLOR | NAME | REGION | PARENT | Z */
- { QColor::fromRgb(0, 100, 0, 90), "TextRegion", GraphicsRegion::TextRegion, GraphicsRegion::Text, 1 },
- { QColor::fromRgb(255, 0, 0, 90), "Line", GraphicsRegion::Line, GraphicsRegion::Text, 2 },
- { QColor::fromRgb(0, 0, 255, 90), "VerticalSeparatorRegion", GraphicsRegion::VerticalSeparator, GraphicsRegion::Separators, 2 },
- { QColor::fromRgb(0, 0, 255, 90), "HorizontalSeparatorRegion", GraphicsRegion::HorizontalSeparator, GraphicsRegion::Separators, 2 },
- { QColor::fromRgb(0, 0, 128, 90), "WhitespaceSeparatorRegion", GraphicsRegion::WhiteSpaceSeparator, GraphicsRegion::Separators, 2 },
- { QColor::fromRgb(255, 120, 0, 90), "ImageRegion", GraphicsRegion::Image, GraphicsRegion::Miscellaneous, 1 },
- { QColor::fromRgb(43, 39, 128, 90), "NoiseRegion", GraphicsRegion::Noise, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(220, 246, 0, 90), "TableRegion", GraphicsRegion::Table, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(170, 0, 255, 90), "MathsRegion", GraphicsRegion::Maths, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(255, 0, 144, 90), "GraphicsRegion", GraphicsRegion::Graphic, GraphicsRegion::Miscellaneous, 2 },
- { QColor::fromRgb(0, 204, 255, 90), "ChartRegion", GraphicsRegion::Chart, GraphicsRegion::Miscellaneous, 2 },
+ { QColor::fromRgb(0, 100, 0, 110), "TextRegion", GraphicsRegion::TextRegion, GraphicsRegion::Text, 1 },
+ { QColor::fromRgb(255, 0, 0, 110), "Line", GraphicsRegion::Line, GraphicsRegion::Text, 2 },
+ { QColor::fromRgb(0, 0, 255, 110), "VerticalSeparatorRegion", GraphicsRegion::VerticalSeparator, GraphicsRegion::Separators, 2 },
+ { QColor::fromRgb(0, 0, 255, 110), "HorizontalSeparatorRegion", GraphicsRegion::HorizontalSeparator, GraphicsRegion::Separators, 2 },
+ { QColor::fromRgb(0, 0, 128, 110), "WhitespaceSeparatorRegion", GraphicsRegion::WhiteSpaceSeparator, GraphicsRegion::Separators, 2 },
+ { QColor::fromRgb(255, 120, 0, 110), "ImageRegion", GraphicsRegion::Image, GraphicsRegion::Miscellaneous, 1 },
+ { QColor::fromRgb(43, 39, 128, 110), "NoiseRegion", GraphicsRegion::Noise, GraphicsRegion::Miscellaneous, 2 },
+ { QColor::fromRgb(220, 246, 0, 110), "TableRegion", GraphicsRegion::Table, GraphicsRegion::Miscellaneous, 2 },
+ { QColor::fromRgb(170, 0, 255, 110), "MathsRegion", GraphicsRegion::Maths, GraphicsRegion::Miscellaneous, 2 },
+ { QColor::fromRgb(255, 0, 144, 110), "GraphicsRegion", GraphicsRegion::Graphic, GraphicsRegion::Miscellaneous, 2 },
+ { QColor::fromRgb(0, 204, 255, 110), "ChartRegion", GraphicsRegion::Chart, GraphicsRegion::Miscellaneous, 2 },
{ QColor::fromRgb(128, 0, 255), "Baseline", GraphicsRegion::Baseline, GraphicsRegion::Typology, 3 },
{ QColor::fromRgb(128, 0, 255), "Meanline", GraphicsRegion::Meanline, GraphicsRegion::Typology, 3 },
{ QColor::fromRgb(255, 255, 255), "Text", GraphicsRegion::Text, GraphicsRegion::None, 0 },
@@ -48,6 +49,7 @@ class Xml
inline QDomDocument document() const;
inline QString filename() const;
+ inline bool recognized() const;
static QString getPath(const QString& filename);
@@ -56,6 +58,7 @@ class Xml
private:
XmlItem *init(const QDomElement& root, XmlItem *rootTreeItem);
+ void isRecognized(const QDomElement& element);
void processNode(const QDomElement& root, const GraphicsRegion::Data& data, XmlItem *rootTreeItem);
void processLineNode(const QDomElement& root, XmlItem *rootTreeItem);
@@ -66,6 +69,7 @@ class Xml
QDomDocument xml_;
QString filename_;
+ bool isRecognized_;
};
inline XmlItem *Xml::xmlItem()
@@ -83,4 +87,7 @@ inline QString Xml::filename() const
inline GraphicsRegion::Data Xml::dataFromRegion(GraphicsRegion::Id region)
{ return datas_[region]; }
+inline bool Xml::recognized() const
+{ return isRecognized_; }
+
#endif // XML_H
--
1.7.2.5
1
0

2ed6b8e Segmentation works. Recognition do not work correctly, do not know if it is related to this computer specifically. Some tests to do.
by Antoine Froger 15 Feb '13
by Antoine Froger 15 Feb '13
15 Feb '13
* runner.cpp,
* graphicsview.cpp,
* main.cpp,
* mainwindow.cpp,
* mainwindow.h,
* xml.cpp: Save the xml path when it is loaded.
---
GScribo/GScribo.pro | 3 +-
GScribo/GScribo.pro.user | 154 ++++++++++++++++++++++++++++++++----
GScribo/Processing/runner.cpp | 2 +-
GScribo/Rendering/graphicsview.cpp | 1 -
GScribo/main.cpp | 2 +-
GScribo/mainwindow.cpp | 27 ++++---
GScribo/mainwindow.h | 4 +-
7 files changed, 160 insertions(+), 33 deletions(-)
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
index 09e2034..1495495 100644
--- a/GScribo/GScribo.pro
+++ b/GScribo/GScribo.pro
@@ -9,7 +9,8 @@ QMAKE_CXXFLAGS += -DNDEBUG \
-DMLN_WO_GLOBAL_VARS
LIBS += -I/usr/include/graphicsImage \
-lGraphicsMagick++ \
- -ltesseract_full
+ -ltesseract_full \
+ -ltiff
TARGET = GScribo
TEMPLATE = app
SOURCES += regionwidget.cpp \
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index c8d3403..27b49eb 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -50,7 +50,7 @@
</data>
<data>
<variable>activebuildconfiguration</variable>
- <value type="QString">Debug</value>
+ <value type="QString">Release</value>
</data>
<data>
<variable>buildConfiguration-Debug</variable>
@@ -67,6 +67,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<value key="QtVersionId" type="int">0</value>
+ <value key="ToolChain" type="int">0</value>
<value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">0</value>
</valuemap>
@@ -76,7 +77,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-AApY2C9ax7,guid=67203c296298a08d55b5e06d00024298</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -92,16 +93,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=14368</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-klKXX14308/agent.14308</value>
+ <value type="QString">SSH_AGENT_PID=15822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmVOT6RW</value>
+ <value type="QString">WINDOWID=18874392</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360922534.723042-2005793738</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -114,7 +115,7 @@
<value type="QString">CONFIG+=debug</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.enabled" type="bool">false</value>
<value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
@@ -123,7 +124,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-AApY2C9ax7,guid=67203c296298a08d55b5e06d00024298</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -139,16 +140,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=14368</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-klKXX14308/agent.14308</value>
+ <value type="QString">SSH_AGENT_PID=15822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=10485784</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmVOT6RW</value>
+ <value type="QString">WINDOWID=18874392</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360922534.723042-2005793738</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -176,18 +177,139 @@
<variable>buildconfiguration-Release-buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=15822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=18874392</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ </valuelist>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo/GScribo.pro</value>
+ <value type="QString">-spec</value>
+ <value type="QString">linux-g++</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
+ <value key="abstractProcess.enabled" type="bool">false</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=15822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=18874392</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ </valuelist>
+ <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">-w</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
+ <valuelist key="abstractProcess.Environment" type="QVariantList">
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-CpLYiAxYxd,guid=7696c32902b91e2834ddfd270002800f</value>
+ <value type="QString">DESKTOP_SESSION=fluxbox</value>
+ <value type="QString">DISPLAY=:0.0</value>
+ <value type="QString">GDMSESSION=fluxbox</value>
+ <value type="QString">GDM_LANG=fr_FR.UTF-8</value>
+ <value type="QString">GDM_XSERVER_LOCATION=local</value>
+ <value type="QString">GTK_MODULES=canberra-gtk-module</value>
+ <value type="QString">HOME=/lrde/home/stage/froger_a</value>
+ <value type="QString">LANG=fr_FR.UTF-8</value>
+ <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator</value>
+ <value type="QString">LOGNAME=froger_a</value>
+ <value type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
+ <value type="QString">QTDIR=/usr/share/qt4</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=2</value>
+ <value type="QString">SSH_AGENT_PID=15822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-OPYeW15762/agent.15762</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=18874392</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmWKEBSW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360938269.426603-816256819</value>
+ <value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
+ <value type="QString">XTERM_SHELL=/bin/bash</value>
+ <value type="QString">XTERM_VERSION=XTerm(261)</value>
+ </valuelist>
+ <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">clean</value>
+ <value type="QString">-w</value>
+ </valuelist>
+ <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
+ <value key="cleanConfig" type="bool">true</value>
+ <valuelist key="makeargs" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
</valuemap>
</data>
<data>
diff --git a/GScribo/Processing/runner.cpp b/GScribo/Processing/runner.cpp
index 34145ee..00348a5 100644
--- a/GScribo/Processing/runner.cpp
+++ b/GScribo/Processing/runner.cpp
@@ -102,7 +102,7 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
this, SIGNAL(xml_saved(const QString&)));
// Load config.
- Configs * const conf = Configs::getInstance();
+ Configs *const conf = Configs::getInstance();
Separator::FindSeparator find_seps = static_cast<Separator::FindSeparator>(conf->segmentationFindSeps());
f.enable_line_seps = (find_seps == Separator::Lines
diff --git a/GScribo/Rendering/graphicsview.cpp b/GScribo/Rendering/graphicsview.cpp
index 7a05cd5..ea846e9 100644
--- a/GScribo/Rendering/graphicsview.cpp
+++ b/GScribo/Rendering/graphicsview.cpp
@@ -35,7 +35,6 @@ void GraphicsView::mousePressEvent(QMouseEvent *event)
QMouseEvent *mouseEvent = new QMouseEvent(QEvent::MouseButtonPress, event->pos(), Qt::LeftButton,
Qt::LeftButton, Qt::MetaModifier);
-
event->ignore();
QGraphicsView::mousePressEvent(mouseEvent);
}
diff --git a/GScribo/main.cpp b/GScribo/main.cpp
index 9b2669e..d47ec16 100644
--- a/GScribo/main.cpp
+++ b/GScribo/main.cpp
@@ -12,7 +12,7 @@
int main(int argc, char *argv[])
{
- //Magick::InitializeMagick(*argv);
+ Magick::InitializeMagick(*argv);
// On Linux, we NEED to use the raster graphics system.
// Linux don't really support openGL graphics system (the default one on Linux).
QApplication::setGraphicsSystem("raster");
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
index 4586fbb..8682bec 100644
--- a/GScribo/mainwindow.cpp
+++ b/GScribo/mainwindow.cpp
@@ -286,6 +286,21 @@ void MainWindow::printScene(QPrinter *printer)
scene_.clearSelection();
}
+void MainWindow::printItems(QPainter *painter, const QList<QGraphicsItem *>& items, QStyleOptionGraphicsItem *options)
+{
+ foreach(QGraphicsItem *child, items)
+ {
+ if(child->isVisible())
+ {
+ QRect viewport = scene_.backgroundPixmap()->mapRectFromItem(child, child->boundingRect()).toRect();
+ painter->translate(abs(child->boundingRect().x() - viewport.x()),
+ abs(child->boundingRect().y() - viewport.y()));
+ child->paint(painter, options);
+ painter->resetTransform();
+ }
+ }
+}
+
void MainWindow::onExportation()
{
QFileInfo fileInfo(scene_.backgroundPath());
@@ -300,18 +315,6 @@ void MainWindow::onExportation()
}
}
-void MainWindow::printItems(QPainter *painter, const QList<QGraphicsItem *>& items, QStyleOptionGraphicsItem *options)
-{
- foreach(QGraphicsItem *child, items)
- {
- QRect viewport = scene_.backgroundPixmap()->mapRectFromItem(child, child->boundingRect()).toRect();
- painter->translate(abs(child->boundingRect().x() - viewport.x()),
- abs(child->boundingRect().y() - viewport.y()));
- child->paint(painter, options);
- painter->resetTransform();
- }
-}
-
void MainWindow::onPreferences()
{
PreferencesDialog *preferenceDialog = new PreferencesDialog(this);
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
index 1b4d31f..919314f 100644
--- a/GScribo/mainwindow.h
+++ b/GScribo/mainwindow.h
@@ -51,7 +51,6 @@ class MainWindow:
void setActionsEnabled(bool isSegmented);
void disableActions();
- void printScene(QPrinter *printer);
void printItems(QPainter *painter, const QList<QGraphicsItem *>& items, QStyleOptionGraphicsItem *options);
Xml processTmpXml(const QString& filename) const;
@@ -81,6 +80,9 @@ class MainWindow:
QAction *print_;
QAction *export_;
+ public slots:
+ void printScene(QPrinter *printer);
+
private slots:
void onOpen();
void onSegment();
--
1.7.2.5
1
0
* runner.cpp: Try to fix segmentations problem,
* configs.h,
* regionwidget.cpp,
* TODO.
---
GScribo/GScribo.pro.user | 32 +++++++++++++++++---------------
GScribo/Processing/runner.cpp | 2 +-
GScribo/TODO | 20 +++++++++++---------
GScribo/configs.h | 28 ++++------------------------
GScribo/graphicswidget.h | 18 ------------------
GScribo/helpdialog.cpp | 1 -
GScribo/regionwidget.cpp | 2 +-
7 files changed, 34 insertions(+), 69 deletions(-)
delete mode 100644 GScribo/graphicswidget.h
delete mode 100644 GScribo/helpdialog.cpp
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index 6797177..c8d3403 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -58,6 +58,7 @@
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<value key="QtVersionId" type="int">0</value>
<value key="ToolChain" type="int">0</value>
+ <value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">2</value>
</valuemap>
</data>
@@ -66,6 +67,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<value key="QtVersionId" type="int">0</value>
+ <value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">0</value>
</valuemap>
</data>
@@ -74,7 +76,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5fRJjvQZCW,guid=f01db3fa195c41095666b8af000232ff</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-AApY2C9ax7,guid=67203c296298a08d55b5e06d00024298</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -90,16 +92,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=13463</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-ktPBW13403/agent.13403</value>
+ <value type="QString">SSH_AGENT_PID=14368</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-klKXX14308/agent.14308</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=16777240</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmORALSW</value>
+ <value type="QString">WINDOWID=10485784</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmVOT6RW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360918541.182866-885976381</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360922534.723042-2005793738</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
@@ -112,7 +114,7 @@
<value type="QString">CONFIG+=debug</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
- <value key="abstractProcess.enabled" type="bool">false</value>
+ <value key="abstractProcess.enabled" type="bool">true</value>
<value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
@@ -121,7 +123,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5fRJjvQZCW,guid=f01db3fa195c41095666b8af000232ff</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-AApY2C9ax7,guid=67203c296298a08d55b5e06d00024298</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
@@ -137,16 +139,16 @@
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=13463</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-ktPBW13403/agent.13403</value>
+ <value type="QString">SSH_AGENT_PID=14368</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-klKXX14308/agent.14308</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
- <value type="QString">WINDOWID=16777240</value>
- <value type="QString">WINDOWPATH=7:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmORALSW</value>
+ <value type="QString">WINDOWID=10485784</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmVOT6RW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360918541.182866-885976381</value>
+ <value type="QString">XDG_SESSION_COOKIE=9a5c41ad78622411b8e25b00459a554f-1360922534.723042-2005793738</value>
<value type="QString">XTERM_LOCALE=fr_FR.UTF-8</value>
<value type="QString">XTERM_SHELL=/bin/bash</value>
<value type="QString">XTERM_VERSION=XTerm(261)</value>
diff --git a/GScribo/Processing/runner.cpp b/GScribo/Processing/runner.cpp
index faa9ce0..34145ee 100644
--- a/GScribo/Processing/runner.cpp
+++ b/GScribo/Processing/runner.cpp
@@ -66,7 +66,7 @@ image2d<bool> Runner::preprocess(const image2d<value::rgb8>& ima)
Preprocess f;
// Load config.
- Configs * const conf = Configs::getInstance();
+ Configs *const conf = Configs::getInstance();
connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
connect(&f, SIGNAL(newProgressLabel(QString)),
diff --git a/GScribo/TODO b/GScribo/TODO
index a386c37..1c6c89a 100644
--- a/GScribo/TODO
+++ b/GScribo/TODO
@@ -1,4 +1,4 @@
-Concerning the xml widget :
+* Concerning the xml widget :
- Can modify in real time the proxy with a regular expression. When the user click on a check box in the region widget, a new regular expression is created an sent to the xml widget but the proxy is not modified by this regular expression.
- In the table tree (the attributes tree), set the max of the header splitter. Currently it can be moved indefinitely to the right.
- Fit the splitter to the content of the first column when an attributes node is loaded.
@@ -6,29 +6,31 @@ Concerning the xml widget :
- The organisation of the class and the two views are not perfect.
-Concerning the scene :
+* Concerning the scene :
- Give the possibility to the user to remove some region.
- Can create/ fusion some region : sometimes two line regions are splitted but will not be.
- Optimize the collision between the rectangle item and the regions. Currently it do not take into account if the region is visible by the view before calculating the collision.
- Use OpenGL to speed up graphics rendering (the gui has been developped with Qt 4.7, OpenGL was still experimental so it was really slow when updating the scene).
- - Create a little widget at the bottom of the scene with the % of scale, the possibility to fit the scene rect or to scale it at 100% (just like gwenview).
+ - Create a little widget at the bottom of the scene with the % of scale, the possibility to fit the scene rect or to scale it at 100% (just like gwenview).
- May be give the possibility to change the color.
- May be some options one right click.
-Concerning the region widget :
+* Concerning the region widget :
- As stated bove, connect this widget with the xml widget.
- Find a better way to get region names and colors.
-Concerning the thumbnails widget :
+* Concerning the page widget :
- Load less thumbnails (just the necessary to draw it on the widget) because sometimes, pictures are heavy.
- May be use a progress dialog during the loading where a large number of pictures are loaded.
- Offer the possibility to down/ upscale thumbnails.
- Create also a button to delete selected items (rather than the key 'delete').
+ - During the segmentation, give the possibility to segment selected thumbnails, all thumbnails or juste the current.
+ - For each thumbnails, paint at his bottom a little progress dialog to check if the picture has already been segmented, not segmented or ongoing segmentation.
-Concerning the xml file :
+* Concerning the xml file :
- Stop using the static array representation of the internal data structure for graphics region.
- Find a better way to run through all node representing a graphics item without knowing it in advance. For exemple, the xml file looks like this :
@@ -68,18 +70,18 @@ Concerning the xml file :
Graphical items are after pages and node containing informations looks like : *Region -> Coords -> Points and is located in the root node named "Page" so there is a way to find graphical item without knowing their location and name before.
-Concerning tool bar :
+* Concerning tool bar :
- Create one \o/.
- Create icons to replace text.
- Add new functionnalities.
-Create a text viewer :
+* Create a text viewer :
- Give the possibility to modify the text.
- ______________________ move picture.
- ______________________ load arrays, tables, etc ...
- Create a custom tool bar to save, load, etc ...
-For other idea of interfaces using Qt :
+* For other idea of interfaces using Qt :
- gwenview (picture visionnary, good idea here).
diff --git a/GScribo/configs.h b/GScribo/configs.h
index ab61ec9..c6aac68 100644
--- a/GScribo/configs.h
+++ b/GScribo/configs.h
@@ -14,13 +14,6 @@ class Configs :
public:
inline static Configs *getInstance();
- inline bool isRegionInit();
- inline QColor regionColor(const GraphicsRegion::Id& region);
- inline QString regionName(const GraphicsRegion::Id& region);
-
- inline bool isRegionChecked(const GraphicsRegion::Id& region);
- inline void setRegionChecked(const GraphicsRegion::Id& region, bool checked);
-
inline bool preprocessingSubsample();
inline void setPreprocessingSubsample(bool b);
@@ -64,21 +57,6 @@ class Configs :
inline Configs *Configs::getInstance()
{ static Configs *conf = new Configs(); return conf; }
-inline bool Configs::isRegionInit()
-{ return value("region/init", false).toBool(); }
-
-inline bool Configs::isRegionChecked(const GraphicsRegion::Id ®ion)
-{ return value("region/" + QString::number(region) + "/checked", true).toBool(); }
-
-inline void Configs::setRegionChecked(const GraphicsRegion::Id ®ion, bool checked)
-{ setValue("region/" + QString::number(region) + "/checked", checked); }
-
-inline QColor Configs::regionColor(const GraphicsRegion::Id& region)
-{ return value("region/" + QString::number(region) + "color").value<QColor>(); }
-
-inline QString Configs::regionName(const GraphicsRegion::Id ®ion)
-{ beginGroup("region"); beginGroup(QString::number(region)); QString l = value("name").toString(); endGroup(); endGroup(); qDebug() << l; return l; }
-
inline bool Configs::preprocessingSubsample()
{ return value("preprocessing/subsample", false).toBool(); }
@@ -104,7 +82,8 @@ inline void Configs::setPreprocessingRemoveNoise(bool b)
{ setValue("preprocessing/remove_noise", b); }
inline int Configs::preprocessingBinAlgo()
-{ return value("preprocessing/bin_algo", scribo::toolchain::internal::SauvolaMs).toInt(); }
+{ return value("preprocessing/bin_algo",
+ scribo::toolchain::internal::SauvolaMs).toInt(); }
inline void Configs::setPreprocessingBinAlgo(int algo)
{ setValue("preprocessing/bin_algo", algo); }
@@ -146,7 +125,8 @@ inline void Configs::setGeneralSaveXmlCustomDir(bool b)
{ setValue("general/save_xml/custom_dir", b); }
inline QString Configs::generalSaveXmlCustomDirPath()
-{ return value("general/save_xml/custom_dir_path", QDir::tempPath()).toString(); }
+{ return value("general/save_xml/custom_dir_path",
+ QDir::tempPath()).toString(); }
inline void Configs::setGeneralSaveXmlCustomDirPath(const QString& path)
{ setValue("general/save_xml/custom_dir_path", path); }
diff --git a/GScribo/graphicswidget.h b/GScribo/graphicswidget.h
deleted file mode 100644
index ffb9aff..0000000
--- a/GScribo/graphicswidget.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef GRAPHICSWIDGET_H
-#define GRAPHICSWIDGET_H
-
-#include <QWidget>
-
-
-class GraphicsWidget :
- public QWidget
-{
- public:
- explicit GraphicsWidget(QWidget *parent, Qt::WindowFlags f);
-
- private:
-
-
-};
-
-#endif // GRAPHICSWIDGET_H
diff --git a/GScribo/helpdialog.cpp b/GScribo/helpdialog.cpp
deleted file mode 100644
index 8b13789..0000000
--- a/GScribo/helpdialog.cpp
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/GScribo/regionwidget.cpp b/GScribo/regionwidget.cpp
index 107ac80..5d1a95e 100644
--- a/GScribo/regionwidget.cpp
+++ b/GScribo/regionwidget.cpp
@@ -65,6 +65,6 @@ void RegionWidget::checkStateChanged(QTreeWidgetItem *item)
emit checkStateChanged(static_cast<GraphicsRegion::Id>(item->data(0, Qt::UserRole).toInt()), false);
}
- //Zemit checkStateChanged(filterString_);
+ //emit checkStateChanged(filterString_);
}
}
--
1.7.2.5
1
0