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
* mln/util/map.hh: Fix prototype of element().
* mln/util/set.hh: Add a missing include.
---
milena/ChangeLog | 8 ++++++++
milena/mln/util/map.hh | 8 ++++----
milena/mln/util/set.hh | 1 +
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index b2a096f..8d00301 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,11 @@
+2013-02-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * mln/util/map.hh: Fix prototype of element().
+
+ * mln/util/set.hh: Add a missing include.
+
2013-01-04 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/util/tree_of_shapes.hh: Extend structure for storing new
diff --git a/milena/mln/util/map.hh b/milena/mln/util/map.hh
index 680d3e4..1cc8309 100644
--- a/milena/mln/util/map.hh
+++ b/milena/mln/util/map.hh
@@ -205,7 +205,7 @@ namespace mln
void invalidate();
/// Give the element the iterator designates.
- const std::pair<K,V>& element() const;
+ subj_t element() const;
// As a Proxy.
subj_t subj_();
@@ -256,7 +256,7 @@ namespace mln
void invalidate();
/// Give the element the iterator designates.
- const std::pair<K,V>& element() const;
+ subj_t element() const;
// As a Proxy.
subj_t subj_();
@@ -496,7 +496,7 @@ namespace mln
template <typename K, typename V>
inline
- const std::pair<K,V>&
+ typename map_fwd_iter<K,V>::subj_t
map_fwd_iter<K,V>::element() const
{
mln_precondition(is_valid());
@@ -579,7 +579,7 @@ namespace mln
template <typename K, typename V>
inline
- const std::pair<K,V>&
+ typename map_bkd_iter<K,V>::subj_t
map_bkd_iter<K,V>::element() const
{
mln_precondition(is_valid());
diff --git a/milena/mln/util/set.hh b/milena/mln/util/set.hh
index d9e91e2..6d8608c 100644
--- a/milena/mln/util/set.hh
+++ b/milena/mln/util/set.hh
@@ -41,6 +41,7 @@
# include <algorithm>
# include <iostream>
+# include <mln/core/concept/object.hh>
# include <mln/core/concept/proxy.hh>
# include <mln/util/ord.hh>
--
1.7.2.5
1
0

5fd931b Get chain segmentation and good pages viewer (add selection and remove).
by Antoine Froger 11 Feb '13
by Antoine Froger 11 Feb '13
11 Feb '13
---
GScribo/GScribo.pro | 8 +-
GScribo/GScribo.pro.user | 62 +++++-----
GScribo/PagesViewer/listmodel.cpp | 21 +++-
GScribo/PagesViewer/listmodel.h | 6 +-
GScribo/PagesViewer/pageswidget.cpp | 33 +++++-
GScribo/PagesViewer/pageswidget.h | 9 +-
GScribo/Processing/progressdialog.cpp | 2 +-
GScribo/Processing/runner.cpp | 28 ++--
GScribo/Processing/runner.h | 4 +-
GScribo/Rendering/scene.cpp | 9 +-
GScribo/Rendering/scene.h | 7 +-
GScribo/Rendering/selection.h | 2 +-
GScribo/main.cpp | 6 +-
GScribo/mainwindow.cpp | 151 +++++++++++++++++++++++
GScribo/mainwindow.h | 60 +++++++++
GScribo/xml.cpp | 2 +-
GScribo/xml.h | 24 +++-
XmlTree/XmlTree.pro | 14 ++
XmlTree/XmlTree.pro.user | 160 +++++++++++++++++++++++++
{Test => XmlTree}/main.cpp | 4 +-
NotePad/notepad.cpp => XmlTree/mainwindow.cpp | 12 +-
XmlTree/mainwindow.h | 27 ++++
XmlTree/mainwindow.ui | 24 ++++
XmlTree/xml.cpp | 24 ++++
XmlTree/xml.h | 23 ++++
XmlTree/xmlwidget.cpp | 5 +
XmlTree/xmlwidget.h | 14 ++
27 files changed, 655 insertions(+), 86 deletions(-)
create mode 100644 GScribo/mainwindow.cpp
create mode 100644 GScribo/mainwindow.h
create mode 100644 XmlTree/XmlTree.pro
create mode 100644 XmlTree/XmlTree.pro.user
copy {Test => XmlTree}/main.cpp (76%)
copy NotePad/notepad.cpp => XmlTree/mainwindow.cpp (59%)
create mode 100644 XmlTree/mainwindow.h
create mode 100644 XmlTree/mainwindow.ui
create mode 100644 XmlTree/xml.cpp
create mode 100644 XmlTree/xml.h
create mode 100644 XmlTree/xmlwidget.cpp
create mode 100644 XmlTree/xmlwidget.h
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
index 9ca65f6..4175a7f 100644
--- a/GScribo/GScribo.pro
+++ b/GScribo/GScribo.pro
@@ -28,7 +28,9 @@ SOURCES += main.cpp \
Rendering/polygonitem.cpp \
Processing/progressdialog.cpp \
Processing/process.cpp \
- Processing/preprocess.cpp
+ Processing/preprocess.cpp \
+ Processing/runner.cpp \
+ xml.cpp
HEADERS += mainwindow.h \
configs.h \
region.h \
@@ -46,7 +48,9 @@ HEADERS += mainwindow.h \
Processing/preprocess.h \
Processing/progressdialog.h \
Processing/process.h \
- dir.h
+ dir.h \
+ Processing/runner.h \
+ xml.h
FORMS += mainwindow.ui \
Preferences/preferencesdialog.ui \
Preferences/ocroptions.ui \
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index e3df61a..2415250 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">2</value>
<value key="ToolChain" type="int">0</value>
+ <value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">2</value>
</valuemap>
</data>
@@ -66,36 +67,35 @@
<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-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-P80XV4IXzt,guid=a5409515b0d4b55f3087c5ac006be134</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-kTB4J7</value>
- <value type="QString">GNOME_KEYRING_PID=27564</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-hNSqJb</value>
+ <value type="QString">GNOME_KEYRING_PID=26128</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">OLDPWD=/lrde/home/stage/froger_a/qt/GScribo/Preferences</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=27639</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</value>
+ <value type="QString">SSH_AGENT_PID=26203</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-JCcKD26137/agent.26137</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
+ <value type="QString">WINDOWID=16777252</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmDXEURW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359117815.965216-788943747</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>
@@ -119,36 +119,35 @@
<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-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-P80XV4IXzt,guid=a5409515b0d4b55f3087c5ac006be134</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-kTB4J7</value>
- <value type="QString">GNOME_KEYRING_PID=27564</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-hNSqJb</value>
+ <value type="QString">GNOME_KEYRING_PID=26128</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">OLDPWD=/lrde/home/stage/froger_a/qt/GScribo/Preferences</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=27639</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</value>
+ <value type="QString">SSH_AGENT_PID=26203</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-JCcKD26137/agent.26137</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
+ <value type="QString">WINDOWID=16777252</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmDXEURW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359117815.965216-788943747</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>
@@ -169,35 +168,36 @@
<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-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-E725PGjN72,guid=03a3a01426a1915469d93b2f006b9a87</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-kTB4J7</value>
- <value type="QString">GNOME_KEYRING_PID=27564</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-qpwUT9</value>
+ <value type="QString">GNOME_KEYRING_PID=23170</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">OLDPWD=/lrde/home/stage/froger_a/qt/GScribo/Preferences</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=27639</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</value>
+ <value type="QString">SSH_AGENT_PID=23245</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-CQzeO23179/agent.23179</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm87KZRW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359099722.931858-1143452610</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>
diff --git a/GScribo/PagesViewer/listmodel.cpp b/GScribo/PagesViewer/listmodel.cpp
index 6fd60db..9748e76 100644
--- a/GScribo/PagesViewer/listmodel.cpp
+++ b/GScribo/PagesViewer/listmodel.cpp
@@ -5,6 +5,11 @@ ListModel::ListModel(QObject *parent):
{
}
+QStringList ListModel::filenames() const
+{
+ return paths;
+}
+
int ListModel::rowCount(const QModelIndex&) const
{
return pixmaps.size();
@@ -24,7 +29,7 @@ QVariant ListModel::data(const QModelIndex& index, int role) const
// Store the path of the pixmap in an other custom place.
if(role == Qt::UserRole+1)
- return filenames.value(index.row());
+ return paths.value(index.row());
return QVariant();
}
@@ -36,7 +41,19 @@ void ListModel::addPixmap(const QString& filename, const QPixmap& pixmap)
beginInsertRows(QModelIndex(), row, row);
pixmaps.insert(row, pixmap);
- filenames.insert(row, filename);
+ paths.insert(row, filename);
endInsertRows();
}
+
+void ListModel::removePixmap(const QModelIndex &parent)
+{
+ int row = parent.row();
+
+ beginRemoveRows(parent, row, row);
+
+ pixmaps.removeAt(row);
+ paths.removeAt(row);
+
+ endRemoveRows();
+}
diff --git a/GScribo/PagesViewer/listmodel.h b/GScribo/PagesViewer/listmodel.h
index 2f0350e..328d3ca 100644
--- a/GScribo/PagesViewer/listmodel.h
+++ b/GScribo/PagesViewer/listmodel.h
@@ -12,13 +12,17 @@ class ListModel:
public:
explicit ListModel(QObject *parent = 0);
+ QStringList filenames() const;
int rowCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role = Qt::DecorationRole) const;
void addPixmap(const QString& filename, const QPixmap& pixmap);
private:
QList<QPixmap> pixmaps;
- QList<QString> filenames;
+ QStringList paths;
+
+ public slots:
+ void removePixmap(const QModelIndex &parent);
};
#endif // LISTMODEL_H
diff --git a/GScribo/PagesViewer/pageswidget.cpp b/GScribo/PagesViewer/pageswidget.cpp
index 712f5eb..3f975b4 100644
--- a/GScribo/PagesViewer/pageswidget.cpp
+++ b/GScribo/PagesViewer/pageswidget.cpp
@@ -4,6 +4,8 @@ PagesWidget::PagesWidget(QWidget *parent):
QListView(parent)
{
setUniformItemSizes(true);
+ setSelectionMode(QAbstractItemView::ExtendedSelection);
+ setSelectionRectVisible(false);
setViewMode(QListView::IconMode);
setIconSize(QSize(200, 200));
setFlow(QListView::TopToBottom);
@@ -12,15 +14,15 @@ PagesWidget::PagesWidget(QWidget *parent):
setWrapping(false);
setModel(&model);
- connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(getSelection(QModelIndex)));
+ connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(getPixmap(QModelIndex)));
}
-void PagesWidget::addPixmap(const QString& filename, const QPixmap &pixmap)
+QStringList PagesWidget::filenames() const
{
- model.addPixmap(filename, pixmap);
+ return model.filenames();
}
-void PagesWidget::getSelection(const QModelIndex &index)
+void PagesWidget::getPixmap(const QModelIndex &index)
{
// Get the pixmap and the path of the icon to send it to the scene and draw it.
QPixmap pixmap = index.data(Qt::UserRole).value<QPixmap>();
@@ -28,3 +30,26 @@ void PagesWidget::getSelection(const QModelIndex &index)
emit selectionClicked(filename, pixmap);
}
+
+void PagesWidget::addPixmap(const QString& filename, const QPixmap &pixmap)
+{
+ model.addPixmap(filename, pixmap);
+}
+
+void PagesWidget::removeSelection()
+{
+ QModelIndexList indexes = selectedIndexes();
+
+ if(indexes.count() > 0)
+ {
+ // We have to 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 value to the smallest to be sure to remove the good index.
+ for(int i = indexes.count()-1; i > -1; i--)
+ model.removePixmap(indexes[i]);
+
+ getPixmap(model.index(indexes[0].row()));
+ clearSelection();
+ }
+}
diff --git a/GScribo/PagesViewer/pageswidget.h b/GScribo/PagesViewer/pageswidget.h
index ae17a4a..07d32ac 100644
--- a/GScribo/PagesViewer/pageswidget.h
+++ b/GScribo/PagesViewer/pageswidget.h
@@ -1,11 +1,8 @@
#ifndef PAGESWIDGET_H
#define PAGESWIDGET_H
-#include <QPushButton>
-#include <QScrollBar>
#include <QListView>
-#include <QPainter>
-#include <QWidget>
+#include <QShortcut>
#include "listmodel.h"
@@ -17,12 +14,14 @@ class PagesWidget:
public:
explicit PagesWidget(QWidget *parent = 0);
void addPixmap(const QString& filename, const QPixmap& pixmap);
+ QStringList filenames() const;
private:
ListModel model;
public slots:
- void getSelection(const QModelIndex &index);
+ void getPixmap(const QModelIndex &index);
+ void removeSelection();
signals:
void clicked(const QModelIndex &index);
diff --git a/GScribo/Processing/progressdialog.cpp b/GScribo/Processing/progressdialog.cpp
index 386aaa6..c4ae96f 100644
--- a/GScribo/Processing/progressdialog.cpp
+++ b/GScribo/Processing/progressdialog.cpp
@@ -17,6 +17,6 @@ void ProgressDialog::run()
void ProgressDialog::reset()
{
setValue(0);
- setLabelText("");
+ setLabelText("Initilization");
show();
}
diff --git a/GScribo/Processing/runner.cpp b/GScribo/Processing/runner.cpp
index ebde288..5024acd 100644
--- a/GScribo/Processing/runner.cpp
+++ b/GScribo/Processing/runner.cpp
@@ -29,9 +29,12 @@ void Runner::run()
case Demat:
{
image2d<value::rgb8> ima;
- io::magick::load(ima, args_.at(0).toUtf8().constData());
- image2d<bool> bin_ima = preprocess(ima);
- process(ima, bin_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();
}
break;
@@ -48,10 +51,10 @@ void Runner::stop()
}
// Demat related stuff
-void Runner::start_demat(const QString& filename)
+void Runner::start_demat(const QStringList& filenames)
{
args_.clear();
- args_ << filename;
+ args_ = filenames;
mode_ = Demat;
QThread::start();
}
@@ -86,11 +89,11 @@ image2d<bool> Runner::preprocess(const image2d<value::rgb8>& ima)
void Runner::process(const image2d<value::rgb8>& original_ima,
- const image2d<bool>& processed_ima)
+ const image2d<bool>& processed_ima, int arg)
{
emit new_step("Page segmentation");
- Process f(args_.at(0).toUtf8().constData());
+ Process f(args_.at(arg).toUtf8().constData());
connect(&f, SIGNAL(progress()), this, SIGNAL(progress()));
connect(&f, SIGNAL(newProgressLabel(QString)),
@@ -112,7 +115,7 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
f.save_doc_as_xml = true;
- QFileInfo file(args_.at(0));
+ QFileInfo file(args_.at(arg));
QString output_dir = QDir::tempPath();
if (conf->generalSaveXmlEnabled())
{
@@ -134,8 +137,6 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
emit xml_saved(filename);
}
-
-
// Export related stuff
void Runner::start_export(const QString& imgfile,
const QString& xmlfile, const QString& outfile)
@@ -147,10 +148,9 @@ void Runner::start_export(const QString& imgfile,
QThread::start();
}
-
void Runner::export_as()
{
- emit new_step("Exporting document...");
+ emit new_step("Exporting document");
emit new_progress_max_value(2);
// Checking output format
@@ -169,14 +169,14 @@ void Runner::export_as()
int rvalue = 0;
if (f.suffix() == "pdf")
{
- emit new_step("Exporting as 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...");
+ 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());
diff --git a/GScribo/Processing/runner.h b/GScribo/Processing/runner.h
index 51969e3..721086a 100644
--- a/GScribo/Processing/runner.h
+++ b/GScribo/Processing/runner.h
@@ -30,12 +30,12 @@ class Runner :
public:
explicit Runner(QObject *parent = 0);
- void start_demat(const QString& filename);
+ 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);
+ 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);
diff --git a/GScribo/Rendering/scene.cpp b/GScribo/Rendering/scene.cpp
index 5035b28..695a4f1 100644
--- a/GScribo/Rendering/scene.cpp
+++ b/GScribo/Rendering/scene.cpp
@@ -28,6 +28,11 @@ void Scene::init()
addItem(&selection);
}
+QString Scene::backgroundPath() const
+{
+ return path;
+}
+
void Scene::removeItems()
{
QList<QGraphicsItem *> itemsList = items();
@@ -91,9 +96,9 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void Scene::setBackground(const QString& filename, const QPixmap& pixmap)
{
- if(backgroundPath != filename)
+ if(path != filename)
{
- backgroundPath = filename;
+ path = filename;
setSceneRect(pixmap.rect());
setBackgroundBrush(QBrush(pixmap));
diff --git a/GScribo/Rendering/scene.h b/GScribo/Rendering/scene.h
index c4a627a..6aa7668 100644
--- a/GScribo/Rendering/scene.h
+++ b/GScribo/Rendering/scene.h
@@ -1,9 +1,9 @@
#ifndef SCENE_H
#define SCENE_H
-#include <QFileDialog>
-#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
+#include <QGraphicsScene>
+#include <QFileDialog>
#include "selection.h"
#include "polygonitem.h"
@@ -17,6 +17,7 @@ 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();
protected:
@@ -27,7 +28,7 @@ class Scene :
private:
void init();
- QString backgroundPath;
+ QString path;
Selection selection;
QPointF pressPos;
bool isPressing;
diff --git a/GScribo/Rendering/selection.h b/GScribo/Rendering/selection.h
index 4864e15..ace8f01 100644
--- a/GScribo/Rendering/selection.h
+++ b/GScribo/Rendering/selection.h
@@ -2,8 +2,8 @@
#define SELECTION_H
#include <QGraphicsRectItem>
-#include <QPen>
#include <climits>
+#include <QPen>
class Selection :
public QGraphicsRectItem
diff --git a/GScribo/main.cpp b/GScribo/main.cpp
index b8f57bd..bd76409 100644
--- a/GScribo/main.cpp
+++ b/GScribo/main.cpp
@@ -1,10 +1,12 @@
+#undef MLN_WO_GLOBAL_VARS
+
+#include <scribo/make/debug_filename.hh>
#include <mln/labeling/colorize.hh>
-#include <mln/math/pi.hh>
#include <mln/io/magick/load.hh>
#include <mln/literal/colors.hh>
#include <mln/debug/filename.hh>
-#include <scribo/make/debug_filename.hh>
#include <QtGui/QApplication>
+#include <mln/math/pi.hh>
#include "mainwindow.h"
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
new file mode 100644
index 0000000..4b2a4d3
--- /dev/null
+++ b/GScribo/mainwindow.cpp
@@ -0,0 +1,151 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+
+ setWindowTitle(tr("GScribo"));
+ //progressDialog.setParent(this);
+
+ initGraphicsRegion();
+ initTextRegion();
+ initPageWidget();
+ initToolBar();
+ initMenuBar();
+
+ connectWidgets();
+ connectShortcuts();
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+void MainWindow::initGraphicsRegion()
+{
+ // Cache backgroud to speed up its repaint.
+ graphicsView.setCacheMode(QGraphicsView::CacheBackground);
+ graphicsView.setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
+ graphicsView.setScene(&scene);
+
+ setCentralWidget(&graphicsView);
+}
+
+void MainWindow::initPageWidget()
+{
+ dockPages.setWindowTitle(tr("Pages"));
+ dockPages.setFeatures(QDockWidget::DockWidgetClosable);
+ dockPages.setMaximumWidth(190);
+ dockPages.setMinimumWidth(190);
+ dockPages.setWidget(&pagesWidget);
+
+ addDockWidget(Qt::LeftDockWidgetArea, &dockPages);
+}
+
+void MainWindow::initTextRegion()
+{
+ dockText.setWindowTitle(tr("Text"));
+ dockText.setAllowedAreas(Qt::AllDockWidgetAreas);
+ dockText.setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);
+ dockText.setWidget(&textEdit);
+
+ addDockWidget(Qt::RightDockWidgetArea, &dockText);
+ dockText.hide();
+}
+
+void MainWindow::initToolBar()
+{
+ QAction *open = ui->mainToolBar->addAction(tr("Open"));
+ connect(open, SIGNAL(triggered()), this, SLOT(onOpen()));
+
+ QAction *segment = ui->mainToolBar->addAction(tr("Segment"));
+ connect(segment, SIGNAL(triggered()), this, SLOT(onSegment()));
+
+ QAction *del = ui->mainToolBar->addAction(tr("Delete"));
+ connect(del, SIGNAL(triggered()), &pagesWidget, SLOT(removeSelection()));
+}
+
+void MainWindow::initMenuBar()
+{
+ QAction *preferences = ui->menuBar->addAction(tr("Preferences"));
+ connect(preferences, SIGNAL(triggered()), SLOT(onPreferences()));
+}
+
+void MainWindow::onOpen()
+{
+ QStringList paths = QFileDialog::getOpenFileNames(this, "Open Image(s)", QDir::homePath(), "Images (*.png *.jpg *.ppm *.bmp)");
+
+ if(paths.count() > 0)
+ {
+ QString path = paths[0];
+ QPixmap pixmap(path);
+
+ scene.setBackground(path, pixmap);
+ pagesWidget.addPixmap(path, pixmap);
+
+ // If more than one file, we store it in the page widget.
+ for(int i = 1; i < paths.count(); i++)
+ {
+ path = paths[i];
+ pixmap.load(path);
+ pagesWidget.addPixmap(path, pixmap);
+ }
+ }
+}
+
+void MainWindow::onSegment()
+{
+ if(scene.backgroundPath() != "")
+ {
+ QStringList filenames;
+
+ if(!pagesWidget.isVisible())
+ filenames << scene.backgroundPath();
+
+ else
+ filenames = pagesWidget.filenames();
+
+ progressDialog.reset();
+ runner.start_demat(filenames);
+ }
+}
+
+void MainWindow::onPreferences()
+{
+ PreferencesDialog *preferenceDialog = new PreferencesDialog(this);
+ preferenceDialog->show();
+}
+
+void MainWindow::connectWidgets()
+{
+ // If double click on a picture of the page widget -> draw it on background scene.
+ connect(&pagesWidget, SIGNAL(selectionClicked(QString,QPixmap)), &scene, SLOT(setBackground(QString,QPixmap)));
+
+ 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()));
+}
+
+void MainWindow::connectShortcuts()
+{
+ QShortcut *del = new QShortcut(Qt::Key_Delete, &pagesWidget);
+ connect(del, SIGNAL(activated()), &pagesWidget, SLOT(removeSelection()));
+}
+
+void MainWindow::changeEvent(QEvent *e)
+{
+ QMainWindow::changeEvent(e);
+ switch (e->type())
+ {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
new file mode 100644
index 0000000..708a4f6
--- /dev/null
+++ b/GScribo/mainwindow.h
@@ -0,0 +1,60 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QGraphicsView>
+#include <QPlainTextEdit>
+#include <QMainWindow>
+#include <QHBoxLayout>
+#include <QDockWidget>
+#include <QFileDialog>
+#include <QGroupBox>
+
+#include "Preferences/preferencesdialog.h"
+#include "Processing/progressdialog.h"
+#include "PagesViewer/pageswidget.h"
+#include "Processing/runner.h"
+#include "Rendering/scene.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 initTextRegion();
+ void initToolBar();
+ void initPageWidget();
+ void initMenuBar();
+ void connectWidgets();
+ void connectShortcuts();
+
+ Ui::MainWindow *ui;
+ QDockWidget dockText;
+ QDockWidget dockPages;
+ QGraphicsView graphicsView;
+ Scene scene;
+ QPlainTextEdit textEdit;
+ PagesWidget pagesWidget;
+ Runner runner;
+ ProgressDialog progressDialog;
+
+ private slots:
+ void onOpen();
+ void onSegment();
+ void onPreferences();
+};
+
+#endif // MAINWINDOW_H
diff --git a/GScribo/xml.cpp b/GScribo/xml.cpp
index 67c5451..c213728 100644
--- a/GScribo/xml.cpp
+++ b/GScribo/xml.cpp
@@ -1,5 +1,4 @@
#include "xml.h"
-#include "region.h"
static const GraphicRegion::Data itemsData[] =
{
@@ -16,6 +15,7 @@ static const GraphicRegion::Data itemsData[] =
Xml::Xml()
{
+
}
void Xml::graphicsRegion(const QDomElement& element, const GraphicRegion::Data& data, Scene *scene)
diff --git a/GScribo/xml.h b/GScribo/xml.h
index c694a95..840f73a 100644
--- a/GScribo/xml.h
+++ b/GScribo/xml.h
@@ -1,16 +1,24 @@
#ifndef XML_H
#define XML_H
-#include <QString>
#include <QGraphicsItem>
#include <QDomElement>
-#include <QFile>
-#include <climits>
#include <QTextEdit>
+#include <climits>
+#include <QString>
+#include <QFile>
+
#include "polygonitem.h"
#include "region.h"
+#include "region.h"
#include "scene.h"
+struct Node
+{
+ QDomElement root;
+ QDomElement
+};
+
class Xml:
QObject
{
@@ -19,10 +27,12 @@ class Xml:
static void parseItems(const QString &filename, Scene *scene);
private:
- static void graphicsRegion(const QDomElement& element, const GraphicRegion::Data& data, Scene *scene);
- static void graphicsTypoRegion(const QDomElement& element, const QPoint& xPos, Scene *scene);
- static void graphicsLineRegion(const QDomElement& element, Scene *scene);
- static void graphicsTextRegion(const QDomElement& element, Scene *scene);
+ 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);
+
+ QDomElement root;
};
#endif // XML_H
diff --git a/XmlTree/XmlTree.pro b/XmlTree/XmlTree.pro
new file mode 100644
index 0000000..c3fcab9
--- /dev/null
+++ b/XmlTree/XmlTree.pro
@@ -0,0 +1,14 @@
+# -------------------------------------------------
+# Project created by QtCreator 2013-01-25T17:20:25
+# -------------------------------------------------
+QT += xml
+TARGET = XmlTree
+TEMPLATE = app
+SOURCES += main.cpp \
+ mainwindow.cpp \
+ xmlwidget.cpp \
+ xml.cpp
+HEADERS += mainwindow.h \
+ xmlwidget.h \
+ xml.h
+FORMS += mainwindow.ui
diff --git a/XmlTree/XmlTree.pro.user b/XmlTree/XmlTree.pro.user
new file mode 100644
index 0000000..eef8a12
--- /dev/null
+++ b/XmlTree/XmlTree.pro.user
@@ -0,0 +1,160 @@
+<!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">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>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="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="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>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/Test/main.cpp b/XmlTree/main.cpp
similarity index 76%
copy from Test/main.cpp
copy to XmlTree/main.cpp
index 9f16ac8..6e7efd9 100644
--- a/Test/main.cpp
+++ b/XmlTree/main.cpp
@@ -1,10 +1,10 @@
#include <QtGui/QApplication>
-#include "test.h"
+#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
- Test w;
+ MainWindow w;
w.show();
return a.exec();
}
diff --git a/NotePad/notepad.cpp b/XmlTree/mainwindow.cpp
similarity index 59%
copy from NotePad/notepad.cpp
copy to XmlTree/mainwindow.cpp
index 57fc04f..7a8cf0a 100644
--- a/NotePad/notepad.cpp
+++ b/XmlTree/mainwindow.cpp
@@ -1,19 +1,19 @@
-#include "notepad.h"
-#include "ui_notepad.h"
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
-NotePad::NotePad(QWidget *parent) :
+MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
- ui(new Ui::NotePad)
+ ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
-NotePad::~NotePad()
+MainWindow::~MainWindow()
{
delete ui;
}
-void NotePad::changeEvent(QEvent *e)
+void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type())
diff --git a/XmlTree/mainwindow.h b/XmlTree/mainwindow.h
new file mode 100644
index 0000000..fb82901
--- /dev/null
+++ b/XmlTree/mainwindow.h
@@ -0,0 +1,27 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+
+namespace Ui
+{
+ class MainWindow;
+}
+
+class MainWindow :
+ public QMainWindow
+{
+ Q_OBJECT
+
+ public:
+ MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+ protected:
+ void changeEvent(QEvent *e);
+
+ private:
+ Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H
diff --git a/XmlTree/mainwindow.ui b/XmlTree/mainwindow.ui
new file mode 100644
index 0000000..97c03be
--- /dev/null
+++ b/XmlTree/mainwindow.ui
@@ -0,0 +1,24 @@
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>400</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MainWindow</string>
+ </property>
+ <widget class="QMenuBar" name="menuBar" />
+ <widget class="QToolBar" name="mainToolBar" />
+ <widget class="QWidget" name="centralWidget" />
+ <widget class="QStatusBar" name="statusBar" />
+ </widget>
+ <layoutDefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/XmlTree/xml.cpp b/XmlTree/xml.cpp
new file mode 100644
index 0000000..febcd69
--- /dev/null
+++ b/XmlTree/xml.cpp
@@ -0,0 +1,24 @@
+#include "xml.h"
+
+Xml::Xml()
+{
+}
+
+Xml::Xml(const QString &filename)
+{
+ load(filename);
+}
+
+void Xml::load(const QString &filename)
+{
+ QFile xmlFile(filename);
+ xmlFile.open(QIODevice::ReadOnly);
+
+ QDomDocument xml;
+ xml.setContent(&xmlFile);
+
+ xmlFile.close();
+
+ QDomElement root = xml.documentElement();
+ tItems.setText(0, QStringList(root.tagName()));
+}
diff --git a/XmlTree/xml.h b/XmlTree/xml.h
new file mode 100644
index 0000000..1353c62
--- /dev/null
+++ b/XmlTree/xml.h
@@ -0,0 +1,23 @@
+#ifndef XML_H
+#define XML_H
+
+#include <QTreeWidgetItem>
+#include <QGraphicsItem>
+#include <QDomElement>
+#include <QFile>
+
+class Xml
+{
+ public:
+ Xml();
+ explicit Xml(const QString& filename);
+ void load(const QString& filename);
+ QList<QGraphicsItem *> graphicsItems() const;
+ QTreeWidgetItem * treeItem() const;
+
+ private:
+ QList<QGraphicsItem *> gItems;
+ QTreeWidgetItem tItems;
+};
+
+#endif // XML_H
diff --git a/XmlTree/xmlwidget.cpp b/XmlTree/xmlwidget.cpp
new file mode 100644
index 0000000..e9d7a60
--- /dev/null
+++ b/XmlTree/xmlwidget.cpp
@@ -0,0 +1,5 @@
+#include "xmlwidget.h"
+
+XmlWidget::XmlWidget()
+{
+}
diff --git a/XmlTree/xmlwidget.h b/XmlTree/xmlwidget.h
new file mode 100644
index 0000000..906c1d0
--- /dev/null
+++ b/XmlTree/xmlwidget.h
@@ -0,0 +1,14 @@
+#ifndef XMLWIDGET_H
+#define XMLWIDGET_H
+
+#include <QDomElement>
+#include <QWidget>
+
+class XmlWidget :
+ public QWidget
+{
+ public:
+ explicit XmlWidget(const QString& filename);
+};
+
+#endif // XMLWIDGET_H
--
1.7.2.5
1
0

b16ebc4 Finish pages viewer (just one little problem) and add config dialog.
by Antoine Froger 11 Feb '13
by Antoine Froger 11 Feb '13
11 Feb '13
---
GScribo/GScribo.pro | 52 ++++--
GScribo/GScribo.pro.user | 113 +++++++-----
GScribo/{ => PagesViewer}/listmodel.cpp | 14 ++-
GScribo/{ => PagesViewer}/listmodel.h | 3 +-
GScribo/PagesViewer/pageswidget.cpp | 30 ++++
GScribo/{ => PagesViewer}/pageswidget.h | 13 +-
GScribo/Preferences/generaloptions.ui | 100 +++++++++++
GScribo/Preferences/ocroptions.ui | 62 +++++++
GScribo/Preferences/optionwidget.cpp | 14 ++
GScribo/Preferences/optionwidget.h | 15 ++
GScribo/Preferences/preferencesdialog.ui | 121 +++++++++++++
GScribo/Preferences/preprocessingoptions.ui | 76 ++++++++
GScribo/Preferences/segmentationoptions.ui | 52 ++++++
GScribo/{ => Processing}/preprocess.cpp | 0
GScribo/{ => Processing}/preprocess.h | 4 +-
GScribo/{ => Processing}/process.cpp | 0
GScribo/{ => Processing}/process.h | 4 +-
GScribo/{ => Processing}/progressdialog.cpp | 0
GScribo/{ => Processing}/progressdialog.h | 0
GScribo/{ => Processing}/runner.cpp | 8 -
GScribo/{ => Processing}/runner.h | 15 +-
GScribo/Rendering/polygonitem.cpp | 76 ++++++++
GScribo/{ => Rendering}/polygonitem.h | 9 +-
GScribo/Rendering/scene.cpp | 101 +++++++++++
GScribo/{ => Rendering}/scene.h | 7 +-
GScribo/{ => Rendering}/selection.cpp | 3 +
GScribo/{ => Rendering}/selection.h | 0
{XmlParser => GScribo}/configs.cpp | 34 ++++-
GScribo/{config.h => configs.h} | 3 +
GScribo/dir.h | 2 +-
GScribo/icon.cpp | 26 ---
GScribo/icon.h | 21 ---
GScribo/mainwindow.ui | 8 +-
GScribo/pageswidget.cpp | 19 --
GScribo/polygonitem.cpp | 75 --------
{XmlParser => GScribo}/region.h | 0
GScribo/scene.cpp | 82 ---------
GScribo/ui_mainwindow.h | 73 --------
MVC/MVC.pro | 13 --
MVC/MVC.pro.user | 251 ---------------------------
MVC/itemdelegate.cpp | 19 --
MVC/itemdelegate.h | 17 --
MVC/listmodel.cpp | 32 ----
MVC/listmodel.h | 24 ---
MVC/main.cpp | 11 --
MVC/mainwindow.cpp | 40 -----
MVC/mainwindow.h | 30 ----
MVC/mainwindow.ui | 24 ---
MVC/ui_mainwindow.h | 70 --------
XmlParser/XmlParser.pro.user | 38 ++--
gmvc/gmodel.cpp | 162 -----------------
gmvc/gmodel.h | 34 ----
gmvc/gmvc.pro | 13 --
gmvc/gmvc.pro.user | 251 ---------------------------
gmvc/main.cpp | 11 --
gmvc/mainwindow.cpp | 51 ------
gmvc/mainwindow.h | 28 ---
gmvc/mainwindow.ui | 24 ---
gmvc/model.cpp | 37 ----
gmvc/model.h | 20 --
60 files changed, 860 insertions(+), 1575 deletions(-)
rename GScribo/{ => PagesViewer}/listmodel.cpp (62%)
rename GScribo/{ => PagesViewer}/listmodel.h (80%)
create mode 100644 GScribo/PagesViewer/pageswidget.cpp
rename GScribo/{ => PagesViewer}/pageswidget.h (67%)
create mode 100644 GScribo/Preferences/generaloptions.ui
create mode 100644 GScribo/Preferences/ocroptions.ui
create mode 100644 GScribo/Preferences/optionwidget.cpp
create mode 100644 GScribo/Preferences/optionwidget.h
create mode 100644 GScribo/Preferences/preferencesdialog.ui
create mode 100644 GScribo/Preferences/preprocessingoptions.ui
create mode 100644 GScribo/Preferences/segmentationoptions.ui
rename GScribo/{ => Processing}/preprocess.cpp (100%)
rename GScribo/{ => Processing}/preprocess.h (100%)
rename GScribo/{ => Processing}/process.cpp (100%)
rename GScribo/{ => Processing}/process.h (100%)
rename GScribo/{ => Processing}/progressdialog.cpp (100%)
rename GScribo/{ => Processing}/progressdialog.h (100%)
rename GScribo/{ => Processing}/runner.cpp (95%)
rename GScribo/{ => Processing}/runner.h (99%)
create mode 100644 GScribo/Rendering/polygonitem.cpp
rename GScribo/{ => Rendering}/polygonitem.h (80%)
create mode 100644 GScribo/Rendering/scene.cpp
rename GScribo/{ => Rendering}/scene.h (85%)
rename GScribo/{ => Rendering}/selection.cpp (94%)
rename GScribo/{ => Rendering}/selection.h (100%)
rename {XmlParser => GScribo}/configs.cpp (95%)
rename GScribo/{config.h => configs.h} (93%)
delete mode 100644 GScribo/icon.cpp
delete mode 100644 GScribo/icon.h
delete mode 100644 GScribo/pageswidget.cpp
delete mode 100644 GScribo/polygonitem.cpp
copy {XmlParser => GScribo}/region.h (100%)
delete mode 100644 GScribo/scene.cpp
delete mode 100644 GScribo/ui_mainwindow.h
delete mode 100644 MVC/MVC.pro
delete mode 100644 MVC/MVC.pro.user
delete mode 100644 MVC/itemdelegate.cpp
delete mode 100644 MVC/itemdelegate.h
delete mode 100644 MVC/listmodel.cpp
delete mode 100644 MVC/listmodel.h
delete mode 100644 MVC/main.cpp
delete mode 100644 MVC/mainwindow.cpp
delete mode 100644 MVC/mainwindow.h
delete mode 100644 MVC/mainwindow.ui
delete mode 100644 MVC/ui_mainwindow.h
delete mode 100644 gmvc/gmodel.cpp
delete mode 100644 gmvc/gmodel.h
delete mode 100644 gmvc/gmvc.pro
delete mode 100644 gmvc/gmvc.pro.user
delete mode 100644 gmvc/main.cpp
delete mode 100644 gmvc/mainwindow.cpp
delete mode 100644 gmvc/mainwindow.h
delete mode 100644 gmvc/mainwindow.ui
delete mode 100644 gmvc/model.cpp
delete mode 100644 gmvc/model.h
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
index 57041dc..9ca65f6 100644
--- a/GScribo/GScribo.pro
+++ b/GScribo/GScribo.pro
@@ -1,8 +1,7 @@
# -------------------------------------------------
# Project created by QtCreator 2013-01-21T09:20:54
# -------------------------------------------------
-QT += opengl \
- xml
+QT += xml
INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/ \
/lrde/home/stage/froger_a/olena/scribo/ \
/lrde/home/stage/froger_a/olena/_build/scribo/demo/
@@ -15,15 +14,42 @@ TARGET = GScribo
TEMPLATE = app
SOURCES += main.cpp \
mainwindow.cpp \
- scene.cpp \
- selection.cpp \
- pageswidget.cpp \
- listmodel.cpp \
- icon.cpp
+ configs.cpp \
+ Rendering/scene.cpp \
+ Rendering/selection.cpp \
+ PagesViewer/pageswidget.cpp \
+ PagesViewer/listmodel.cpp \
+ Preferences/segmentationoptions.cpp \
+ Preferences/preprocessingoptions.cpp \
+ Preferences/ocroptions.cpp \
+ Preferences/generaloptions.cpp \
+ Preferences/optionwidget.cpp \
+ Preferences/preferencesdialog.cpp \
+ Rendering/polygonitem.cpp \
+ Processing/progressdialog.cpp \
+ Processing/process.cpp \
+ Processing/preprocess.cpp
HEADERS += mainwindow.h \
- scene.h \
- selection.h \
- pageswidget.h \
- listmodel.h \
- icon.h
-FORMS += mainwindow.ui
+ configs.h \
+ region.h \
+ Rendering/scene.h \
+ Rendering/selection.h \
+ PagesViewer/pageswidget.h \
+ PagesViewer/listmodel.h \
+ Preferences/segmentationoptions.h \
+ Preferences/preprocessingoptions.h \
+ Preferences/ocroptions.h \
+ Preferences/generaloptions.h \
+ Preferences/optionwidget.h \
+ Preferences/preferencesdialog.h \
+ Rendering/polygonitem.h \
+ Processing/preprocess.h \
+ Processing/progressdialog.h \
+ Processing/process.h \
+ dir.h
+FORMS += mainwindow.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
index 13a97a6..e3df61a 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -56,55 +56,46 @@
<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="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>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-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</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-nVYZaO</value>
- <value type="QString">GNOME_KEYRING_PID=27939</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-kTB4J7</value>
+ <value type="QString">GNOME_KEYRING_PID=27564</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">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt/GScribo/Preferences</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=28014</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</value>
+ <value type="QString">SSH_AGENT_PID=27639</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</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>
@@ -128,35 +119,36 @@
<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-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</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-nVYZaO</value>
- <value type="QString">GNOME_KEYRING_PID=27939</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-kTB4J7</value>
+ <value type="QString">GNOME_KEYRING_PID=27564</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">OLDPWD=/lrde/home/stage/froger_a/qt</value>
+ <value type="QString">OLDPWD=/lrde/home/stage/froger_a/qt/GScribo/Preferences</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=28014</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</value>
+ <value type="QString">SSH_AGENT_PID=27639</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</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>
@@ -176,6 +168,50 @@
<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-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</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-kTB4J7</value>
+ <value type="QString">GNOME_KEYRING_PID=27564</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/GScribo/Preferences</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=27639</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</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/GScribo</value>
<value key="cleanConfig" type="bool">true</value>
<valuelist key="makeargs" type="QVariantList">
<value type="QString">clean</value>
@@ -183,28 +219,9 @@
</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>
diff --git a/GScribo/listmodel.cpp b/GScribo/PagesViewer/listmodel.cpp
similarity index 62%
rename from GScribo/listmodel.cpp
rename to GScribo/PagesViewer/listmodel.cpp
index de0087a..6fd60db 100644
--- a/GScribo/listmodel.cpp
+++ b/GScribo/PagesViewer/listmodel.cpp
@@ -18,13 +18,25 @@ QVariant ListModel::data(const QModelIndex& index, int role) const
if(role == Qt::DecorationRole)
return QIcon(pixmaps.value(index.row()).scaled(QSize(200, 200), Qt::KeepAspectRatio, Qt::SmoothTransformation));
+ // Store the original pixmap in a custom place.
+ if(role == Qt::UserRole)
+ return pixmaps.value(index.row());
+
+ // Store the path of the pixmap in an other custom place.
+ if(role == Qt::UserRole+1)
+ return filenames.value(index.row());
+
return QVariant();
}
-void ListModel::addPixmap(const QPixmap& pixmap)
+void ListModel::addPixmap(const QString& filename, const QPixmap& pixmap)
{
int row = pixmaps.size();
+
beginInsertRows(QModelIndex(), row, row);
+
pixmaps.insert(row, pixmap);
+ filenames.insert(row, filename);
+
endInsertRows();
}
diff --git a/GScribo/listmodel.h b/GScribo/PagesViewer/listmodel.h
similarity index 80%
rename from GScribo/listmodel.h
rename to GScribo/PagesViewer/listmodel.h
index 03469b5..2f0350e 100644
--- a/GScribo/listmodel.h
+++ b/GScribo/PagesViewer/listmodel.h
@@ -14,10 +14,11 @@ class ListModel:
explicit ListModel(QObject *parent = 0);
int rowCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role = Qt::DecorationRole) const;
- void addPixmap(const QPixmap& pixmap);
+ void addPixmap(const QString& filename, const QPixmap& pixmap);
private:
QList<QPixmap> pixmaps;
+ QList<QString> filenames;
};
#endif // LISTMODEL_H
diff --git a/GScribo/PagesViewer/pageswidget.cpp b/GScribo/PagesViewer/pageswidget.cpp
new file mode 100644
index 0000000..712f5eb
--- /dev/null
+++ b/GScribo/PagesViewer/pageswidget.cpp
@@ -0,0 +1,30 @@
+#include "pageswidget.h"
+
+PagesWidget::PagesWidget(QWidget *parent):
+ QListView(parent)
+{
+ setUniformItemSizes(true);
+ setViewMode(QListView::IconMode);
+ setIconSize(QSize(200, 200));
+ setFlow(QListView::TopToBottom);
+ setMovement(QListView::Static);
+ setSpacing(10);
+ setWrapping(false);
+ setModel(&model);
+
+ connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(getSelection(QModelIndex)));
+}
+
+void PagesWidget::addPixmap(const QString& filename, const QPixmap &pixmap)
+{
+ model.addPixmap(filename, pixmap);
+}
+
+void PagesWidget::getSelection(const QModelIndex &index)
+{
+ // Get the pixmap and the path of the icon to send it to the scene and draw it.
+ QPixmap pixmap = index.data(Qt::UserRole).value<QPixmap>();
+ QString filename = index.data(Qt::UserRole+1).toString();
+
+ emit selectionClicked(filename, pixmap);
+}
diff --git a/GScribo/pageswidget.h b/GScribo/PagesViewer/pageswidget.h
similarity index 67%
rename from GScribo/pageswidget.h
rename to GScribo/PagesViewer/pageswidget.h
index fade0d6..ae17a4a 100644
--- a/GScribo/pageswidget.h
+++ b/GScribo/PagesViewer/pageswidget.h
@@ -1,11 +1,11 @@
#ifndef PAGESWIDGET_H
#define PAGESWIDGET_H
-#include <QWidget>
-#include <QListView>
-#include <QPainter>
#include <QPushButton>
#include <QScrollBar>
+#include <QListView>
+#include <QPainter>
+#include <QWidget>
#include "listmodel.h"
@@ -20,6 +20,13 @@ class PagesWidget:
private:
ListModel model;
+
+ public slots:
+ void getSelection(const QModelIndex &index);
+
+ signals:
+ void clicked(const QModelIndex &index);
+ void selectionClicked(const QString& filename, const QPixmap& pixmap);
};
#endif // PAGESWIDGET_H
diff --git a/GScribo/Preferences/generaloptions.ui b/GScribo/Preferences/generaloptions.ui
new file mode 100644
index 0000000..5839c27
--- /dev/null
+++ b/GScribo/Preferences/generaloptions.ui
@@ -0,0 +1,100 @@
+<?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.ui b/GScribo/Preferences/ocroptions.ui
new file mode 100644
index 0000000..d001c64
--- /dev/null
+++ b/GScribo/Preferences/ocroptions.ui
@@ -0,0 +1,62 @@
+<?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.cpp b/GScribo/Preferences/optionwidget.cpp
new file mode 100644
index 0000000..75ee55d
--- /dev/null
+++ b/GScribo/Preferences/optionwidget.cpp
@@ -0,0 +1,14 @@
+#include "optionwidget.h"
+
+OptionWidget::OptionWidget(QWidget * parent) :
+ QWidget(parent)
+{
+}
+
+void OptionWidget::saveConfig()
+{
+}
+
+void OptionWidget::loadConfig()
+{
+}
diff --git a/GScribo/Preferences/optionwidget.h b/GScribo/Preferences/optionwidget.h
new file mode 100644
index 0000000..ecdb650
--- /dev/null
+++ b/GScribo/Preferences/optionwidget.h
@@ -0,0 +1,15 @@
+#ifndef OPTIONWIDGET_H
+#define OPTIONWIDGET_H
+
+#include <QWidget>
+
+struct OptionWidget :
+ public QWidget
+{
+ explicit OptionWidget(QWidget * parent);
+
+ virtual void loadConfig();
+ virtual void saveConfig();
+};
+
+#endif // OPTIONWIDGET_H
diff --git a/GScribo/Preferences/preferencesdialog.ui b/GScribo/Preferences/preferencesdialog.ui
new file mode 100644
index 0000000..1d40563
--- /dev/null
+++ b/GScribo/Preferences/preferencesdialog.ui
@@ -0,0 +1,121 @@
+<?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.ui b/GScribo/Preferences/preprocessingoptions.ui
new file mode 100644
index 0000000..962cf49
--- /dev/null
+++ b/GScribo/Preferences/preprocessingoptions.ui
@@ -0,0 +1,76 @@
+<?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.ui b/GScribo/Preferences/segmentationoptions.ui
new file mode 100644
index 0000000..485e448
--- /dev/null
+++ b/GScribo/Preferences/segmentationoptions.ui
@@ -0,0 +1,52 @@
+<?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/preprocess.cpp b/GScribo/Processing/preprocess.cpp
similarity index 100%
rename from GScribo/preprocess.cpp
rename to GScribo/Processing/preprocess.cpp
diff --git a/GScribo/preprocess.h b/GScribo/Processing/preprocess.h
similarity index 100%
rename from GScribo/preprocess.h
rename to GScribo/Processing/preprocess.h
index 0ca01d3..d65357f 100644
--- a/GScribo/preprocess.h
+++ b/GScribo/Processing/preprocess.h
@@ -1,10 +1,10 @@
#ifndef PREPROCESS_H
#define PREPROCESS_H
-#include <QObject>
+#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
#include <mln/core/image/image2d.hh>
#include <mln/value/rgb8.hh>
-#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
+#include <QObject>
using namespace scribo::toolchain::internal;
diff --git a/GScribo/process.cpp b/GScribo/Processing/process.cpp
similarity index 100%
rename from GScribo/process.cpp
rename to GScribo/Processing/process.cpp
diff --git a/GScribo/process.h b/GScribo/Processing/process.h
similarity index 100%
rename from GScribo/process.h
rename to GScribo/Processing/process.h
index 2759d00..579a988 100644
--- a/GScribo/process.h
+++ b/GScribo/Processing/process.h
@@ -1,9 +1,9 @@
#ifndef PROCESS_H
#define PROCESS_H
-#include <QObject>
-#include <mln/core/image/image2d.hh>
#include <scribo/toolchain/internal/content_in_doc_functor.hh>
+#include <mln/core/image/image2d.hh>
+#include <QObject>
using namespace scribo::toolchain::internal;
diff --git a/GScribo/progressdialog.cpp b/GScribo/Processing/progressdialog.cpp
similarity index 100%
rename from GScribo/progressdialog.cpp
rename to GScribo/Processing/progressdialog.cpp
diff --git a/GScribo/progressdialog.h b/GScribo/Processing/progressdialog.h
similarity index 100%
rename from GScribo/progressdialog.h
rename to GScribo/Processing/progressdialog.h
diff --git a/GScribo/runner.cpp b/GScribo/Processing/runner.cpp
similarity index 95%
rename from GScribo/runner.cpp
rename to GScribo/Processing/runner.cpp
index 8dfd8b0..ebde288 100644
--- a/GScribo/runner.cpp
+++ b/GScribo/Processing/runner.cpp
@@ -12,8 +12,6 @@ static QString get_pathto(const QString& file, const QString localdirsuffix = QS
if (f.exists())
return SCRIBO_PREFIX_BINDIR;
- //qDebug() << "FATAL ERROR: Can't locate file: " + file;
-
return "";
}
@@ -42,7 +40,6 @@ void Runner::run()
export_as();
break;
}
- //qDebug() << "Done.";
}
void Runner::stop()
@@ -84,7 +81,6 @@ image2d<bool> Runner::preprocess(const image2d<value::rgb8>& ima)
// Perform preprocessing.
f(ima);
- //qDebug() << "Preprocess Done.";
return f.output;
}
@@ -124,8 +120,6 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
output_dir = file.absolutePath();
else if (conf->generalSaveXmlCustomDir())
output_dir = conf->generalSaveXmlCustomDirPath();
- //else
- //qDebug() << "runner::progress - Invalid xml saving option!";
QDir dir(output_dir);
if (!dir.exists() && !dir.mkpath(output_dir))
@@ -138,13 +132,11 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
// Perform text detection.
f(original_ima, processed_ima);
emit xml_saved(filename);
- //qDebug() << "Process Done.";
}
// Export related stuff
-
void Runner::start_export(const QString& imgfile,
const QString& xmlfile, const QString& outfile)
{
diff --git a/GScribo/runner.h b/GScribo/Processing/runner.h
similarity index 99%
rename from GScribo/runner.h
rename to GScribo/Processing/runner.h
index 56a07df..51969e3 100644
--- a/GScribo/runner.h
+++ b/GScribo/Processing/runner.h
@@ -1,18 +1,19 @@
#ifndef RUNNER_H
#define RUNNER_H
-#include <QThread>
+#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 <mln/core/image/image2d.hh>
-#include <mln/value/rgb8.hh>
-#include <mln/io/magick/load.hh>
-#include "dir.h"
-#include "region.h"
-#include "process.h"
+
#include "preprocess.h"
+#include "process.h"
#include "configs.h"
+#include "region.h"
+#include "dir.h"
using namespace mln;
diff --git a/GScribo/Rendering/polygonitem.cpp b/GScribo/Rendering/polygonitem.cpp
new file mode 100644
index 0000000..6bdcd3e
--- /dev/null
+++ b/GScribo/Rendering/polygonitem.cpp
@@ -0,0 +1,76 @@
+#include "polygonitem.h"
+
+PolygonItem::PolygonItem(QGraphicsItem *parent, QGraphicsScene *scene)
+ : QGraphicsPolygonItem(parent, scene)
+{
+ init();
+}
+
+PolygonItem::PolygonItem(const QPolygonF &polygon, QGraphicsItem *parent, QGraphicsScene *scene):
+ QGraphicsPolygonItem(polygon, parent, scene)
+{
+ init();
+}
+
+void PolygonItem::init()
+{
+ 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 PolygonItem::setColor(const QColor &color)
+{
+ selectedPen.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 200));
+ unselectedPen.setColor(color);
+
+ selectedBrush.setColor(color);
+ unselectedBrush.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 30));
+
+ setPen(selectedPen);
+ setBrush(selectedBrush);
+}
+
+QColor PolygonItem::color() const
+{
+ return selectedBrush.color();
+}
+
+void PolygonItem::repaint(const QRectF& rect, bool clic)
+{
+ bool sel;
+
+ // For optimization, do first an intersection by bounding rectangle beetween items and selection and then an intersection by shape.
+ if(clic)
+ sel = (boundingRect().width() == 0 || boundingRect().height() == 0 || boundingRect().contains(rect.bottomRight())) && shape().contains(rect.bottomRight());
+ else
+ sel = (boundingRect().width() == 0 || boundingRect().height() == 0 || boundingRect().intersects(rect)) && shape().intersects(rect);
+
+ // Change items brush and pen if it's selectionned or not.
+ if(sel)
+ {
+ if(pen() != selectedPen)
+ {
+ setPen(selectedPen);
+ setBrush(selectedBrush);
+ update(rect);
+ }
+ }
+ else
+ {
+ if(pen() != unselectedPen)
+ {
+ setPen(unselectedPen);
+ setBrush(unselectedBrush);
+ update(rect);
+ }
+ }
+}
diff --git a/GScribo/polygonitem.h b/GScribo/Rendering/polygonitem.h
similarity index 80%
rename from GScribo/polygonitem.h
rename to GScribo/Rendering/polygonitem.h
index 50abf61..893bde3 100644
--- a/GScribo/polygonitem.h
+++ b/GScribo/Rendering/polygonitem.h
@@ -13,17 +13,16 @@ class PolygonItem :
public:
explicit PolygonItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
explicit PolygonItem(const QPolygonF& path, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
- ~PolygonItem();
void setColor(const QColor& color);
QColor color() const;
private:
void init();
- QPen *selectedPen;
- QPen *unselectedPen;
- QBrush *selectedBrush;
- QBrush *unselectedBrush;
+ QPen selectedPen;
+ QPen unselectedPen;
+ QBrush selectedBrush;
+ QBrush unselectedBrush;
public slots:
void repaint(const QRectF& rect, bool clic);
diff --git a/GScribo/Rendering/scene.cpp b/GScribo/Rendering/scene.cpp
new file mode 100644
index 0000000..5035b28
--- /dev/null
+++ b/GScribo/Rendering/scene.cpp
@@ -0,0 +1,101 @@
+#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;
+ clic = false;
+
+ // Disable the scene size adaptation to items rect with a non null rect.
+ setSceneRect(0, 0, 0, 1);
+ addItem(&selection);
+}
+
+void Scene::removeItems()
+{
+ QList<QGraphicsItem *> itemsList = items();
+ QGraphicsItem *i;
+
+ // Remove all items on the scene expect the selection.
+ foreach(i, itemsList)
+ {
+ if(i != &selection)
+ delete i;
+ }
+}
+
+void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+ if(event->button() == Qt::LeftButton && !isPressing)
+ {
+ isPressing = true;
+ clic = true;
+
+ pressPos = event->scenePos();
+ selection.show();
+ }
+}
+
+void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+ if(isPressing)
+ {
+ clic = false;
+
+ // 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;
+
+ // If no selection, store the click position in the selection rectangle.
+ if(clic)
+ selection.setRect(QRectF(QPointF(0, 0), event->scenePos()));
+
+ emit repaintItem(selection.rect(), clic);
+
+ selection.setRect(0, 0, 0, 0);
+ selection.hide();
+ }
+}
+
+void Scene::setBackground(const QString& filename, const QPixmap& pixmap)
+{
+ if(backgroundPath != filename)
+ {
+ backgroundPath = filename;
+
+ setSceneRect(pixmap.rect());
+ setBackgroundBrush(QBrush(pixmap));
+ }
+}
diff --git a/GScribo/scene.h b/GScribo/Rendering/scene.h
similarity index 85%
rename from GScribo/scene.h
rename to GScribo/Rendering/scene.h
index 86ca8c7..c4a627a 100644
--- a/GScribo/scene.h
+++ b/GScribo/Rendering/scene.h
@@ -17,7 +17,6 @@ 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);
- ~Scene();
void removeItems();
protected:
@@ -28,11 +27,15 @@ class Scene :
private:
void init();
- Selection *selection;
+ QString backgroundPath;
+ Selection selection;
QPointF pressPos;
bool isPressing;
bool clic;
+ public slots:
+ void setBackground(const QString& filename, const QPixmap& pixmap);
+
signals:
void repaintItem(const QRectF& rect, bool clic);
};
diff --git a/GScribo/selection.cpp b/GScribo/Rendering/selection.cpp
similarity index 94%
rename from GScribo/selection.cpp
rename to GScribo/Rendering/selection.cpp
index 6020312..438e92e 100644
--- a/GScribo/selection.cpp
+++ b/GScribo/Rendering/selection.cpp
@@ -20,12 +20,15 @@ Selection::Selection(qreal x, qreal y, qreal width, qreal height, QGraphicsScene
void Selection::init()
{
+ // Always drawn on top of the scene.
setZValue(INT_MAX);
+
QPen pen;
pen.setStyle(Qt::DashLine);
pen.setCapStyle(Qt::SquareCap);
pen.setCosmetic(true);
setPen(pen);
+
QBrush brush;
brush.setStyle(Qt::Dense4Pattern);
brush.setColor(QColor::fromRgb(80, 200, 10, 100));
diff --git a/GScribo/selection.h b/GScribo/Rendering/selection.h
similarity index 100%
rename from GScribo/selection.h
rename to GScribo/Rendering/selection.h
diff --git a/XmlParser/configs.cpp b/GScribo/configs.cpp
similarity index 95%
rename from XmlParser/configs.cpp
rename to GScribo/configs.cpp
index 59df3db..e003442 100644
--- a/XmlParser/configs.cpp
+++ b/GScribo/configs.cpp
@@ -1,6 +1,4 @@
-#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
#include "configs.h"
-#include "region.h"
Configs::Configs()
: QSettings("Olena-Scribo", "viewer")
@@ -13,6 +11,7 @@ Configs * Configs::getInstance()
return conf;
}
+// Preprocessing configs.
bool Configs::preprocessingSubsample()
{
return value("preprocessing/subsample", false).toBool();
@@ -23,6 +22,8 @@ void Configs::setPreprocessingSubsample(bool b)
setValue("preprocessing/subsample", b);
}
+
+
bool Configs::preprocessingRemoveBg()
{
return value("preprocessing/remove_bg", false).toBool();
@@ -33,6 +34,8 @@ void Configs::setPreprocessingRemoveBg(bool b)
setValue("preprocessing/remove_bg", b);
}
+
+
bool Configs::preprocessingDeskew()
{
return value("preprocessing/deskew", false).toBool();
@@ -43,6 +46,8 @@ void Configs::setPreprocessingDeskew(bool b)
setValue("preprocessing/deskew", b);
}
+
+
bool Configs::preprocessingRemoveNoise()
{
return value("preprocessing/remove_noise", true).toBool();
@@ -53,6 +58,8 @@ void Configs::setPreprocessingRemoveNoise(bool b)
setValue("preprocessing/remove_noise", b);
}
+
+
int Configs::preprocessingBinAlgo()
{
return value("preprocessing/bin_algo", scribo::toolchain::internal::SauvolaMs).toInt();
@@ -63,6 +70,11 @@ void Configs::setPreprocessingBinAlgo(int algo)
setValue("preprocessing/bin_algo", algo);
}
+
+
+
+
+// Segmentation configs.
int Configs::segmentationFindSeps()
{
return value("segmentation/find_seps", Separator::Both).toInt();
@@ -73,6 +85,11 @@ void Configs::setSegmentationFindSeps(int seps)
setValue("segmentation/find_seps", seps);
}
+
+
+
+
+// OCR configs.
bool Configs::ocrEnabled()
{
return value("ocr/enabled", true).toBool();
@@ -83,6 +100,8 @@ void Configs::setOcrEnabled(bool b)
setValue("ocr/enabled", b);
}
+
+
QString Configs::ocrLanguage()
{
return value("ocr/language", 0).toString();
@@ -93,6 +112,11 @@ void Configs::setOcrLanguage(const QString &lang)
setValue("ocr/language", lang);
}
+
+
+
+
+// OCR configs.
bool Configs::generalSaveXmlEnabled()
{
return value("general/save_xml/enabled", true).toBool();
@@ -103,6 +127,8 @@ void Configs::setGeneralSaveXmlEnabled(bool b)
setValue("general/save_xml/enabled", b);
}
+
+
bool Configs::generalSaveXmlSameDir()
{
return value("general/save_xml/same_dir", true).toBool();
@@ -113,6 +139,8 @@ void Configs::setGeneralSaveXmlSameDir(bool b)
setValue("general/save_xml/same_dir", b);
}
+
+
bool Configs::generalSaveXmlCustomDir()
{
return value("general/save_xml/custom_dir", false).toBool();
@@ -123,6 +151,8 @@ void Configs::setGeneralSaveXmlCustomDir(bool b)
setValue("general/save_xml/custom_dir", b);
}
+
+
QString Configs::generalSaveXmlCustomDirPath()
{
return value("general/save_xml/custom_dir_path", QDir::tempPath()).toString();
diff --git a/GScribo/config.h b/GScribo/configs.h
similarity index 93%
rename from GScribo/config.h
rename to GScribo/configs.h
index 6677527..aff4889 100644
--- a/GScribo/config.h
+++ b/GScribo/configs.h
@@ -1,9 +1,12 @@
#ifndef CONFIGS_H
#define CONFIGS_H
+#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
#include <QSettings>
#include <QDir>
+#include "region.h"
+
class Configs :
public QSettings
{
diff --git a/GScribo/dir.h b/GScribo/dir.h
index cb951f1..a6c036b 100644
--- a/GScribo/dir.h
+++ b/GScribo/dir.h
@@ -1,7 +1,7 @@
#ifndef DIR_H
#define DIR_H
-#define SCRIBO_PREFIX_BINDIR "/usr/local/bin"
#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/icon.cpp b/GScribo/icon.cpp
deleted file mode 100644
index 5aca60f..0000000
--- a/GScribo/icon.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "icon.h"
-
-Icon::Icon(const QPixmap &pixmap) :
- QIcon(pixmap)
-{
-}
-
-QString Icon::path() const
-{
- return filename;
-}
-
-QPixmap * Icon::pixmap()
-{
- return pix;
-}
-
-void Icon::setPath(QString path)
-{
- filename = path;
-}
-
-void Icon::setPixmap(QPixmap *pixmap)
-{
- pix = pixmap;
-}
diff --git a/GScribo/icon.h b/GScribo/icon.h
deleted file mode 100644
index ebedbe7..0000000
--- a/GScribo/icon.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef ICON_H
-#define ICON_H
-
-#include <QIcon>
-
-class Icon :
- QIcon
-{
- public:
- explicit Icon(const QPixmap& pixmap);
- QString path() const;
- QPixmap * pixmap();
- void setPath(QString path);
- void setPixmap(QPixmap *pixmap);
-
- private:
- QString filename;
- QPixmap *pix;
-};
-
-#endif // ICON_H
diff --git a/GScribo/mainwindow.ui b/GScribo/mainwindow.ui
index 3a174ec..0d91002 100644
--- a/GScribo/mainwindow.ui
+++ b/GScribo/mainwindow.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>671</width>
- <height>436</height>
+ <width>800</width>
+ <height>600</height>
</rect>
</property>
<property name="windowTitle">
@@ -23,8 +23,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>671</width>
- <height>23</height>
+ <width>800</width>
+ <height>21</height>
</rect>
</property>
</widget>
diff --git a/GScribo/pageswidget.cpp b/GScribo/pageswidget.cpp
deleted file mode 100644
index 1652062..0000000
--- a/GScribo/pageswidget.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "pageswidget.h"
-
-PagesWidget::PagesWidget(QWidget *parent):
- QListView(parent)
-{
- setUniformItemSizes(true);
- setViewMode(QListView::IconMode);
- setIconSize(QSize(200, 200));
- setFlow(QListView::TopToBottom);
- setMovement(QListView::Static);
- setSpacing(10);
- setWrapping(false);
- setModel(&model);
-}
-
-void PagesWidget::addPixmap(const QString& filename, const QPixmap &pixmap)
-{
- model.addPixmap(pixmap);
-}
diff --git a/GScribo/polygonitem.cpp b/GScribo/polygonitem.cpp
deleted file mode 100644
index 2c20dbf..0000000
--- a/GScribo/polygonitem.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-#include "polygonitem.h"
-
-PolygonItem::PolygonItem(QGraphicsItem *parent, QGraphicsScene *scene)
- : QGraphicsPolygonItem(parent, scene)
-{
- init();
-}
-
-PolygonItem::PolygonItem(const QPolygonF &polygon, QGraphicsItem *parent, QGraphicsScene *scene):
- QGraphicsPolygonItem(polygon, parent, scene)
-{
- init();
-}
-
-PolygonItem::~PolygonItem()
-{
- delete selectedPen;
- delete unselectedPen;
- delete selectedBrush;
- delete unselectedBrush;
-}
-
-void PolygonItem::init()
-{
- selectedPen = new QPen(Qt::SolidLine);
- unselectedPen = new QPen(Qt::SolidLine);
- selectedPen->setWidthF(2);
- unselectedPen->setWidth(0);
- selectedPen->setCapStyle(Qt::SquareCap);
- unselectedPen->setCapStyle(Qt::SquareCap);
- selectedBrush = new QBrush(Qt::SolidPattern);
- unselectedBrush = new QBrush(Qt::SolidPattern);
-}
-
-void PolygonItem::setColor(const QColor &color)
-{
- selectedPen->setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 200));
- unselectedPen->setColor(color);
- selectedBrush->setColor(color);
- unselectedBrush->setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 30));
- setPen(*selectedPen);
- setBrush(*selectedBrush);
-}
-
-QColor PolygonItem::color() const
-{
- return selectedBrush->color();
-}
-
-void PolygonItem::repaint(const QRectF& rect, bool clic)
-{
- bool sel;
- if(clic)
- sel = (boundingRect().width() == 0 || boundingRect().height() == 0 || boundingRect().contains(rect.bottomRight())) && shape().contains(rect.bottomRight());
- else
- sel = (boundingRect().width() == 0 || boundingRect().height() == 0 || boundingRect().intersects(rect)) && shape().intersects(rect);
- if(sel)
- {
- if(pen() != *selectedPen)
- {
- setPen(*selectedPen);
- setBrush(*selectedBrush);
- update(rect);
- }
- }
- else
- {
- if(pen() != *unselectedPen)
- {
- setPen(*unselectedPen);
- setBrush(*unselectedBrush);
- update(rect);
- }
- }
-}
diff --git a/XmlParser/region.h b/GScribo/region.h
similarity index 100%
copy from XmlParser/region.h
copy to GScribo/region.h
diff --git a/GScribo/scene.cpp b/GScribo/scene.cpp
deleted file mode 100644
index ee2007a..0000000
--- a/GScribo/scene.cpp
+++ /dev/null
@@ -1,82 +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();
-}
-
-Scene::~Scene()
-{
- delete selection;
-}
-
-void Scene::init()
-{
- isPressing = false;
- clic = false;
- selection = new Selection(this);
-}
-
-void Scene::removeItems()
-{
- QList<QGraphicsItem *> itemsList = items();
- QGraphicsItem *i;
- foreach(i, itemsList)
- {
- if(i != selection)
- delete i;
- }
-}
-
-void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- if(event->button() == Qt::LeftButton && !isPressing)
- {
- isPressing = true;
- clic = true;
- pressPos = event->scenePos();
- selection->show();
- }
-}
-
-void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
-{
- if(isPressing)
- {
- clic = false;
- 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;
- if(clic)
- selection->setRect(QRectF(QPointF(0, 0), event->scenePos()));
- emit repaintItem(selection->rect(), clic);
- selection->setRect(0, 0, 0, 0);
- selection->hide();
- }
-}
diff --git a/GScribo/ui_mainwindow.h b/GScribo/ui_mainwindow.h
deleted file mode 100644
index 7ba54a5..0000000
--- a/GScribo/ui_mainwindow.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/********************************************************************************
-** Form generated from reading UI file 'mainwindow.ui'
-**
-** Created: Wed Jan 23 15:39:30 2013
-** by: Qt User Interface Compiler version 4.6.3
-**
-** WARNING! All changes made in this file will be lost when recompiling UI file!
-********************************************************************************/
-
-#ifndef UI_MAINWINDOW_H
-#define UI_MAINWINDOW_H
-
-#include <QtCore/QVariant>
-#include <QtGui/QAction>
-#include <QtGui/QApplication>
-#include <QtGui/QButtonGroup>
-#include <QtGui/QHeaderView>
-#include <QtGui/QMainWindow>
-#include <QtGui/QMenuBar>
-#include <QtGui/QStatusBar>
-#include <QtGui/QToolBar>
-#include <QtGui/QWidget>
-
-QT_BEGIN_NAMESPACE
-
-class Ui_MainWindow
-{
-public:
- QWidget *centralWidget;
- QMenuBar *menuBar;
- QToolBar *mainToolBar;
- QStatusBar *statusBar;
-
- void setupUi(QMainWindow *MainWindow)
- {
- if (MainWindow->objectName().isEmpty())
- MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
- MainWindow->resize(671, 436);
- centralWidget = new QWidget(MainWindow);
- centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
- centralWidget->setEnabled(true);
- MainWindow->setCentralWidget(centralWidget);
- menuBar = new QMenuBar(MainWindow);
- menuBar->setObjectName(QString::fromUtf8("menuBar"));
- menuBar->setGeometry(QRect(0, 0, 671, 23));
- MainWindow->setMenuBar(menuBar);
- mainToolBar = new QToolBar(MainWindow);
- mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
- mainToolBar->setFloatable(false);
- MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
- statusBar = new QStatusBar(MainWindow);
- statusBar->setObjectName(QString::fromUtf8("statusBar"));
- MainWindow->setStatusBar(statusBar);
-
- retranslateUi(MainWindow);
-
- QMetaObject::connectSlotsByName(MainWindow);
- } // setupUi
-
- void retranslateUi(QMainWindow *MainWindow)
- {
- MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
- } // retranslateUi
-
-};
-
-namespace Ui {
- class MainWindow: public Ui_MainWindow {};
-} // namespace Ui
-
-QT_END_NAMESPACE
-
-#endif // UI_MAINWINDOW_H
diff --git a/MVC/MVC.pro b/MVC/MVC.pro
deleted file mode 100644
index 1a4d48c..0000000
--- a/MVC/MVC.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-# -------------------------------------------------
-# Project created by QtCreator 2013-01-22T16:00:23
-# -------------------------------------------------
-TARGET = MVC
-TEMPLATE = app
-SOURCES += main.cpp \
- mainwindow.cpp \
- itemdelegate.cpp \
- listmodel.cpp
-HEADERS += mainwindow.h \
- listmodel.h \
- itemdelegate.h
-FORMS += mainwindow.ui
diff --git a/MVC/MVC.pro.user b/MVC/MVC.pro.user
deleted file mode 100644
index 1c6e9ba..0000000
--- a/MVC/MVC.pro.user
+++ /dev/null
@@ -1,251 +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">MVC.pro</value>
- </data>
- <data>
- <variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">MVC</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-iL4mXwl7ak,guid=7e9603aab929b1f1fce663d30068f708</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-kN7FtK</value>
- <value type="QString">GNOME_KEYRING_PID=25582</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/MVC</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=25657</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-RiFAp25591/agent.25591</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmJKU1QW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358926796.562496-56304996</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/MVC/MVC.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/MVC</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-iL4mXwl7ak,guid=7e9603aab929b1f1fce663d30068f708</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-kN7FtK</value>
- <value type="QString">GNOME_KEYRING_PID=25582</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/MVC</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=25657</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-RiFAp25591/agent.25591</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmJKU1QW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358926796.562496-56304996</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/MVC</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>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/MVC/itemdelegate.cpp b/MVC/itemdelegate.cpp
deleted file mode 100644
index 5f67a91..0000000
--- a/MVC/itemdelegate.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "itemdelegate.h"
-
-ItemDelegate::ItemDelegate(QWidget *parent):
- QAbstractItemDelegate(parent)
-{
-}
-
-void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- QString path = index.data(Qt::DecorationRole).toString();
- QPixmap pixmap(path);
-
- painter->drawPixmap(0, index.row() * 210, 200, 200, pixmap);
-}
-
-QSize ItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- return QSize(200, 400);
-}
diff --git a/MVC/itemdelegate.h b/MVC/itemdelegate.h
deleted file mode 100644
index 1c653d5..0000000
--- a/MVC/itemdelegate.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef ITEMDELEGATE_H
-#define ITEMDELEGATE_H
-
-#include <QItemDelegate>
-#include <QLabel>
-#include <QPainter>
-
-class ItemDelegate:
- public QAbstractItemDelegate
-{
- public:
- explicit ItemDelegate(QWidget *parent = 0);
- void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
- QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
-};
-
-#endif // ITEMDELEGATE_H
diff --git a/MVC/listmodel.cpp b/MVC/listmodel.cpp
deleted file mode 100644
index 709853e..0000000
--- a/MVC/listmodel.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-#include "listmodel.h"
-
-ListModel::ListModel(QStringList list, QObject *parent):
- QAbstractListModel(parent)
-{
- this->list = list;
-}
-
-ListModel::~ListModel()
-{
-}
-
-int ListModel::rowCount(const QModelIndex &/*parent*/) const
-{
- return list.count();
-}
-
-QVariant ListModel::data(const QModelIndex &index, int role) const
-{
- if(index.isValid() && index.row() < list.size() && role == Qt::DecorationRole)
- return list.at(index.row());
- else
- return QVariant();
-}
-
-QVariant ListModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if(role != Qt::DecorationRole && orientation == Qt::Horizontal)
- return QVariant();
- else
- return QString("Row %1").arg(section);
-}
diff --git a/MVC/listmodel.h b/MVC/listmodel.h
deleted file mode 100644
index 35ae99c..0000000
--- a/MVC/listmodel.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef LISTMODEL_H
-#define LISTMODEL_H
-
-#include <QAbstractListModel>
-#include <QLabel>
-#include <QList>
-
-class ListModel:
- public QAbstractListModel
-{
- Q_OBJECT
-
- public:
- explicit ListModel(QStringList list, QObject *parent = 0);
- ~ListModel();
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role = Qt::DecorationRole) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DecorationRole) const;
-
- private:
- QStringList list;
-};
-
-#endif // LISTMODEL_H
diff --git a/MVC/main.cpp b/MVC/main.cpp
deleted file mode 100644
index ab61e7c..0000000
--- a/MVC/main.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <QtGui/QApplication>
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
- QApplication::setGraphicsSystem("raster");
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
-}
diff --git a/MVC/mainwindow.cpp b/MVC/mainwindow.cpp
deleted file mode 100644
index 72bf823..0000000
--- a/MVC/mainwindow.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
-{
- ui->setupUi(this);
-
- QStringList list;
- list << "/lrde/home/stage/froger_a/ppm/mp00032c.ppm" << "/lrde/home/stage/froger_a/ppm/mp00042.ppm" << "/lrde/home/stage/froger_a/ppm/mp00076.ppm";
-
- QAbstractItemModel *model = new ListModel(list);
-
- ItemDelegate *delegate = new ItemDelegate();
-
- QListView *view = new QListView;
- view->setModel(model);
- view->setItemDelegate(delegate);
- setCentralWidget(view);
- view->show();
-}
-
-MainWindow::~MainWindow()
-{
- delete ui;
-}
-
-void MainWindow::changeEvent(QEvent *e)
-{
- QMainWindow::changeEvent(e);
- switch (e->type())
- {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
diff --git a/MVC/mainwindow.h b/MVC/mainwindow.h
deleted file mode 100644
index 8bf225d..0000000
--- a/MVC/mainwindow.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include <QListView>
-
-#include "itemdelegate.h"
-#include "listmodel.h"
-
-namespace Ui
-{
- class MainWindow;
-}
-
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = 0);
- ~MainWindow();
-
- protected:
- void changeEvent(QEvent *e);
-
- private:
- Ui::MainWindow *ui;
-};
-
-#endif // MAINWINDOW_H
diff --git a/MVC/mainwindow.ui b/MVC/mainwindow.ui
deleted file mode 100644
index 97c03be..0000000
--- a/MVC/mainwindow.ui
+++ /dev/null
@@ -1,24 +0,0 @@
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>600</width>
- <height>400</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>MainWindow</string>
- </property>
- <widget class="QMenuBar" name="menuBar" />
- <widget class="QToolBar" name="mainToolBar" />
- <widget class="QWidget" name="centralWidget" />
- <widget class="QStatusBar" name="statusBar" />
- </widget>
- <layoutDefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <resources/>
- <connections/>
-</ui>
diff --git a/MVC/ui_mainwindow.h b/MVC/ui_mainwindow.h
deleted file mode 100644
index 48f2cce..0000000
--- a/MVC/ui_mainwindow.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************************
-** Form generated from reading UI file 'mainwindow.ui'
-**
-** Created: Wed Jan 23 08:52:24 2013
-** by: Qt User Interface Compiler version 4.6.3
-**
-** WARNING! All changes made in this file will be lost when recompiling UI file!
-********************************************************************************/
-
-#ifndef UI_MAINWINDOW_H
-#define UI_MAINWINDOW_H
-
-#include <QtCore/QVariant>
-#include <QtGui/QAction>
-#include <QtGui/QApplication>
-#include <QtGui/QButtonGroup>
-#include <QtGui/QHeaderView>
-#include <QtGui/QMainWindow>
-#include <QtGui/QMenuBar>
-#include <QtGui/QStatusBar>
-#include <QtGui/QToolBar>
-#include <QtGui/QWidget>
-
-QT_BEGIN_NAMESPACE
-
-class Ui_MainWindow
-{
-public:
- QMenuBar *menuBar;
- QToolBar *mainToolBar;
- QWidget *centralWidget;
- QStatusBar *statusBar;
-
- void setupUi(QMainWindow *MainWindow)
- {
- if (MainWindow->objectName().isEmpty())
- MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
- MainWindow->resize(600, 400);
- menuBar = new QMenuBar(MainWindow);
- menuBar->setObjectName(QString::fromUtf8("menuBar"));
- MainWindow->setMenuBar(menuBar);
- mainToolBar = new QToolBar(MainWindow);
- mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
- MainWindow->addToolBar(mainToolBar);
- centralWidget = new QWidget(MainWindow);
- centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
- MainWindow->setCentralWidget(centralWidget);
- statusBar = new QStatusBar(MainWindow);
- statusBar->setObjectName(QString::fromUtf8("statusBar"));
- MainWindow->setStatusBar(statusBar);
-
- retranslateUi(MainWindow);
-
- QMetaObject::connectSlotsByName(MainWindow);
- } // setupUi
-
- void retranslateUi(QMainWindow *MainWindow)
- {
- MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
- } // retranslateUi
-
-};
-
-namespace Ui {
- class MainWindow: public Ui_MainWindow {};
-} // namespace Ui
-
-QT_END_NAMESPACE
-
-#endif // UI_MAINWINDOW_H
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index 4041e71..d21de52 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -188,17 +188,18 @@
<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-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</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-9aAGCJ</value>
- <value type="QString">GNOME_KEYRING_PID=19876</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-kTB4J7</value>
+ <value type="QString">GNOME_KEYRING_PID=27564</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">OLDPWD=/lrde/home/stage/froger_a/qt</value>
@@ -207,16 +208,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=19951</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</value>
+ <value type="QString">SSH_AGENT_PID=27639</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</value>
+ <value type="QString">WINDOWID=12582948</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</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>
@@ -239,17 +240,18 @@
<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-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Rm9H5yDUD5,guid=00a0d6b325751c50c00c26e2006a9203</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-9aAGCJ</value>
- <value type="QString">GNOME_KEYRING_PID=19876</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-kTB4J7</value>
+ <value type="QString">GNOME_KEYRING_PID=27564</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">OLDPWD=/lrde/home/stage/froger_a/qt</value>
@@ -258,16 +260,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=19951</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</value>
+ <value type="QString">SSH_AGENT_PID=27639</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-qeVjd27573/agent.27573</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</value>
+ <value type="QString">WINDOWID=12582948</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm9DVURW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359032006.901905-2088645706</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>
diff --git a/gmvc/gmodel.cpp b/gmvc/gmodel.cpp
deleted file mode 100644
index 38a2aa3..0000000
--- a/gmvc/gmodel.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-#include "gmodel.h"
-
-gModel::gModel(QObject *parent) :
- QAbstractListModel(parent)
-{
-}
-
-QVariant gModel::data(const QModelIndex &index, int role) const
- {
- if (!index.isValid())
- return QVariant();
-
- if (role == Qt::DecorationRole)
- return QIcon(pixmaps.value(index.row()).scaled(60, 60,
- Qt::KeepAspectRatio, Qt::SmoothTransformation));
- /*else if (role == Qt::UserRole)
- return pixmaps.value(index.row());
- else if (role == Qt::UserRole + 1)
- return locations.value(index.row());*/
-
- return QVariant();
- }
-
- void gModel::addPiece(const QPixmap &pixmap, const QPoint &location)
- {
- /*int row;
- if (int(2.0*qrand()/(RAND_MAX+1.0)) == 1)
- row = 0;
- else
- row = pixmaps.size();*/
- int row = pixmaps.size();
-
- beginInsertRows(QModelIndex(), row, row);
- pixmaps.insert(row, pixmap);
- //locations.insert(row, location);
- endInsertRows();
- }
-
- /*Qt::ItemFlags gModel::flags(const QModelIndex &index) const
- {
- if (index.isValid())
- return (Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled);
-
- return Qt::ItemIsDropEnabled;
- }*/
-
- /*bool gModel::removeRows(int row, int count, const QModelIndex &parent)
- {
- if (parent.isValid())
- return false;
-
- if (row >= pixmaps.size() || row + count <= 0)
- return false;
-
- int beginRow = qMax(0, row);
- int endRow = qMin(row + count - 1, pixmaps.size() - 1);
-
- beginRemoveRows(parent, beginRow, endRow);
-
- while (beginRow <= endRow) {
- pixmaps.removeAt(beginRow);
- locations.removeAt(beginRow);
- ++beginRow;
- }
-
- endRemoveRows();
- return true;
- }*/
-
- /*QStringList gModel::mimeTypes() const
- {
- QStringList types;
- types << "image/x-puzzle-piece";
- return types;
- }*/
-
- /*QMimeData *gModel::mimeData(const QModelIndexList &indexes) const
- {
- QMimeData *mimeData = new QMimeData();
- QByteArray encodedData;
-
- QDataStream stream(&encodedData, QIODevice::WriteOnly);
-
- foreach (QModelIndex index, indexes) {
- if (index.isValid()) {
- QPixmap pixmap = qVariantValue<QPixmap>(data(index, Qt::UserRole));
- QPoint location = data(index, Qt::UserRole+1).toPoint();
- stream << pixmap << location;
- }
- }
-
- mimeData->setData("image/x-puzzle-piece", encodedData);
- return mimeData;
- }*/
-
- /*bool gModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent)
- {
- if (!data->hasFormat("image/x-puzzle-piece"))
- return false;
-
- if (action == Qt::IgnoreAction)
- return true;
-
- if (column > 0)
- return false;
-
- int endRow;
-
- if (!parent.isValid()) {
- if (row < 0)
- endRow = pixmaps.size();
- else
- endRow = qMin(row, pixmaps.size());
- } else
- endRow = parent.row();
-
- QByteArray encodedData = data->data("image/x-puzzle-piece");
- QDataStream stream(&encodedData, QIODevice::ReadOnly);
-
- while (!stream.atEnd()) {
- QPixmap pixmap;
- QPoint location;
- stream >> pixmap >> location;
-
- beginInsertRows(QModelIndex(), endRow, endRow);
- pixmaps.insert(endRow, pixmap);
- locations.insert(endRow, location);
- endInsertRows();
-
- ++endRow;
- }
-
- return true;
- }*/
-
- int gModel::rowCount(const QModelIndex &parent) const
- {
- if (parent.isValid())
- return 0;
- else
- return pixmaps.size();
- }
-
- /*Qt::DropActions gModel::supportedDropActions() const
- {
- return Qt::CopyAction | Qt::MoveAction;
- }*/
-
-/* void gModel::addPieces(const QPixmap& pixmap)
- {
- beginRemoveRows(QModelIndex(), 0, 24);
- pixmaps.clear();
- locations.clear();
- endRemoveRows();
- for (int y = 0; y < 5; ++y) {
- for (int x = 0; x < 5; ++x) {
- QPixmap pieceImage = pixmap.copy(x*80, y*80, 80, 80);
- addPiece(pieceImage, QPoint(x, y));
- }
- }
- }*/
diff --git a/gmvc/gmodel.h b/gmvc/gmodel.h
deleted file mode 100644
index 3e5a787..0000000
--- a/gmvc/gmodel.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef GMODEL_H
-#define GMODEL_H
-
-#include <QAbstractListModel>
-#include <QPixmap>
-#include <QIcon>
-#include <QMimeData>
-
-class gModel :
- public QAbstractListModel
-{
- public:
- gModel(QObject *parent = 0);
-
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- //Qt::ItemFlags flags(const QModelIndex &index) const;
- //bool removeRows(int row, int count, const QModelIndex &parent);
-
- //bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- // int row, int column, const QModelIndex &parent);
- //QMimeData *mimeData(const QModelIndexList &indexes) const;
- //QStringList mimeTypes() const;
- int rowCount(const QModelIndex &parent) const;
- //Qt::DropActions supportedDropActions() const;
-
- void addPiece(const QPixmap &pixmap, const QPoint &location);
- //void addPieces(const QPixmap& pixmap);
-
- private:
- QList<QPoint> locations;
- QList<QPixmap> pixmaps;
-};
-
-#endif // GMODEL_H
diff --git a/gmvc/gmvc.pro b/gmvc/gmvc.pro
deleted file mode 100644
index 81e49e5..0000000
--- a/gmvc/gmvc.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-# -------------------------------------------------
-# Project created by QtCreator 2013-01-23T09:31:00
-# -------------------------------------------------
-TARGET = gmvc
-TEMPLATE = app
-SOURCES += main.cpp \
- mainwindow.cpp \
- model.cpp \
- gmodel.cpp
-HEADERS += mainwindow.h \
- model.h \
- gmodel.h
-FORMS += mainwindow.ui
diff --git a/gmvc/gmvc.pro.user b/gmvc/gmvc.pro.user
deleted file mode 100644
index 4a75b91..0000000
--- a/gmvc/gmvc.pro.user
+++ /dev/null
@@ -1,251 +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">gmvc.pro</value>
- </data>
- <data>
- <variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">gmvc</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-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</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-nVYZaO</value>
- <value type="QString">GNOME_KEYRING_PID=27939</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/gmvc</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=28014</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</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/gmvc/gmvc.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/gmvc</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-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</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-nVYZaO</value>
- <value type="QString">GNOME_KEYRING_PID=27939</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/gmvc</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=28014</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</value>
- <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</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/gmvc</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>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/gmvc/main.cpp b/gmvc/main.cpp
deleted file mode 100644
index ab61e7c..0000000
--- a/gmvc/main.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <QtGui/QApplication>
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
- QApplication::setGraphicsSystem("raster");
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
-}
diff --git a/gmvc/mainwindow.cpp b/gmvc/mainwindow.cpp
deleted file mode 100644
index d046226..0000000
--- a/gmvc/mainwindow.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
-{
- ui->setupUi(this);
-
- QListView *view = new QListView();
- view->setViewMode(QListView::IconMode);
- view->setIconSize(QSize(100, 100));
- view->setMovement(QListView::Static);
- view->setFlow(QListView::TopToBottom);
- //view->setGridSize(QSize(300, 100));
- view->setSpacing(9);
-
- QList<QPixmap> pixmaps;
- QStringList paths;
- paths << "/lrde/home/stage/froger_a/ppm/mp00032c.ppm" << "/lrde/home/stage/froger_a/ppm/mp00042.ppm" << "/lrde/home/stage/froger_a/ppm/mp00076.ppm";
- QString path;
- Model *model = new Model(this);
- foreach(path, paths)
- {
- QPixmap pixmap(path);
- model->addPixmap(pixmap);
- }
-
- view->setModel(model);
- //setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
-
- setCentralWidget(view);
-}
-
-MainWindow::~MainWindow()
-{
- delete ui;
-}
-
-void MainWindow::changeEvent(QEvent *e)
-{
- QMainWindow::changeEvent(e);
- switch (e->type())
- {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
diff --git a/gmvc/mainwindow.h b/gmvc/mainwindow.h
deleted file mode 100644
index 822c275..0000000
--- a/gmvc/mainwindow.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include <QHBoxLayout>
-#include <QListView>
-
-#include "gmodel.h"
-#include "model.h"
-
-namespace Ui {
- class MainWindow;
-}
-
-class MainWindow : public QMainWindow {
- Q_OBJECT
-public:
- MainWindow(QWidget *parent = 0);
- ~MainWindow();
-
-protected:
- void changeEvent(QEvent *e);
-
-private:
- Ui::MainWindow *ui;
-};
-
-#endif // MAINWINDOW_H
diff --git a/gmvc/mainwindow.ui b/gmvc/mainwindow.ui
deleted file mode 100644
index 97c03be..0000000
--- a/gmvc/mainwindow.ui
+++ /dev/null
@@ -1,24 +0,0 @@
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>600</width>
- <height>400</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>MainWindow</string>
- </property>
- <widget class="QMenuBar" name="menuBar" />
- <widget class="QToolBar" name="mainToolBar" />
- <widget class="QWidget" name="centralWidget" />
- <widget class="QStatusBar" name="statusBar" />
- </widget>
- <layoutDefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <resources/>
- <connections/>
-</ui>
diff --git a/gmvc/model.cpp b/gmvc/model.cpp
deleted file mode 100644
index eb20cf8..0000000
--- a/gmvc/model.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "model.h"
-
-Model::Model(QObject *parent) :
- QAbstractListModel(parent)
-{
- this->pixmaps = pixmaps;
-}
-
-int Model::rowCount(const QModelIndex& parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return pixmaps.size();;
-}
-
-QVariant Model::data(const QModelIndex& index, int role) const
-{
- if(!index.isValid())
- return QVariant();
-
- if(role == Qt::DecorationRole)
- return QIcon(pixmaps.value(index.row()).scaled(300, 300, Qt::KeepAspectRatio, Qt::SmoothTransformation));
-
- if(role == Qt::UserRole)
- return pixmaps.value(index.row());
-
- return QVariant();
-}
-
-void Model::addPixmap(const QPixmap& pixmap)
-{
- int row = pixmaps.size();
- beginInsertRows(QModelIndex(), row, row);
- pixmaps.insert(row, pixmap);
- endInsertRows();
-}
diff --git a/gmvc/model.h b/gmvc/model.h
deleted file mode 100644
index f2247f4..0000000
--- a/gmvc/model.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef MODEL_H
-#define MODEL_H
-
-#include <QAbstractListModel>
-#include <QIcon>
-
-class Model :
- public QAbstractListModel
-{
- public:
- explicit Model(QObject *parent = 0);
- QVariant data(const QModelIndex &index, int role) const;
- int rowCount(const QModelIndex &parent) const;
- void addPixmap(const QPixmap& pixmap);
-
- private:
- QList<QPixmap> pixmaps;
-};
-
-#endif // MODEL_H
--
1.7.2.5
1
0
---
GScribo/GScribo.pro | 8 +-
GScribo/GScribo.pro.user | 36 ++++----
GScribo/icon.cpp | 26 +++++
GScribo/icon.h | 21 ++++
GScribo/itemdelegate.cpp | 26 -----
GScribo/itemdelegate.h | 17 ----
GScribo/listmodel.cpp | 50 +++-------
GScribo/listmodel.h | 11 +--
GScribo/mainwindow.cpp | 97 -------------------
GScribo/mainwindow.h | 52 ----------
GScribo/pageswidget.cpp | 30 ++----
GScribo/pageswidget.h | 19 ++---
GScribo/ui_mainwindow.h | 73 ++++++++++++++
MVC/MVC.pro.user | 32 +++---
MVC/itemdelegate.cpp | 4 +-
MVC/ui_mainwindow.h | 70 ++++++++++++++
gmvc/gmodel.cpp | 162 ++++++++++++++++++++++++++++++++
gmvc/gmodel.h | 34 +++++++
MVC/MVC.pro => gmvc/gmvc.pro | 12 +-
MVC/MVC.pro.user => gmvc/gmvc.pro.user | 46 +++++-----
{MVC => gmvc}/main.cpp | 0
gmvc/mainwindow.cpp | 51 ++++++++++
gmvc/mainwindow.h | 28 ++++++
{MVC => gmvc}/mainwindow.ui | 0
gmvc/model.cpp | 37 +++++++
gmvc/model.h | 20 ++++
26 files changed, 627 insertions(+), 335 deletions(-)
create mode 100644 GScribo/icon.cpp
create mode 100644 GScribo/icon.h
delete mode 100644 GScribo/itemdelegate.cpp
delete mode 100644 GScribo/itemdelegate.h
delete mode 100644 GScribo/mainwindow.cpp
delete mode 100644 GScribo/mainwindow.h
create mode 100644 GScribo/ui_mainwindow.h
create mode 100644 MVC/ui_mainwindow.h
create mode 100644 gmvc/gmodel.cpp
create mode 100644 gmvc/gmodel.h
copy MVC/MVC.pro => gmvc/gmvc.pro (59%)
copy MVC/MVC.pro.user => gmvc/gmvc.pro.user (87%)
copy {MVC => gmvc}/main.cpp (100%)
create mode 100644 gmvc/mainwindow.cpp
create mode 100644 gmvc/mainwindow.h
copy {MVC => gmvc}/mainwindow.ui (100%)
create mode 100644 gmvc/model.cpp
create mode 100644 gmvc/model.h
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
index 7930307..57041dc 100644
--- a/GScribo/GScribo.pro
+++ b/GScribo/GScribo.pro
@@ -18,12 +18,12 @@ SOURCES += main.cpp \
scene.cpp \
selection.cpp \
pageswidget.cpp \
- itemdelegate.cpp \
- listmodel.cpp
+ listmodel.cpp \
+ icon.cpp
HEADERS += mainwindow.h \
scene.h \
selection.h \
pageswidget.h \
- itemdelegate.h \
- listmodel.h
+ listmodel.h \
+ icon.h
FORMS += mainwindow.ui
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index 92e91c7..13a97a6 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -76,14 +76,14 @@
<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-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</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-8ccgXN</value>
- <value type="QString">GNOME_KEYRING_PID=30769</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-nVYZaO</value>
+ <value type="QString">GNOME_KEYRING_PID=27939</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>
@@ -95,16 +95,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=30844</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</value>
+ <value type="QString">SSH_AGENT_PID=28014</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</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=12582948</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</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>
@@ -128,14 +128,14 @@
<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-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</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-8ccgXN</value>
- <value type="QString">GNOME_KEYRING_PID=30769</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-nVYZaO</value>
+ <value type="QString">GNOME_KEYRING_PID=27939</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>
@@ -147,16 +147,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=30844</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</value>
+ <value type="QString">SSH_AGENT_PID=28014</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</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=12582948</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</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>
diff --git a/GScribo/icon.cpp b/GScribo/icon.cpp
new file mode 100644
index 0000000..5aca60f
--- /dev/null
+++ b/GScribo/icon.cpp
@@ -0,0 +1,26 @@
+#include "icon.h"
+
+Icon::Icon(const QPixmap &pixmap) :
+ QIcon(pixmap)
+{
+}
+
+QString Icon::path() const
+{
+ return filename;
+}
+
+QPixmap * Icon::pixmap()
+{
+ return pix;
+}
+
+void Icon::setPath(QString path)
+{
+ filename = path;
+}
+
+void Icon::setPixmap(QPixmap *pixmap)
+{
+ pix = pixmap;
+}
diff --git a/GScribo/icon.h b/GScribo/icon.h
new file mode 100644
index 0000000..ebedbe7
--- /dev/null
+++ b/GScribo/icon.h
@@ -0,0 +1,21 @@
+#ifndef ICON_H
+#define ICON_H
+
+#include <QIcon>
+
+class Icon :
+ QIcon
+{
+ public:
+ explicit Icon(const QPixmap& pixmap);
+ QString path() const;
+ QPixmap * pixmap();
+ void setPath(QString path);
+ void setPixmap(QPixmap *pixmap);
+
+ private:
+ QString filename;
+ QPixmap *pix;
+};
+
+#endif // ICON_H
diff --git a/GScribo/itemdelegate.cpp b/GScribo/itemdelegate.cpp
deleted file mode 100644
index 60f8cd3..0000000
--- a/GScribo/itemdelegate.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "itemdelegate.h"
-
-ItemDelegate::ItemDelegate(QWidget *parent):
- QItemDelegate(parent)
-{
-}
-
-QWidget * ItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem&, const QModelIndex&) const
-{
- QLabel *label = new QLabel(parent);
- label->setMinimumSize(100, 100);
-
- return label;
-}
-
-void ItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
-{
- QLabel *label = static_cast<QLabel *>(editor);
- QPixmap pixmap = index.model()->data(index, Qt::DecorationRole).value<QPixmap>();
- label->setPixmap(pixmap);
-}
-
-void ItemDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &/*index*/) const
-{
- editor->setGeometry(option.rect);
-}
diff --git a/GScribo/itemdelegate.h b/GScribo/itemdelegate.h
deleted file mode 100644
index 1864ccf..0000000
--- a/GScribo/itemdelegate.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef ITEMDELEGATE_H
-#define ITEMDELEGATE_H
-
-#include <QItemDelegate>
-#include <QLabel>
-
-class ItemDelegate:
- public QItemDelegate
-{
- public:
- explicit ItemDelegate(QWidget *parent = 0);
- QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
- void setEditorData(QWidget *editor, const QModelIndex &index) const;
- void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
-};
-
-#endif // ITEMDELEGATE_H
diff --git a/GScribo/listmodel.cpp b/GScribo/listmodel.cpp
index 4bbe802..de0087a 100644
--- a/GScribo/listmodel.cpp
+++ b/GScribo/listmodel.cpp
@@ -1,52 +1,30 @@
#include "listmodel.h"
-ListModel::ListModel(QStringList stringList, QObject *parent):
+ListModel::ListModel(QObject *parent):
QAbstractListModel(parent)
{
- this->stringList = stringList;
}
-ListModel::~ListModel()
+int ListModel::rowCount(const QModelIndex&) const
{
+ return pixmaps.size();
}
-int ListModel::rowCount(const QModelIndex &/*parent*/) const
+QVariant ListModel::data(const QModelIndex& index, int role) const
{
- return stringList.count();
-}
-
-QVariant ListModel::data(const QModelIndex &index, int role) const
-{
- if(index.isValid() && stringList.size() < index.row() && (role == Qt::DisplayRole || role == Qt::EditRole))
- return stringList.at(index.row());
- else
+ if(!index.isValid())
return QVariant();
-}
-QVariant ListModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if(role == Qt::DisplayRole && orientation == Qt::Horizontal)
- return QVariant();
- else
- return QString("Row %1").arg(section);
-}
+ if(role == Qt::DecorationRole)
+ return QIcon(pixmaps.value(index.row()).scaled(QSize(200, 200), Qt::KeepAspectRatio, Qt::SmoothTransformation));
-/*Qt::ItemFlags ListModel::flags(const QModelIndex &index) const
-{
- if(!index.isValid())
- return Qt::ItemIsEnabled;
- else
- return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
+ return QVariant();
}
-bool ListModel::setData(const QModelIndex &index, const QVariant &value, int role)
+void ListModel::addPixmap(const QPixmap& pixmap)
{
- if(index.isValid() && role == Qt::DisplayRole)
- {
- stringList.replace(index.row(), value.toString());
- emit dataChanged(index, index);
- return true;
- }
- else
- return false;
-}*/
+ int row = pixmaps.size();
+ beginInsertRows(QModelIndex(), row, row);
+ pixmaps.insert(row, pixmap);
+ endInsertRows();
+}
diff --git a/GScribo/listmodel.h b/GScribo/listmodel.h
index c7f061f..03469b5 100644
--- a/GScribo/listmodel.h
+++ b/GScribo/listmodel.h
@@ -2,7 +2,7 @@
#define LISTMODEL_H
#include <QAbstractListModel>
-#include <QLabel>
+#include <QIcon>
#include <QList>
class ListModel:
@@ -11,16 +11,13 @@ class ListModel:
Q_OBJECT
public:
- explicit ListModel(QStringList stringList, QObject *parent = 0);
- ~ListModel();
+ explicit ListModel(QObject *parent = 0);
int rowCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role = Qt::DecorationRole) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DecorationRole) const;
- /*Qt::ItemFlags flags(const QModelIndex &index) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::DecorationRole);*/
+ void addPixmap(const QPixmap& pixmap);
private:
- QStringList stringList;
+ QList<QPixmap> pixmaps;
};
#endif // LISTMODEL_H
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
deleted file mode 100644
index 4b68fbe..0000000
--- a/GScribo/mainwindow.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
-{
- ui->setupUi(this);
-
- initGraphicsRegion();
- initTextRegion();
- initTablePage();
- initToolBar();
-}
-
-MainWindow::~MainWindow()
-{
- delete dockText;
- delete dockPages;
- delete scene;
- delete graphicsView;
- delete textEdit;
- delete ui;
-}
-
-void MainWindow::initGraphicsRegion()
-{
- graphicsView = new QGraphicsView;
- // Cache backgroud to speed up its repaint.
- graphicsView->setCacheMode(QGraphicsView::CacheBackground);
- graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
-
- scene = new Scene();
- // Disable scroll bar extend with a non-null rectangle.
- scene->setSceneRect(0, 0, 0, 1);
- graphicsView->setScene(scene);
-
- setCentralWidget(graphicsView);
-}
-
-void MainWindow::initTablePage()
-{
- dockPages = new QDockWidget(tr("Pages"));
- dockPages->setAllowedAreas(Qt::AllDockWidgetAreas);
- dockPages->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
-
- pagesWidget = new PagesWidget;
- dockPages->setWidget(pagesWidget);
-
- addDockWidget(Qt::LeftDockWidgetArea, dockPages);
-}
-
-void MainWindow::initTextRegion()
-{
- dockText = new QDockWidget(tr("Previsualization"));
- dockText->setAllowedAreas(Qt::AllDockWidgetAreas);
- dockText->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);
-
- textEdit = new QPlainTextEdit;
- dockText->setWidget(textEdit);
-
- addDockWidget(Qt::RightDockWidgetArea, dockText);
- //dockText->hide();
-}
-
-void MainWindow::initToolBar()
-{
- QAction *open = ui->mainToolBar->addAction(tr("Open"));
- connect(open, SIGNAL(triggered()), this, SLOT(onOpen()));
-}
-
-void MainWindow::onOpen()
-{
- QString path = QFileDialog::getOpenFileName(this);
- if(path != "")
- {
- QPixmap pixmap(path);
-
- scene->setSceneRect(pixmap.rect());
- scene->setBackgroundBrush(QBrush(pixmap));
-
- pagesWidget->addPicture(path, pixmap);
- }
-}
-
-void MainWindow::changeEvent(QEvent *e)
-{
- QMainWindow::changeEvent(e);
- switch (e->type())
- {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
deleted file mode 100644
index b5355f1..0000000
--- a/GScribo/mainwindow.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include <QHBoxLayout>
-#include <QDockWidget>
-#include <QGraphicsView>
-#include <QGLWidget>
-#include <QPlainTextEdit>
-#include <QGroupBox>
-#include <QFileDialog>
-
-#include "scene.h"
-#include "pageswidget.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 initTextRegion();
- void initToolBar();
- void initTablePage();
-
- Ui::MainWindow *ui;
- QDockWidget *dockText;
- QDockWidget *dockPages;
- Scene *scene;
- QGraphicsView *graphicsView;
- QPlainTextEdit *textEdit;
- PagesWidget *pagesWidget;
- QString imagePath;
-
- private slots:
- void onOpen();
-};
-
-#endif // MAINWINDOW_H
diff --git a/GScribo/pageswidget.cpp b/GScribo/pageswidget.cpp
index ed34d84..1652062 100644
--- a/GScribo/pageswidget.cpp
+++ b/GScribo/pageswidget.cpp
@@ -1,27 +1,19 @@
#include "pageswidget.h"
PagesWidget::PagesWidget(QWidget *parent):
- QWidget(parent)
+ QListView(parent)
{
- QStringList l;
- l << "/lrde/home/stage/froger_a/ppm/mp00032c.ppm" << "/lrde/home/stage/froger_a/ppm/mp00042.ppm" << "/lrde/home/stage/froger_a/ppm/mp00076.ppm";
- filenames = new QStringList;
- model = new ListModel(l);
- listView = new QListView(this);
- listView->setItemDelegate(new ItemDelegate());
- listView->setModel(model);
- listView->update(model->index(0, 0));
- listView->show();
+ setUniformItemSizes(true);
+ setViewMode(QListView::IconMode);
+ setIconSize(QSize(200, 200));
+ setFlow(QListView::TopToBottom);
+ setMovement(QListView::Static);
+ setSpacing(10);
+ setWrapping(false);
+ setModel(&model);
}
-PagesWidget::~PagesWidget()
+void PagesWidget::addPixmap(const QString& filename, const QPixmap &pixmap)
{
- delete filenames;
- delete listView;
-}
-
-void PagesWidget::addPicture(const QString& filename, const QPixmap& pixmap)
-{
- *filenames << filename;
-
+ model.addPixmap(pixmap);
}
diff --git a/GScribo/pageswidget.h b/GScribo/pageswidget.h
index 805deff..fade0d6 100644
--- a/GScribo/pageswidget.h
+++ b/GScribo/pageswidget.h
@@ -2,29 +2,24 @@
#define PAGESWIDGET_H
#include <QWidget>
-#include <QScrollArea>
-#include <QVBoxLayout>
-#include <QListWidget>
-#include <QStandardItemModel>
-#include <QLabel>
+#include <QListView>
+#include <QPainter>
+#include <QPushButton>
+#include <QScrollBar>
-#include "itemdelegate.h"
#include "listmodel.h"
class PagesWidget:
- public QWidget
+ public QListView
{
Q_OBJECT
public:
explicit PagesWidget(QWidget *parent = 0);
- ~PagesWidget();
- void addPicture(const QString& filename, const QPixmap& pixmap);
+ void addPixmap(const QString& filename, const QPixmap& pixmap);
private:
- QListView *listView;
- ListModel *model;
- QStringList *filenames;
+ ListModel model;
};
#endif // PAGESWIDGET_H
diff --git a/GScribo/ui_mainwindow.h b/GScribo/ui_mainwindow.h
new file mode 100644
index 0000000..7ba54a5
--- /dev/null
+++ b/GScribo/ui_mainwindow.h
@@ -0,0 +1,73 @@
+/********************************************************************************
+** Form generated from reading UI file 'mainwindow.ui'
+**
+** Created: Wed Jan 23 15:39:30 2013
+** by: Qt User Interface Compiler version 4.6.3
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_MAINWINDOW_H
+#define UI_MAINWINDOW_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QMainWindow>
+#include <QtGui/QMenuBar>
+#include <QtGui/QStatusBar>
+#include <QtGui/QToolBar>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_MainWindow
+{
+public:
+ QWidget *centralWidget;
+ QMenuBar *menuBar;
+ QToolBar *mainToolBar;
+ QStatusBar *statusBar;
+
+ void setupUi(QMainWindow *MainWindow)
+ {
+ if (MainWindow->objectName().isEmpty())
+ MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
+ MainWindow->resize(671, 436);
+ centralWidget = new QWidget(MainWindow);
+ centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
+ centralWidget->setEnabled(true);
+ MainWindow->setCentralWidget(centralWidget);
+ menuBar = new QMenuBar(MainWindow);
+ menuBar->setObjectName(QString::fromUtf8("menuBar"));
+ menuBar->setGeometry(QRect(0, 0, 671, 23));
+ MainWindow->setMenuBar(menuBar);
+ mainToolBar = new QToolBar(MainWindow);
+ mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
+ mainToolBar->setFloatable(false);
+ MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
+ statusBar = new QStatusBar(MainWindow);
+ statusBar->setObjectName(QString::fromUtf8("statusBar"));
+ MainWindow->setStatusBar(statusBar);
+
+ retranslateUi(MainWindow);
+
+ QMetaObject::connectSlotsByName(MainWindow);
+ } // setupUi
+
+ void retranslateUi(QMainWindow *MainWindow)
+ {
+ MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class MainWindow: public Ui_MainWindow {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_MAINWINDOW_H
diff --git a/MVC/MVC.pro.user b/MVC/MVC.pro.user
index c8ef164..1c6e9ba 100644
--- a/MVC/MVC.pro.user
+++ b/MVC/MVC.pro.user
@@ -76,14 +76,14 @@
<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-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iL4mXwl7ak,guid=7e9603aab929b1f1fce663d30068f708</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-8ccgXN</value>
- <value type="QString">GNOME_KEYRING_PID=30769</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-kN7FtK</value>
+ <value type="QString">GNOME_KEYRING_PID=25582</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>
@@ -95,16 +95,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=30844</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</value>
+ <value type="QString">SSH_AGENT_PID=25657</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-RiFAp25591/agent.25591</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmJKU1QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358926796.562496-56304996</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>
@@ -128,14 +128,14 @@
<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-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iL4mXwl7ak,guid=7e9603aab929b1f1fce663d30068f708</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-8ccgXN</value>
- <value type="QString">GNOME_KEYRING_PID=30769</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-kN7FtK</value>
+ <value type="QString">GNOME_KEYRING_PID=25582</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>
@@ -147,16 +147,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=30844</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</value>
+ <value type="QString">SSH_AGENT_PID=25657</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-RiFAp25591/agent.25591</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmJKU1QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358926796.562496-56304996</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>
diff --git a/MVC/itemdelegate.cpp b/MVC/itemdelegate.cpp
index c241e1e..5f67a91 100644
--- a/MVC/itemdelegate.cpp
+++ b/MVC/itemdelegate.cpp
@@ -7,7 +7,7 @@ ItemDelegate::ItemDelegate(QWidget *parent):
void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
- QString path = index.model()->data(index, Qt::DecorationRole).toString();
+ QString path = index.data(Qt::DecorationRole).toString();
QPixmap pixmap(path);
painter->drawPixmap(0, index.row() * 210, 200, 200, pixmap);
@@ -15,5 +15,5 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
QSize ItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
- return QSize(200, 200);
+ return QSize(200, 400);
}
diff --git a/MVC/ui_mainwindow.h b/MVC/ui_mainwindow.h
new file mode 100644
index 0000000..48f2cce
--- /dev/null
+++ b/MVC/ui_mainwindow.h
@@ -0,0 +1,70 @@
+/********************************************************************************
+** Form generated from reading UI file 'mainwindow.ui'
+**
+** Created: Wed Jan 23 08:52:24 2013
+** by: Qt User Interface Compiler version 4.6.3
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_MAINWINDOW_H
+#define UI_MAINWINDOW_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QMainWindow>
+#include <QtGui/QMenuBar>
+#include <QtGui/QStatusBar>
+#include <QtGui/QToolBar>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_MainWindow
+{
+public:
+ QMenuBar *menuBar;
+ QToolBar *mainToolBar;
+ QWidget *centralWidget;
+ QStatusBar *statusBar;
+
+ void setupUi(QMainWindow *MainWindow)
+ {
+ if (MainWindow->objectName().isEmpty())
+ MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
+ MainWindow->resize(600, 400);
+ menuBar = new QMenuBar(MainWindow);
+ menuBar->setObjectName(QString::fromUtf8("menuBar"));
+ MainWindow->setMenuBar(menuBar);
+ mainToolBar = new QToolBar(MainWindow);
+ mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
+ MainWindow->addToolBar(mainToolBar);
+ centralWidget = new QWidget(MainWindow);
+ centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
+ MainWindow->setCentralWidget(centralWidget);
+ statusBar = new QStatusBar(MainWindow);
+ statusBar->setObjectName(QString::fromUtf8("statusBar"));
+ MainWindow->setStatusBar(statusBar);
+
+ retranslateUi(MainWindow);
+
+ QMetaObject::connectSlotsByName(MainWindow);
+ } // setupUi
+
+ void retranslateUi(QMainWindow *MainWindow)
+ {
+ MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class MainWindow: public Ui_MainWindow {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_MAINWINDOW_H
diff --git a/gmvc/gmodel.cpp b/gmvc/gmodel.cpp
new file mode 100644
index 0000000..38a2aa3
--- /dev/null
+++ b/gmvc/gmodel.cpp
@@ -0,0 +1,162 @@
+#include "gmodel.h"
+
+gModel::gModel(QObject *parent) :
+ QAbstractListModel(parent)
+{
+}
+
+QVariant gModel::data(const QModelIndex &index, int role) const
+ {
+ if (!index.isValid())
+ return QVariant();
+
+ if (role == Qt::DecorationRole)
+ return QIcon(pixmaps.value(index.row()).scaled(60, 60,
+ Qt::KeepAspectRatio, Qt::SmoothTransformation));
+ /*else if (role == Qt::UserRole)
+ return pixmaps.value(index.row());
+ else if (role == Qt::UserRole + 1)
+ return locations.value(index.row());*/
+
+ return QVariant();
+ }
+
+ void gModel::addPiece(const QPixmap &pixmap, const QPoint &location)
+ {
+ /*int row;
+ if (int(2.0*qrand()/(RAND_MAX+1.0)) == 1)
+ row = 0;
+ else
+ row = pixmaps.size();*/
+ int row = pixmaps.size();
+
+ beginInsertRows(QModelIndex(), row, row);
+ pixmaps.insert(row, pixmap);
+ //locations.insert(row, location);
+ endInsertRows();
+ }
+
+ /*Qt::ItemFlags gModel::flags(const QModelIndex &index) const
+ {
+ if (index.isValid())
+ return (Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled);
+
+ return Qt::ItemIsDropEnabled;
+ }*/
+
+ /*bool gModel::removeRows(int row, int count, const QModelIndex &parent)
+ {
+ if (parent.isValid())
+ return false;
+
+ if (row >= pixmaps.size() || row + count <= 0)
+ return false;
+
+ int beginRow = qMax(0, row);
+ int endRow = qMin(row + count - 1, pixmaps.size() - 1);
+
+ beginRemoveRows(parent, beginRow, endRow);
+
+ while (beginRow <= endRow) {
+ pixmaps.removeAt(beginRow);
+ locations.removeAt(beginRow);
+ ++beginRow;
+ }
+
+ endRemoveRows();
+ return true;
+ }*/
+
+ /*QStringList gModel::mimeTypes() const
+ {
+ QStringList types;
+ types << "image/x-puzzle-piece";
+ return types;
+ }*/
+
+ /*QMimeData *gModel::mimeData(const QModelIndexList &indexes) const
+ {
+ QMimeData *mimeData = new QMimeData();
+ QByteArray encodedData;
+
+ QDataStream stream(&encodedData, QIODevice::WriteOnly);
+
+ foreach (QModelIndex index, indexes) {
+ if (index.isValid()) {
+ QPixmap pixmap = qVariantValue<QPixmap>(data(index, Qt::UserRole));
+ QPoint location = data(index, Qt::UserRole+1).toPoint();
+ stream << pixmap << location;
+ }
+ }
+
+ mimeData->setData("image/x-puzzle-piece", encodedData);
+ return mimeData;
+ }*/
+
+ /*bool gModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
+ int row, int column, const QModelIndex &parent)
+ {
+ if (!data->hasFormat("image/x-puzzle-piece"))
+ return false;
+
+ if (action == Qt::IgnoreAction)
+ return true;
+
+ if (column > 0)
+ return false;
+
+ int endRow;
+
+ if (!parent.isValid()) {
+ if (row < 0)
+ endRow = pixmaps.size();
+ else
+ endRow = qMin(row, pixmaps.size());
+ } else
+ endRow = parent.row();
+
+ QByteArray encodedData = data->data("image/x-puzzle-piece");
+ QDataStream stream(&encodedData, QIODevice::ReadOnly);
+
+ while (!stream.atEnd()) {
+ QPixmap pixmap;
+ QPoint location;
+ stream >> pixmap >> location;
+
+ beginInsertRows(QModelIndex(), endRow, endRow);
+ pixmaps.insert(endRow, pixmap);
+ locations.insert(endRow, location);
+ endInsertRows();
+
+ ++endRow;
+ }
+
+ return true;
+ }*/
+
+ int gModel::rowCount(const QModelIndex &parent) const
+ {
+ if (parent.isValid())
+ return 0;
+ else
+ return pixmaps.size();
+ }
+
+ /*Qt::DropActions gModel::supportedDropActions() const
+ {
+ return Qt::CopyAction | Qt::MoveAction;
+ }*/
+
+/* void gModel::addPieces(const QPixmap& pixmap)
+ {
+ beginRemoveRows(QModelIndex(), 0, 24);
+ pixmaps.clear();
+ locations.clear();
+ endRemoveRows();
+ for (int y = 0; y < 5; ++y) {
+ for (int x = 0; x < 5; ++x) {
+ QPixmap pieceImage = pixmap.copy(x*80, y*80, 80, 80);
+ addPiece(pieceImage, QPoint(x, y));
+ }
+ }
+ }*/
diff --git a/gmvc/gmodel.h b/gmvc/gmodel.h
new file mode 100644
index 0000000..3e5a787
--- /dev/null
+++ b/gmvc/gmodel.h
@@ -0,0 +1,34 @@
+#ifndef GMODEL_H
+#define GMODEL_H
+
+#include <QAbstractListModel>
+#include <QPixmap>
+#include <QIcon>
+#include <QMimeData>
+
+class gModel :
+ public QAbstractListModel
+{
+ public:
+ gModel(QObject *parent = 0);
+
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ //Qt::ItemFlags flags(const QModelIndex &index) const;
+ //bool removeRows(int row, int count, const QModelIndex &parent);
+
+ //bool dropMimeData(const QMimeData *data, Qt::DropAction action,
+ // int row, int column, const QModelIndex &parent);
+ //QMimeData *mimeData(const QModelIndexList &indexes) const;
+ //QStringList mimeTypes() const;
+ int rowCount(const QModelIndex &parent) const;
+ //Qt::DropActions supportedDropActions() const;
+
+ void addPiece(const QPixmap &pixmap, const QPoint &location);
+ //void addPieces(const QPixmap& pixmap);
+
+ private:
+ QList<QPoint> locations;
+ QList<QPixmap> pixmaps;
+};
+
+#endif // GMODEL_H
diff --git a/MVC/MVC.pro b/gmvc/gmvc.pro
similarity index 59%
copy from MVC/MVC.pro
copy to gmvc/gmvc.pro
index 1a4d48c..81e49e5 100644
--- a/MVC/MVC.pro
+++ b/gmvc/gmvc.pro
@@ -1,13 +1,13 @@
# -------------------------------------------------
-# Project created by QtCreator 2013-01-22T16:00:23
+# Project created by QtCreator 2013-01-23T09:31:00
# -------------------------------------------------
-TARGET = MVC
+TARGET = gmvc
TEMPLATE = app
SOURCES += main.cpp \
mainwindow.cpp \
- itemdelegate.cpp \
- listmodel.cpp
+ model.cpp \
+ gmodel.cpp
HEADERS += mainwindow.h \
- listmodel.h \
- itemdelegate.h
+ model.h \
+ gmodel.h
FORMS += mainwindow.ui
diff --git a/MVC/MVC.pro.user b/gmvc/gmvc.pro.user
similarity index 87%
copy from MVC/MVC.pro.user
copy to gmvc/gmvc.pro.user
index c8ef164..4a75b91 100644
--- a/MVC/MVC.pro.user
+++ b/gmvc/gmvc.pro.user
@@ -10,11 +10,11 @@
</data>
<data>
<variable>RunConfiguration0-ProFile</variable>
- <value type="QString">MVC.pro</value>
+ <value type="QString">gmvc.pro</value>
</data>
<data>
<variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">MVC</value>
+ <value type="QString">gmvc</value>
</data>
<data>
<variable>RunConfiguration0-UseDyldImageSuffix</variable>
@@ -76,14 +76,14 @@
<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-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</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-8ccgXN</value>
- <value type="QString">GNOME_KEYRING_PID=30769</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-nVYZaO</value>
+ <value type="QString">GNOME_KEYRING_PID=27939</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>
@@ -91,20 +91,20 @@
<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/MVC</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/gmvc</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=30844</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</value>
+ <value type="QString">SSH_AGENT_PID=28014</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</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>
@@ -112,7 +112,7 @@
<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/MVC/MVC.pro</value>
+ <value type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/gmvc/gmvc.pro</value>
<value type="QString">-spec</value>
<value type="QString">linux-g++</value>
<value type="QString">-r</value>
@@ -120,7 +120,7 @@
</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/MVC</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/gmvc</value>
</valuemap>
</data>
<data>
@@ -128,14 +128,14 @@
<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-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-0VAN4sEd5T,guid=75a5318e040070f8fcb70ccf006944fa</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-8ccgXN</value>
- <value type="QString">GNOME_KEYRING_PID=30769</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-nVYZaO</value>
+ <value type="QString">GNOME_KEYRING_PID=27939</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>
@@ -143,20 +143,20 @@
<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/MVC</value>
+ <value type="QString">PWD=/lrde/home/stage/froger_a/qt/gmvc</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=30844</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</value>
+ <value type="QString">SSH_AGENT_PID=28014</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-yzfMR27948/agent.27948</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmBDX0QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358946750.592912-119709926</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>
@@ -169,7 +169,7 @@
</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/MVC</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/gmvc</value>
</valuemap>
</data>
<data>
diff --git a/MVC/main.cpp b/gmvc/main.cpp
similarity index 100%
copy from MVC/main.cpp
copy to gmvc/main.cpp
diff --git a/gmvc/mainwindow.cpp b/gmvc/mainwindow.cpp
new file mode 100644
index 0000000..d046226
--- /dev/null
+++ b/gmvc/mainwindow.cpp
@@ -0,0 +1,51 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+
+ QListView *view = new QListView();
+ view->setViewMode(QListView::IconMode);
+ view->setIconSize(QSize(100, 100));
+ view->setMovement(QListView::Static);
+ view->setFlow(QListView::TopToBottom);
+ //view->setGridSize(QSize(300, 100));
+ view->setSpacing(9);
+
+ QList<QPixmap> pixmaps;
+ QStringList paths;
+ paths << "/lrde/home/stage/froger_a/ppm/mp00032c.ppm" << "/lrde/home/stage/froger_a/ppm/mp00042.ppm" << "/lrde/home/stage/froger_a/ppm/mp00076.ppm";
+ QString path;
+ Model *model = new Model(this);
+ foreach(path, paths)
+ {
+ QPixmap pixmap(path);
+ model->addPixmap(pixmap);
+ }
+
+ view->setModel(model);
+ //setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+
+ setCentralWidget(view);
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+void MainWindow::changeEvent(QEvent *e)
+{
+ QMainWindow::changeEvent(e);
+ switch (e->type())
+ {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/gmvc/mainwindow.h b/gmvc/mainwindow.h
new file mode 100644
index 0000000..822c275
--- /dev/null
+++ b/gmvc/mainwindow.h
@@ -0,0 +1,28 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QHBoxLayout>
+#include <QListView>
+
+#include "gmodel.h"
+#include "model.h"
+
+namespace Ui {
+ class MainWindow;
+}
+
+class MainWindow : public QMainWindow {
+ Q_OBJECT
+public:
+ MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+protected:
+ void changeEvent(QEvent *e);
+
+private:
+ Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H
diff --git a/MVC/mainwindow.ui b/gmvc/mainwindow.ui
similarity index 100%
copy from MVC/mainwindow.ui
copy to gmvc/mainwindow.ui
diff --git a/gmvc/model.cpp b/gmvc/model.cpp
new file mode 100644
index 0000000..eb20cf8
--- /dev/null
+++ b/gmvc/model.cpp
@@ -0,0 +1,37 @@
+#include "model.h"
+
+Model::Model(QObject *parent) :
+ QAbstractListModel(parent)
+{
+ this->pixmaps = pixmaps;
+}
+
+int Model::rowCount(const QModelIndex& parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return pixmaps.size();;
+}
+
+QVariant Model::data(const QModelIndex& index, int role) const
+{
+ if(!index.isValid())
+ return QVariant();
+
+ if(role == Qt::DecorationRole)
+ return QIcon(pixmaps.value(index.row()).scaled(300, 300, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+
+ if(role == Qt::UserRole)
+ return pixmaps.value(index.row());
+
+ return QVariant();
+}
+
+void Model::addPixmap(const QPixmap& pixmap)
+{
+ int row = pixmaps.size();
+ beginInsertRows(QModelIndex(), row, row);
+ pixmaps.insert(row, pixmap);
+ endInsertRows();
+}
diff --git a/gmvc/model.h b/gmvc/model.h
new file mode 100644
index 0000000..f2247f4
--- /dev/null
+++ b/gmvc/model.h
@@ -0,0 +1,20 @@
+#ifndef MODEL_H
+#define MODEL_H
+
+#include <QAbstractListModel>
+#include <QIcon>
+
+class Model :
+ public QAbstractListModel
+{
+ public:
+ explicit Model(QObject *parent = 0);
+ QVariant data(const QModelIndex &index, int role) const;
+ int rowCount(const QModelIndex &parent) const;
+ void addPixmap(const QPixmap& pixmap);
+
+ private:
+ QList<QPixmap> pixmaps;
+};
+
+#endif // MODEL_H
--
1.7.2.5
1
0

42b527a Add listview implementation tentative. With custiom delegate item and custom model.
by Antoine Froger 11 Feb '13
by Antoine Froger 11 Feb '13
11 Feb '13
---
GScribo/GScribo.pro | 8 ++-
GScribo/GScribo.pro.user | 40 ++++++++--------
GScribo/itemdelegate.cpp | 26 ++++++++++
GScribo/itemdelegate.h | 17 ++++++
GScribo/listmodel.cpp | 52 ++++++++++++++++++++
GScribo/listmodel.h | 26 ++++++++++
GScribo/mainwindow.cpp | 2 +-
GScribo/mainwindow.h | 3 +-
GScribo/pageswidget.cpp | 23 ++++-----
GScribo/pageswidget.h | 9 ++-
MVC/MVC.pro | 13 +++++
TestInterface/GScribo.pro.user => MVC/MVC.pro.user | 46 +++++++++---------
MVC/itemdelegate.cpp | 19 +++++++
MVC/itemdelegate.h | 17 ++++++
MVC/listmodel.cpp | 32 ++++++++++++
MVC/listmodel.h | 24 +++++++++
{NotePad => MVC}/main.cpp | 6 +-
MVC/mainwindow.cpp | 40 +++++++++++++++
MVC/mainwindow.h | 30 +++++++++++
MVC/mainwindow.ui | 24 +++++++++
20 files changed, 391 insertions(+), 66 deletions(-)
create mode 100644 GScribo/itemdelegate.cpp
create mode 100644 GScribo/itemdelegate.h
create mode 100644 GScribo/listmodel.cpp
create mode 100644 GScribo/listmodel.h
create mode 100644 MVC/MVC.pro
copy TestInterface/GScribo.pro.user => MVC/MVC.pro.user (87%)
create mode 100644 MVC/itemdelegate.cpp
create mode 100644 MVC/itemdelegate.h
create mode 100644 MVC/listmodel.cpp
create mode 100644 MVC/listmodel.h
copy {NotePad => MVC}/main.cpp (60%)
create mode 100644 MVC/mainwindow.cpp
create mode 100644 MVC/mainwindow.h
create mode 100644 MVC/mainwindow.ui
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
index ad4abe0..7930307 100644
--- a/GScribo/GScribo.pro
+++ b/GScribo/GScribo.pro
@@ -17,9 +17,13 @@ SOURCES += main.cpp \
mainwindow.cpp \
scene.cpp \
selection.cpp \
- pageswidget.cpp
+ pageswidget.cpp \
+ itemdelegate.cpp \
+ listmodel.cpp
HEADERS += mainwindow.h \
scene.h \
selection.h \
- pageswidget.h
+ pageswidget.h \
+ itemdelegate.h \
+ listmodel.h
FORMS += mainwindow.ui
diff --git a/GScribo/GScribo.pro.user b/GScribo/GScribo.pro.user
index 6f863ff..92e91c7 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -76,35 +76,35 @@
<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-Si71aPButo,guid=4a5769b30d2b16bfbff191ee00669e72</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</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-xqG91k</value>
- <value type="QString">GNOME_KEYRING_PID=24747</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8ccgXN</value>
+ <value type="QString">GNOME_KEYRING_PID=30769</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</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=24822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-ViaPN24756/agent.24756</value>
+ <value type="QString">SSH_AGENT_PID=30844</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmDMHCRW</value>
+ <value type="QString">WINDOWID=12582948</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358773046.159332-2135577617</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</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>
@@ -128,35 +128,35 @@
<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-Si71aPButo,guid=4a5769b30d2b16bfbff191ee00669e72</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</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-xqG91k</value>
- <value type="QString">GNOME_KEYRING_PID=24747</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8ccgXN</value>
+ <value type="QString">GNOME_KEYRING_PID=30769</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</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=24822</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-ViaPN24756/agent.24756</value>
+ <value type="QString">SSH_AGENT_PID=30844</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmDMHCRW</value>
+ <value type="QString">WINDOWID=12582948</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358773046.159332-2135577617</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</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>
diff --git a/GScribo/itemdelegate.cpp b/GScribo/itemdelegate.cpp
new file mode 100644
index 0000000..60f8cd3
--- /dev/null
+++ b/GScribo/itemdelegate.cpp
@@ -0,0 +1,26 @@
+#include "itemdelegate.h"
+
+ItemDelegate::ItemDelegate(QWidget *parent):
+ QItemDelegate(parent)
+{
+}
+
+QWidget * ItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem&, const QModelIndex&) const
+{
+ QLabel *label = new QLabel(parent);
+ label->setMinimumSize(100, 100);
+
+ return label;
+}
+
+void ItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
+{
+ QLabel *label = static_cast<QLabel *>(editor);
+ QPixmap pixmap = index.model()->data(index, Qt::DecorationRole).value<QPixmap>();
+ label->setPixmap(pixmap);
+}
+
+void ItemDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &/*index*/) const
+{
+ editor->setGeometry(option.rect);
+}
diff --git a/GScribo/itemdelegate.h b/GScribo/itemdelegate.h
new file mode 100644
index 0000000..1864ccf
--- /dev/null
+++ b/GScribo/itemdelegate.h
@@ -0,0 +1,17 @@
+#ifndef ITEMDELEGATE_H
+#define ITEMDELEGATE_H
+
+#include <QItemDelegate>
+#include <QLabel>
+
+class ItemDelegate:
+ public QItemDelegate
+{
+ public:
+ explicit ItemDelegate(QWidget *parent = 0);
+ QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
+ void setEditorData(QWidget *editor, const QModelIndex &index) const;
+ void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+};
+
+#endif // ITEMDELEGATE_H
diff --git a/GScribo/listmodel.cpp b/GScribo/listmodel.cpp
new file mode 100644
index 0000000..4bbe802
--- /dev/null
+++ b/GScribo/listmodel.cpp
@@ -0,0 +1,52 @@
+#include "listmodel.h"
+
+ListModel::ListModel(QStringList stringList, QObject *parent):
+ QAbstractListModel(parent)
+{
+ this->stringList = stringList;
+}
+
+ListModel::~ListModel()
+{
+}
+
+int ListModel::rowCount(const QModelIndex &/*parent*/) const
+{
+ return stringList.count();
+}
+
+QVariant ListModel::data(const QModelIndex &index, int role) const
+{
+ if(index.isValid() && stringList.size() < index.row() && (role == Qt::DisplayRole || role == Qt::EditRole))
+ return stringList.at(index.row());
+ else
+ return QVariant();
+}
+
+QVariant ListModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if(role == Qt::DisplayRole && orientation == Qt::Horizontal)
+ return QVariant();
+ else
+ return QString("Row %1").arg(section);
+}
+
+/*Qt::ItemFlags ListModel::flags(const QModelIndex &index) const
+{
+ if(!index.isValid())
+ return Qt::ItemIsEnabled;
+ else
+ return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
+}
+
+bool ListModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+ if(index.isValid() && role == Qt::DisplayRole)
+ {
+ stringList.replace(index.row(), value.toString());
+ emit dataChanged(index, index);
+ return true;
+ }
+ else
+ return false;
+}*/
diff --git a/GScribo/listmodel.h b/GScribo/listmodel.h
new file mode 100644
index 0000000..c7f061f
--- /dev/null
+++ b/GScribo/listmodel.h
@@ -0,0 +1,26 @@
+#ifndef LISTMODEL_H
+#define LISTMODEL_H
+
+#include <QAbstractListModel>
+#include <QLabel>
+#include <QList>
+
+class ListModel:
+ public QAbstractListModel
+{
+ Q_OBJECT
+
+ public:
+ explicit ListModel(QStringList stringList, QObject *parent = 0);
+ ~ListModel();
+ int rowCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DecorationRole) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DecorationRole) const;
+ /*Qt::ItemFlags flags(const QModelIndex &index) const;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::DecorationRole);*/
+
+ private:
+ QStringList stringList;
+};
+
+#endif // LISTMODEL_H
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
index 4ef2aa1..4b68fbe 100644
--- a/GScribo/mainwindow.cpp
+++ b/GScribo/mainwindow.cpp
@@ -60,7 +60,7 @@ void MainWindow::initTextRegion()
dockText->setWidget(textEdit);
addDockWidget(Qt::RightDockWidgetArea, dockText);
- dockText->hide();
+ //dockText->hide();
}
void MainWindow::initToolBar()
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
index aa80b72..b5355f1 100644
--- a/GScribo/mainwindow.h
+++ b/GScribo/mainwindow.h
@@ -18,7 +18,8 @@ namespace Ui
class MainWindow;
}
-class MainWindow : public QMainWindow
+class MainWindow:
+ public QMainWindow
{
Q_OBJECT
diff --git a/GScribo/pageswidget.cpp b/GScribo/pageswidget.cpp
index 2f23d9d..ed34d84 100644
--- a/GScribo/pageswidget.cpp
+++ b/GScribo/pageswidget.cpp
@@ -3,28 +3,25 @@
PagesWidget::PagesWidget(QWidget *parent):
QWidget(parent)
{
+ QStringList l;
+ l << "/lrde/home/stage/froger_a/ppm/mp00032c.ppm" << "/lrde/home/stage/froger_a/ppm/mp00042.ppm" << "/lrde/home/stage/froger_a/ppm/mp00076.ppm";
filenames = new QStringList;
- scrollArea = new QScrollArea(this);
- scrollArea->setGeometry(0, 0, 1000, 1000);
- layout = new QHBoxLayout;
- QWidget *widget = new QWidget;
- widget->setLayout(layout);
- scrollArea->setWidget(widget);
+ model = new ListModel(l);
+ listView = new QListView(this);
+ listView->setItemDelegate(new ItemDelegate());
+ listView->setModel(model);
+ listView->update(model->index(0, 0));
+ listView->show();
}
PagesWidget::~PagesWidget()
{
delete filenames;
- delete layout;
- delete scrollArea;
+ delete listView;
}
void PagesWidget::addPicture(const QString& filename, const QPixmap& pixmap)
{
*filenames << filename;
- QPixmap pix = pixmap.scaled(100, 100, Qt::IgnoreAspectRatio);
- QLabel *label = new QLabel(this);
- label->setPixmap(pix);
- layout->addWidget(label, 0, Qt::AlignHCenter | Qt::AlignTop);
- scrollArea->update(scrollArea->geometry());
+
}
diff --git a/GScribo/pageswidget.h b/GScribo/pageswidget.h
index 3747d20..805deff 100644
--- a/GScribo/pageswidget.h
+++ b/GScribo/pageswidget.h
@@ -5,8 +5,12 @@
#include <QScrollArea>
#include <QVBoxLayout>
#include <QListWidget>
+#include <QStandardItemModel>
#include <QLabel>
+#include "itemdelegate.h"
+#include "listmodel.h"
+
class PagesWidget:
public QWidget
{
@@ -14,13 +18,12 @@ class PagesWidget:
public:
explicit PagesWidget(QWidget *parent = 0);
- explicit PagesWidget(QWidgetPrivate &d, QWidget *parent = 0);
~PagesWidget();
void addPicture(const QString& filename, const QPixmap& pixmap);
private:
- QScrollArea *scrollArea;
- QHBoxLayout *layout;
+ QListView *listView;
+ ListModel *model;
QStringList *filenames;
};
diff --git a/MVC/MVC.pro b/MVC/MVC.pro
new file mode 100644
index 0000000..1a4d48c
--- /dev/null
+++ b/MVC/MVC.pro
@@ -0,0 +1,13 @@
+# -------------------------------------------------
+# Project created by QtCreator 2013-01-22T16:00:23
+# -------------------------------------------------
+TARGET = MVC
+TEMPLATE = app
+SOURCES += main.cpp \
+ mainwindow.cpp \
+ itemdelegate.cpp \
+ listmodel.cpp
+HEADERS += mainwindow.h \
+ listmodel.h \
+ itemdelegate.h
+FORMS += mainwindow.ui
diff --git a/TestInterface/GScribo.pro.user b/MVC/MVC.pro.user
similarity index 87%
copy from TestInterface/GScribo.pro.user
copy to MVC/MVC.pro.user
index 4b00d43..c8ef164 100644
--- a/TestInterface/GScribo.pro.user
+++ b/MVC/MVC.pro.user
@@ -10,11 +10,11 @@
</data>
<data>
<variable>RunConfiguration0-ProFile</variable>
- <value type="QString">GScribo.pro</value>
+ <value type="QString">MVC.pro</value>
</data>
<data>
<variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">GScribo</value>
+ <value type="QString">MVC</value>
</data>
<data>
<variable>RunConfiguration0-UseDyldImageSuffix</variable>
@@ -76,14 +76,14 @@
<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-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</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-9aAGCJ</value>
- <value type="QString">GNOME_KEYRING_PID=19876</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8ccgXN</value>
+ <value type="QString">GNOME_KEYRING_PID=30769</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>
@@ -91,20 +91,20 @@
<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">PWD=/lrde/home/stage/froger_a/qt/MVC</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=19951</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</value>
+ <value type="QString">SSH_AGENT_PID=30844</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</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>
@@ -112,7 +112,7 @@
<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">/amd/nfs/volume1/home/stage/froger_a/qt/MVC/MVC.pro</value>
<value type="QString">-spec</value>
<value type="QString">linux-g++</value>
<value type="QString">-r</value>
@@ -120,7 +120,7 @@
</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>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/MVC</value>
</valuemap>
</data>
<data>
@@ -128,14 +128,14 @@
<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-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sncykruQ0C,guid=e454b1a02a95fc6454d7a56d0067ee2b</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-9aAGCJ</value>
- <value type="QString">GNOME_KEYRING_PID=19876</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8ccgXN</value>
+ <value type="QString">GNOME_KEYRING_PID=30769</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>
@@ -143,20 +143,20 @@
<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">PWD=/lrde/home/stage/froger_a/qt/MVC</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=19951</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</value>
+ <value type="QString">SSH_AGENT_PID=30844</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-gtQAz30778/agent.30778</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm3KFZQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358858991.561353-1070905078</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>
@@ -169,7 +169,7 @@
</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="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/MVC</value>
</valuemap>
</data>
<data>
diff --git a/MVC/itemdelegate.cpp b/MVC/itemdelegate.cpp
new file mode 100644
index 0000000..c241e1e
--- /dev/null
+++ b/MVC/itemdelegate.cpp
@@ -0,0 +1,19 @@
+#include "itemdelegate.h"
+
+ItemDelegate::ItemDelegate(QWidget *parent):
+ QAbstractItemDelegate(parent)
+{
+}
+
+void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ QString path = index.model()->data(index, Qt::DecorationRole).toString();
+ QPixmap pixmap(path);
+
+ painter->drawPixmap(0, index.row() * 210, 200, 200, pixmap);
+}
+
+QSize ItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ return QSize(200, 200);
+}
diff --git a/MVC/itemdelegate.h b/MVC/itemdelegate.h
new file mode 100644
index 0000000..1c653d5
--- /dev/null
+++ b/MVC/itemdelegate.h
@@ -0,0 +1,17 @@
+#ifndef ITEMDELEGATE_H
+#define ITEMDELEGATE_H
+
+#include <QItemDelegate>
+#include <QLabel>
+#include <QPainter>
+
+class ItemDelegate:
+ public QAbstractItemDelegate
+{
+ public:
+ explicit ItemDelegate(QWidget *parent = 0);
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+};
+
+#endif // ITEMDELEGATE_H
diff --git a/MVC/listmodel.cpp b/MVC/listmodel.cpp
new file mode 100644
index 0000000..709853e
--- /dev/null
+++ b/MVC/listmodel.cpp
@@ -0,0 +1,32 @@
+#include "listmodel.h"
+
+ListModel::ListModel(QStringList list, QObject *parent):
+ QAbstractListModel(parent)
+{
+ this->list = list;
+}
+
+ListModel::~ListModel()
+{
+}
+
+int ListModel::rowCount(const QModelIndex &/*parent*/) const
+{
+ return list.count();
+}
+
+QVariant ListModel::data(const QModelIndex &index, int role) const
+{
+ if(index.isValid() && index.row() < list.size() && role == Qt::DecorationRole)
+ return list.at(index.row());
+ else
+ return QVariant();
+}
+
+QVariant ListModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if(role != Qt::DecorationRole && orientation == Qt::Horizontal)
+ return QVariant();
+ else
+ return QString("Row %1").arg(section);
+}
diff --git a/MVC/listmodel.h b/MVC/listmodel.h
new file mode 100644
index 0000000..35ae99c
--- /dev/null
+++ b/MVC/listmodel.h
@@ -0,0 +1,24 @@
+#ifndef LISTMODEL_H
+#define LISTMODEL_H
+
+#include <QAbstractListModel>
+#include <QLabel>
+#include <QList>
+
+class ListModel:
+ public QAbstractListModel
+{
+ Q_OBJECT
+
+ public:
+ explicit ListModel(QStringList list, QObject *parent = 0);
+ ~ListModel();
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DecorationRole) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DecorationRole) const;
+
+ private:
+ QStringList list;
+};
+
+#endif // LISTMODEL_H
diff --git a/NotePad/main.cpp b/MVC/main.cpp
similarity index 60%
copy from NotePad/main.cpp
copy to MVC/main.cpp
index 137c3a4..ab61e7c 100644
--- a/NotePad/main.cpp
+++ b/MVC/main.cpp
@@ -1,11 +1,11 @@
#include <QtGui/QApplication>
-#include "notepad.h"
+#include "mainwindow.h"
int main(int argc, char *argv[])
{
+ QApplication::setGraphicsSystem("raster");
QApplication a(argc, argv);
- NotePad w;
+ MainWindow w;
w.show();
-
return a.exec();
}
diff --git a/MVC/mainwindow.cpp b/MVC/mainwindow.cpp
new file mode 100644
index 0000000..72bf823
--- /dev/null
+++ b/MVC/mainwindow.cpp
@@ -0,0 +1,40 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+
+ QStringList list;
+ list << "/lrde/home/stage/froger_a/ppm/mp00032c.ppm" << "/lrde/home/stage/froger_a/ppm/mp00042.ppm" << "/lrde/home/stage/froger_a/ppm/mp00076.ppm";
+
+ QAbstractItemModel *model = new ListModel(list);
+
+ ItemDelegate *delegate = new ItemDelegate();
+
+ QListView *view = new QListView;
+ view->setModel(model);
+ view->setItemDelegate(delegate);
+ setCentralWidget(view);
+ view->show();
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+void MainWindow::changeEvent(QEvent *e)
+{
+ QMainWindow::changeEvent(e);
+ switch (e->type())
+ {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/MVC/mainwindow.h b/MVC/mainwindow.h
new file mode 100644
index 0000000..8bf225d
--- /dev/null
+++ b/MVC/mainwindow.h
@@ -0,0 +1,30 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QListView>
+
+#include "itemdelegate.h"
+#include "listmodel.h"
+
+namespace Ui
+{
+ class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+ public:
+ MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+ protected:
+ void changeEvent(QEvent *e);
+
+ private:
+ Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H
diff --git a/MVC/mainwindow.ui b/MVC/mainwindow.ui
new file mode 100644
index 0000000..97c03be
--- /dev/null
+++ b/MVC/mainwindow.ui
@@ -0,0 +1,24 @@
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>400</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>MainWindow</string>
+ </property>
+ <widget class="QMenuBar" name="menuBar" />
+ <widget class="QToolBar" name="mainToolBar" />
+ <widget class="QWidget" name="centralWidget" />
+ <widget class="QStatusBar" name="statusBar" />
+ </widget>
+ <layoutDefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
--
1.7.2.5
1
0

11 Feb '13
---
XmlParser/XmlParser.pro => GScribo/GScribo.pro | 29 ++-----
.../GScribo.pro.user | 50 +++++-----
XmlParser/configs.h => GScribo/config.h | 0
{XmlParser => GScribo}/dir.h | 0
{XmlParser => GScribo}/main.cpp | 7 +-
GScribo/mainwindow.cpp | 97 ++++++++++++++++++++
GScribo/mainwindow.h | 51 ++++++++++
Test/test.ui => GScribo/mainwindow.ui | 38 +++-----
GScribo/pageswidget.cpp | 30 ++++++
GScribo/pageswidget.h | 27 ++++++
{XmlParser => GScribo}/polygonitem.cpp | 0
{XmlParser => GScribo}/polygonitem.h | 0
{XmlParser => GScribo}/preprocess.cpp | 0
{XmlParser => GScribo}/preprocess.h | 0
{XmlParser => GScribo}/process.cpp | 0
{XmlParser => GScribo}/process.h | 0
{XmlParser => GScribo}/progressdialog.cpp | 0
{XmlParser => GScribo}/progressdialog.h | 0
{XmlParser => GScribo}/runner.cpp | 0
{XmlParser => GScribo}/runner.h | 0
{XmlParser => GScribo}/scene.cpp | 12 +--
{XmlParser => GScribo}/scene.h | 8 +-
{XmlParser => GScribo}/selection.cpp | 4 +-
{XmlParser => GScribo}/selection.h | 1 -
{XmlParser => GScribo}/xml.cpp | 0
{XmlParser => GScribo}/xml.h | 0
.../XmlParser.pro => TestInterface/GScribo.pro | 31 ++-----
.../GScribo.pro.user | 46 +++++-----
XmlParser/configs.h => TestInterface/config.h | 0
{XmlParser => TestInterface}/dir.h | 0
{XmlParser => TestInterface}/main.cpp | 9 +-
TestInterface/mainwindow.cpp | 75 +++++++++++++++
TestInterface/mainwindow.h | 40 ++++++++
Test/test.ui => TestInterface/mainwindow.ui | 35 ++-----
{XmlParser => TestInterface}/polygonitem.cpp | 0
{XmlParser => TestInterface}/polygonitem.h | 0
{XmlParser => TestInterface}/preprocess.cpp | 0
{XmlParser => TestInterface}/preprocess.h | 0
{XmlParser => TestInterface}/process.cpp | 0
{XmlParser => TestInterface}/process.h | 0
{XmlParser => TestInterface}/progressdialog.cpp | 0
{XmlParser => TestInterface}/progressdialog.h | 0
{XmlParser => TestInterface}/runner.cpp | 0
{XmlParser => TestInterface}/runner.h | 0
{XmlParser => TestInterface}/scene.cpp | 10 +--
{XmlParser => TestInterface}/scene.h | 5 +-
{XmlParser => TestInterface}/selection.cpp | 2 +-
{XmlParser => TestInterface}/selection.h | 1 -
{XmlParser => TestInterface}/xml.cpp | 0
{XmlParser => TestInterface}/xml.h | 0
XmlParser/XmlParser.pro | 3 +-
XmlParser/XmlParser.pro.user | 36 ++++----
XmlParser/main.cpp | 5 +
XmlParser/mainwindow.cpp | 1 +
XmlParser/mainwindow.h | 1 +
XmlParser/scene.cpp | 2 +
56 files changed, 460 insertions(+), 196 deletions(-)
copy XmlParser/XmlParser.pro => GScribo/GScribo.pro (59%)
copy XmlParser/XmlParser.pro.user.1.3 => GScribo/GScribo.pro.user (85%)
copy XmlParser/configs.h => GScribo/config.h (100%)
copy {XmlParser => GScribo}/dir.h (100%)
copy {XmlParser => GScribo}/main.cpp (72%)
create mode 100644 GScribo/mainwindow.cpp
create mode 100644 GScribo/mainwindow.h
copy Test/test.ui => GScribo/mainwindow.ui (60%)
create mode 100644 GScribo/pageswidget.cpp
create mode 100644 GScribo/pageswidget.h
copy {XmlParser => GScribo}/polygonitem.cpp (100%)
copy {XmlParser => GScribo}/polygonitem.h (100%)
copy {XmlParser => GScribo}/preprocess.cpp (100%)
copy {XmlParser => GScribo}/preprocess.h (100%)
copy {XmlParser => GScribo}/process.cpp (100%)
copy {XmlParser => GScribo}/process.h (100%)
copy {XmlParser => GScribo}/progressdialog.cpp (100%)
copy {XmlParser => GScribo}/progressdialog.h (100%)
copy {XmlParser => GScribo}/runner.cpp (100%)
copy {XmlParser => GScribo}/runner.h (100%)
copy {XmlParser => GScribo}/scene.cpp (86%)
copy {XmlParser => GScribo}/scene.h (86%)
copy {XmlParser => GScribo}/selection.cpp (88%)
copy {XmlParser => GScribo}/selection.h (99%)
copy {XmlParser => GScribo}/xml.cpp (100%)
copy {XmlParser => GScribo}/xml.h (100%)
copy XmlParser/XmlParser.pro => TestInterface/GScribo.pro (55%)
copy XmlParser/XmlParser.pro.user.1.3 => TestInterface/GScribo.pro.user (86%)
copy XmlParser/configs.h => TestInterface/config.h (100%)
copy {XmlParser => TestInterface}/dir.h (100%)
copy {XmlParser => TestInterface}/main.cpp (70%)
create mode 100644 TestInterface/mainwindow.cpp
create mode 100644 TestInterface/mainwindow.h
copy Test/test.ui => TestInterface/mainwindow.ui (60%)
copy {XmlParser => TestInterface}/polygonitem.cpp (100%)
copy {XmlParser => TestInterface}/polygonitem.h (100%)
copy {XmlParser => TestInterface}/preprocess.cpp (100%)
copy {XmlParser => TestInterface}/preprocess.h (100%)
copy {XmlParser => TestInterface}/process.cpp (100%)
copy {XmlParser => TestInterface}/process.h (100%)
copy {XmlParser => TestInterface}/progressdialog.cpp (100%)
copy {XmlParser => TestInterface}/progressdialog.h (100%)
copy {XmlParser => TestInterface}/runner.cpp (100%)
copy {XmlParser => TestInterface}/runner.h (100%)
copy {XmlParser => TestInterface}/scene.cpp (86%)
copy {XmlParser => TestInterface}/scene.h (86%)
copy {XmlParser => TestInterface}/selection.cpp (96%)
copy {XmlParser => TestInterface}/selection.h (99%)
copy {XmlParser => TestInterface}/xml.cpp (100%)
copy {XmlParser => TestInterface}/xml.h (100%)
diff --git a/XmlParser/XmlParser.pro b/GScribo/GScribo.pro
similarity index 59%
copy from XmlParser/XmlParser.pro
copy to GScribo/GScribo.pro
index 597fc47..ad4abe0 100644
--- a/XmlParser/XmlParser.pro
+++ b/GScribo/GScribo.pro
@@ -1,9 +1,8 @@
# -------------------------------------------------
-# Project created by QtCreator 2013-01-11T14:21:43
+# Project created by QtCreator 2013-01-21T09:20:54
# -------------------------------------------------
-QT += xml
-TARGET = XmlParser
-TEMPLATE = app
+QT += opengl \
+ xml
INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/ \
/lrde/home/stage/froger_a/olena/scribo/ \
/lrde/home/stage/froger_a/olena/_build/scribo/demo/
@@ -12,29 +11,15 @@ QMAKE_CXXFLAGS += -DNDEBUG \
LIBS += -I/usr/include/graphicsImage \
-lGraphicsMagick++ \
-ltesseract_full
+TARGET = GScribo
+TEMPLATE = app
SOURCES += main.cpp \
mainwindow.cpp \
- xml.cpp \
scene.cpp \
selection.cpp \
- polygonitem.cpp \
- runner.cpp \
- toolbar.cpp \
- process.cpp \
- preprocess.cpp \
- configs.cpp \
- progressdialog.cpp
+ pageswidget.cpp
HEADERS += mainwindow.h \
- region.h \
- xml.h \
scene.h \
selection.h \
- polygonitem.h \
- runner.h \
- toolbar.h \
- process.h \
- preprocess.h \
- configs.h \
- dir.h \
- progressdialog.h
+ pageswidget.h
FORMS += mainwindow.ui
diff --git a/XmlParser/XmlParser.pro.user.1.3 b/GScribo/GScribo.pro.user
similarity index 85%
copy from XmlParser/XmlParser.pro.user.1.3
copy to GScribo/GScribo.pro.user
index 29f9b56..6f863ff 100644
--- a/XmlParser/XmlParser.pro.user.1.3
+++ b/GScribo/GScribo.pro.user
@@ -10,11 +10,11 @@
</data>
<data>
<variable>RunConfiguration0-ProFile</variable>
- <value type="QString">XmlParser.pro</value>
+ <value type="QString">GScribo.pro</value>
</data>
<data>
<variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">XmlParser</value>
+ <value type="QString">GScribo</value>
</data>
<data>
<variable>RunConfiguration0-UseDyldImageSuffix</variable>
@@ -76,35 +76,35 @@
<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-YjhocK9Z3d,guid=e9e5f2da71aeced554355e6f00596ece</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Si71aPButo,guid=4a5769b30d2b16bfbff191ee00669e72</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-INUHb2</value>
- <value type="QString">GNOME_KEYRING_PID=27655</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-xqG91k</value>
+ <value type="QString">GNOME_KEYRING_PID=24747</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">OLDPWD=/lrde/home/stage/froger_a</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/XmlParser</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=27730</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aIvoE27664/agent.27664</value>
+ <value type="QString">SSH_AGENT_PID=24822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-ViaPN24756/agent.24756</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmJEZ7QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmDMHCRW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1357908881.805303-96205090</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358773046.159332-2135577617</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>
@@ -112,7 +112,7 @@
<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/XmlParser/XmlParser.pro</value>
+ <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>
@@ -120,7 +120,7 @@
</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/XmlParser</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
@@ -128,35 +128,35 @@
<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-YjhocK9Z3d,guid=e9e5f2da71aeced554355e6f00596ece</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Si71aPButo,guid=4a5769b30d2b16bfbff191ee00669e72</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-INUHb2</value>
- <value type="QString">GNOME_KEYRING_PID=27655</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-xqG91k</value>
+ <value type="QString">GNOME_KEYRING_PID=24747</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">OLDPWD=/lrde/home/stage/froger_a</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/XmlParser</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=27730</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aIvoE27664/agent.27664</value>
+ <value type="QString">SSH_AGENT_PID=24822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-ViaPN24756/agent.24756</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmJEZ7QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmDMHCRW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1357908881.805303-96205090</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358773046.159332-2135577617</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>
@@ -169,7 +169,7 @@
</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/XmlParser</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
diff --git a/XmlParser/configs.h b/GScribo/config.h
similarity index 100%
copy from XmlParser/configs.h
copy to GScribo/config.h
diff --git a/XmlParser/dir.h b/GScribo/dir.h
similarity index 100%
copy from XmlParser/dir.h
copy to GScribo/dir.h
diff --git a/XmlParser/main.cpp b/GScribo/main.cpp
similarity index 72%
copy from XmlParser/main.cpp
copy to GScribo/main.cpp
index aecf5cd..b8f57bd 100644
--- a/XmlParser/main.cpp
+++ b/GScribo/main.cpp
@@ -1,5 +1,3 @@
-#undef MLN_WO_GLOBAL_VARS
-
#include <mln/labeling/colorize.hh>
#include <mln/math/pi.hh>
#include <mln/io/magick/load.hh>
@@ -7,11 +5,14 @@
#include <mln/debug/filename.hh>
#include <scribo/make/debug_filename.hh>
#include <QtGui/QApplication>
+
#include "mainwindow.h"
-int main(int argc, char **argv)
+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).
QApplication::setGraphicsSystem("raster");
QApplication a(argc, argv);
MainWindow w;
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
new file mode 100644
index 0000000..4ef2aa1
--- /dev/null
+++ b/GScribo/mainwindow.cpp
@@ -0,0 +1,97 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+
+ initGraphicsRegion();
+ initTextRegion();
+ initTablePage();
+ initToolBar();
+}
+
+MainWindow::~MainWindow()
+{
+ delete dockText;
+ delete dockPages;
+ delete scene;
+ delete graphicsView;
+ delete textEdit;
+ delete ui;
+}
+
+void MainWindow::initGraphicsRegion()
+{
+ graphicsView = new QGraphicsView;
+ // Cache backgroud to speed up its repaint.
+ graphicsView->setCacheMode(QGraphicsView::CacheBackground);
+ graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
+
+ scene = new Scene();
+ // Disable scroll bar extend with a non-null rectangle.
+ scene->setSceneRect(0, 0, 0, 1);
+ graphicsView->setScene(scene);
+
+ setCentralWidget(graphicsView);
+}
+
+void MainWindow::initTablePage()
+{
+ dockPages = new QDockWidget(tr("Pages"));
+ dockPages->setAllowedAreas(Qt::AllDockWidgetAreas);
+ dockPages->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
+
+ pagesWidget = new PagesWidget;
+ dockPages->setWidget(pagesWidget);
+
+ addDockWidget(Qt::LeftDockWidgetArea, dockPages);
+}
+
+void MainWindow::initTextRegion()
+{
+ dockText = new QDockWidget(tr("Previsualization"));
+ dockText->setAllowedAreas(Qt::AllDockWidgetAreas);
+ dockText->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);
+
+ textEdit = new QPlainTextEdit;
+ dockText->setWidget(textEdit);
+
+ addDockWidget(Qt::RightDockWidgetArea, dockText);
+ dockText->hide();
+}
+
+void MainWindow::initToolBar()
+{
+ QAction *open = ui->mainToolBar->addAction(tr("Open"));
+ connect(open, SIGNAL(triggered()), this, SLOT(onOpen()));
+}
+
+void MainWindow::onOpen()
+{
+ QString path = QFileDialog::getOpenFileName(this);
+ if(path != "")
+ {
+ QPixmap pixmap(path);
+
+ scene->setSceneRect(pixmap.rect());
+ scene->setBackgroundBrush(QBrush(pixmap));
+
+ pagesWidget->addPicture(path, pixmap);
+ }
+}
+
+void MainWindow::changeEvent(QEvent *e)
+{
+ QMainWindow::changeEvent(e);
+ switch (e->type())
+ {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/GScribo/mainwindow.h b/GScribo/mainwindow.h
new file mode 100644
index 0000000..aa80b72
--- /dev/null
+++ b/GScribo/mainwindow.h
@@ -0,0 +1,51 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QHBoxLayout>
+#include <QDockWidget>
+#include <QGraphicsView>
+#include <QGLWidget>
+#include <QPlainTextEdit>
+#include <QGroupBox>
+#include <QFileDialog>
+
+#include "scene.h"
+#include "pageswidget.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 initTextRegion();
+ void initToolBar();
+ void initTablePage();
+
+ Ui::MainWindow *ui;
+ QDockWidget *dockText;
+ QDockWidget *dockPages;
+ Scene *scene;
+ QGraphicsView *graphicsView;
+ QPlainTextEdit *textEdit;
+ PagesWidget *pagesWidget;
+ QString imagePath;
+
+ private slots:
+ void onOpen();
+};
+
+#endif // MAINWINDOW_H
diff --git a/Test/test.ui b/GScribo/mainwindow.ui
similarity index 60%
copy from Test/test.ui
copy to GScribo/mainwindow.ui
index 5fb0299..3a174ec 100644
--- a/Test/test.ui
+++ b/GScribo/mainwindow.ui
@@ -1,57 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
- <class>Test</class>
- <widget class="QMainWindow" name="Test">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>919</width>
- <height>562</height>
+ <width>671</width>
+ <height>436</height>
</rect>
</property>
<property name="windowTitle">
- <string>Test</string>
+ <string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
- <widget class="QLabel" name="label">
- <property name="geometry">
- <rect>
- <x>250</x>
- <y>130</y>
- <width>341</width>
- <height>181</height>
- </rect>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>919</width>
+ <width>671</width>
<height>23</height>
</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>true</bool>
+ <bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
- <action name="actionLoad">
- <property name="text">
- <string>Load</string>
- </property>
- </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
diff --git a/GScribo/pageswidget.cpp b/GScribo/pageswidget.cpp
new file mode 100644
index 0000000..2f23d9d
--- /dev/null
+++ b/GScribo/pageswidget.cpp
@@ -0,0 +1,30 @@
+#include "pageswidget.h"
+
+PagesWidget::PagesWidget(QWidget *parent):
+ QWidget(parent)
+{
+ filenames = new QStringList;
+ scrollArea = new QScrollArea(this);
+ scrollArea->setGeometry(0, 0, 1000, 1000);
+ layout = new QHBoxLayout;
+ QWidget *widget = new QWidget;
+ widget->setLayout(layout);
+ scrollArea->setWidget(widget);
+}
+
+PagesWidget::~PagesWidget()
+{
+ delete filenames;
+ delete layout;
+ delete scrollArea;
+}
+
+void PagesWidget::addPicture(const QString& filename, const QPixmap& pixmap)
+{
+ *filenames << filename;
+ QPixmap pix = pixmap.scaled(100, 100, Qt::IgnoreAspectRatio);
+ QLabel *label = new QLabel(this);
+ label->setPixmap(pix);
+ layout->addWidget(label, 0, Qt::AlignHCenter | Qt::AlignTop);
+ scrollArea->update(scrollArea->geometry());
+}
diff --git a/GScribo/pageswidget.h b/GScribo/pageswidget.h
new file mode 100644
index 0000000..3747d20
--- /dev/null
+++ b/GScribo/pageswidget.h
@@ -0,0 +1,27 @@
+#ifndef PAGESWIDGET_H
+#define PAGESWIDGET_H
+
+#include <QWidget>
+#include <QScrollArea>
+#include <QVBoxLayout>
+#include <QListWidget>
+#include <QLabel>
+
+class PagesWidget:
+ public QWidget
+{
+ Q_OBJECT
+
+ public:
+ explicit PagesWidget(QWidget *parent = 0);
+ explicit PagesWidget(QWidgetPrivate &d, QWidget *parent = 0);
+ ~PagesWidget();
+ void addPicture(const QString& filename, const QPixmap& pixmap);
+
+ private:
+ QScrollArea *scrollArea;
+ QHBoxLayout *layout;
+ QStringList *filenames;
+};
+
+#endif // PAGESWIDGET_H
diff --git a/XmlParser/polygonitem.cpp b/GScribo/polygonitem.cpp
similarity index 100%
copy from XmlParser/polygonitem.cpp
copy to GScribo/polygonitem.cpp
diff --git a/XmlParser/polygonitem.h b/GScribo/polygonitem.h
similarity index 100%
copy from XmlParser/polygonitem.h
copy to GScribo/polygonitem.h
diff --git a/XmlParser/preprocess.cpp b/GScribo/preprocess.cpp
similarity index 100%
copy from XmlParser/preprocess.cpp
copy to GScribo/preprocess.cpp
diff --git a/XmlParser/preprocess.h b/GScribo/preprocess.h
similarity index 100%
copy from XmlParser/preprocess.h
copy to GScribo/preprocess.h
diff --git a/XmlParser/process.cpp b/GScribo/process.cpp
similarity index 100%
copy from XmlParser/process.cpp
copy to GScribo/process.cpp
diff --git a/XmlParser/process.h b/GScribo/process.h
similarity index 100%
copy from XmlParser/process.h
copy to GScribo/process.h
diff --git a/XmlParser/progressdialog.cpp b/GScribo/progressdialog.cpp
similarity index 100%
copy from XmlParser/progressdialog.cpp
copy to GScribo/progressdialog.cpp
diff --git a/XmlParser/progressdialog.h b/GScribo/progressdialog.h
similarity index 100%
copy from XmlParser/progressdialog.h
copy to GScribo/progressdialog.h
diff --git a/XmlParser/runner.cpp b/GScribo/runner.cpp
similarity index 100%
copy from XmlParser/runner.cpp
copy to GScribo/runner.cpp
diff --git a/XmlParser/runner.h b/GScribo/runner.h
similarity index 100%
copy from XmlParser/runner.h
copy to GScribo/runner.h
diff --git a/XmlParser/scene.cpp b/GScribo/scene.cpp
similarity index 86%
copy from XmlParser/scene.cpp
copy to GScribo/scene.cpp
index 612d2bd..ee2007a 100644
--- a/XmlParser/scene.cpp
+++ b/GScribo/scene.cpp
@@ -28,7 +28,7 @@ void Scene::init()
isPressing = false;
clic = false;
selection = new Selection(this);
-}
+}
void Scene::removeItems()
{
@@ -48,6 +48,7 @@ void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
isPressing = true;
clic = true;
pressPos = event->scenePos();
+ selection->show();
}
}
@@ -74,13 +75,8 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
isPressing = false;
if(clic)
selection->setRect(QRectF(QPointF(0, 0), event->scenePos()));
- emit repaintItems(selection->rect(), clic);
+ emit repaintItem(selection->rect(), clic);
selection->setRect(0, 0, 0, 0);
+ selection->hide();
}
}
-
-QString Scene::debug(QRect &rect)
-{
- return "Position : " + QString::number(rect.x()) + ", " + QString::number(rect.y()) + "\n" +
- "Size : " + QString::number(rect.width()) + ", " + QString::number(rect.height());
-}
diff --git a/XmlParser/scene.h b/GScribo/scene.h
similarity index 86%
copy from XmlParser/scene.h
copy to GScribo/scene.h
index b7294c6..86ca8c7 100644
--- a/XmlParser/scene.h
+++ b/GScribo/scene.h
@@ -1,8 +1,10 @@
#ifndef SCENE_H
#define SCENE_H
+#include <QFileDialog>
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
+
#include "selection.h"
#include "polygonitem.h"
@@ -25,7 +27,6 @@ class Scene :
private:
void init();
- QString debug(QRect &rect);
Selection *selection;
QPointF pressPos;
@@ -33,8 +34,7 @@ class Scene :
bool clic;
signals:
- void repaintItems(const QRectF& rect, bool clic);
- void sendString(QString& string);
-};
+ void repaintItem(const QRectF& rect, bool clic);
+ };
#endif // SCENE_H
diff --git a/XmlParser/selection.cpp b/GScribo/selection.cpp
similarity index 88%
copy from XmlParser/selection.cpp
copy to GScribo/selection.cpp
index 51e3fe5..6020312 100644
--- a/XmlParser/selection.cpp
+++ b/GScribo/selection.cpp
@@ -24,10 +24,10 @@ void Selection::init()
QPen pen;
pen.setStyle(Qt::DashLine);
pen.setCapStyle(Qt::SquareCap);
- pen.setWidth(1);
+ pen.setCosmetic(true);
setPen(pen);
QBrush brush;
brush.setStyle(Qt::Dense4Pattern);
- brush.setColor(QColor::fromRgb(100, 200, 60, 100));
+ brush.setColor(QColor::fromRgb(80, 200, 10, 100));
setBrush(brush);
}
diff --git a/XmlParser/selection.h b/GScribo/selection.h
similarity index 99%
copy from XmlParser/selection.h
copy to GScribo/selection.h
index dad1038..4864e15 100644
--- a/XmlParser/selection.h
+++ b/GScribo/selection.h
@@ -5,7 +5,6 @@
#include <QPen>
#include <climits>
-
class Selection :
public QGraphicsRectItem
{
diff --git a/XmlParser/xml.cpp b/GScribo/xml.cpp
similarity index 100%
copy from XmlParser/xml.cpp
copy to GScribo/xml.cpp
diff --git a/XmlParser/xml.h b/GScribo/xml.h
similarity index 100%
copy from XmlParser/xml.h
copy to GScribo/xml.h
diff --git a/XmlParser/XmlParser.pro b/TestInterface/GScribo.pro
similarity index 55%
copy from XmlParser/XmlParser.pro
copy to TestInterface/GScribo.pro
index 597fc47..db83ffa 100644
--- a/XmlParser/XmlParser.pro
+++ b/TestInterface/GScribo.pro
@@ -1,9 +1,8 @@
# -------------------------------------------------
-# Project created by QtCreator 2013-01-11T14:21:43
+# Project created by QtCreator 2013-01-21T09:20:54
# -------------------------------------------------
-QT += xml
-TARGET = XmlParser
-TEMPLATE = app
+QT += opengl \
+ xml
INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/ \
/lrde/home/stage/froger_a/olena/scribo/ \
/lrde/home/stage/froger_a/olena/_build/scribo/demo/
@@ -12,29 +11,13 @@ QMAKE_CXXFLAGS += -DNDEBUG \
LIBS += -I/usr/include/graphicsImage \
-lGraphicsMagick++ \
-ltesseract_full
+TARGET = GScribo
+TEMPLATE = app
SOURCES += main.cpp \
mainwindow.cpp \
- xml.cpp \
scene.cpp \
- selection.cpp \
- polygonitem.cpp \
- runner.cpp \
- toolbar.cpp \
- process.cpp \
- preprocess.cpp \
- configs.cpp \
- progressdialog.cpp
+ selection.cpp
HEADERS += mainwindow.h \
- region.h \
- xml.h \
scene.h \
- selection.h \
- polygonitem.h \
- runner.h \
- toolbar.h \
- process.h \
- preprocess.h \
- configs.h \
- dir.h \
- progressdialog.h
+ selection.h
FORMS += mainwindow.ui
diff --git a/XmlParser/XmlParser.pro.user.1.3 b/TestInterface/GScribo.pro.user
similarity index 86%
copy from XmlParser/XmlParser.pro.user.1.3
copy to TestInterface/GScribo.pro.user
index 29f9b56..4b00d43 100644
--- a/XmlParser/XmlParser.pro.user.1.3
+++ b/TestInterface/GScribo.pro.user
@@ -10,11 +10,11 @@
</data>
<data>
<variable>RunConfiguration0-ProFile</variable>
- <value type="QString">XmlParser.pro</value>
+ <value type="QString">GScribo.pro</value>
</data>
<data>
<variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">XmlParser</value>
+ <value type="QString">GScribo</value>
</data>
<data>
<variable>RunConfiguration0-UseDyldImageSuffix</variable>
@@ -76,14 +76,14 @@
<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-YjhocK9Z3d,guid=e9e5f2da71aeced554355e6f00596ece</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</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-INUHb2</value>
- <value type="QString">GNOME_KEYRING_PID=27655</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-9aAGCJ</value>
+ <value type="QString">GNOME_KEYRING_PID=19876</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>
@@ -91,20 +91,20 @@
<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/XmlParser</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=27730</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aIvoE27664/agent.27664</value>
+ <value type="QString">SSH_AGENT_PID=19951</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmJEZ7QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1357908881.805303-96205090</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</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>
@@ -112,7 +112,7 @@
<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/XmlParser/XmlParser.pro</value>
+ <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>
@@ -120,7 +120,7 @@
</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/XmlParser</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
@@ -128,14 +128,14 @@
<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-YjhocK9Z3d,guid=e9e5f2da71aeced554355e6f00596ece</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</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-INUHb2</value>
- <value type="QString">GNOME_KEYRING_PID=27655</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-9aAGCJ</value>
+ <value type="QString">GNOME_KEYRING_PID=19876</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>
@@ -143,20 +143,20 @@
<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/XmlParser</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=27730</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aIvoE27664/agent.27664</value>
+ <value type="QString">SSH_AGENT_PID=19951</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmJEZ7QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1357908881.805303-96205090</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</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>
@@ -169,7 +169,7 @@
</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/XmlParser</value>
+ <value key="abstractProcess.workingDirectory" type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/GScribo</value>
</valuemap>
</data>
<data>
diff --git a/XmlParser/configs.h b/TestInterface/config.h
similarity index 100%
copy from XmlParser/configs.h
copy to TestInterface/config.h
diff --git a/XmlParser/dir.h b/TestInterface/dir.h
similarity index 100%
copy from XmlParser/dir.h
copy to TestInterface/dir.h
diff --git a/XmlParser/main.cpp b/TestInterface/main.cpp
similarity index 70%
copy from XmlParser/main.cpp
copy to TestInterface/main.cpp
index aecf5cd..4636dff 100644
--- a/XmlParser/main.cpp
+++ b/TestInterface/main.cpp
@@ -1,5 +1,3 @@
-#undef MLN_WO_GLOBAL_VARS
-
#include <mln/labeling/colorize.hh>
#include <mln/math/pi.hh>
#include <mln/io/magick/load.hh>
@@ -7,11 +5,16 @@
#include <mln/debug/filename.hh>
#include <scribo/make/debug_filename.hh>
#include <QtGui/QApplication>
+
#include "mainwindow.h"
-int main(int argc, char **argv)
+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).
+ */
QApplication::setGraphicsSystem("raster");
QApplication a(argc, argv);
MainWindow w;
diff --git a/TestInterface/mainwindow.cpp b/TestInterface/mainwindow.cpp
new file mode 100644
index 0000000..89634e3
--- /dev/null
+++ b/TestInterface/mainwindow.cpp
@@ -0,0 +1,75 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+
+
+ /* Central window to adjust all widgets's size inside it. */
+ QWidget *window = new QWidget();
+ QHBoxLayout *mainLayout = new QHBoxLayout(window);
+ mainLayout->setSpacing(8);
+ setCentralWidget(window);
+ //
+
+ initGraphicsRegion(window, mainLayout);
+ initTextRegion(window, mainLayout);
+}
+
+MainWindow::~MainWindow()
+{
+ delete scene;
+ delete graphicsView;
+ delete textEdit;
+ delete ui;
+}
+
+void MainWindow::initGraphicsRegion(QWidget *parent, QLayout *layout)
+{
+ QGroupBox *graphicsBox = new QGroupBox(tr("Image"), parent);
+ graphicsBox->setFlat(true);
+ graphicsBox->setAlignment(Qt::AlignHCenter);
+
+ graphicsView = new QGraphicsView();
+ // Cache backgroud to speed up its repaint.
+ graphicsView->setCacheMode(QGraphicsView::CacheBackground);
+ graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
+
+ scene = new Scene();
+ // Disable scroll bar extend with a non-null rectangle.
+ scene->setSceneRect(0, 0, 0, 1);
+ graphicsView->setScene(scene);
+
+ QHBoxLayout *graphicsLayout = new QHBoxLayout(graphicsBox);
+ graphicsLayout->addWidget(graphicsView);
+ layout->addWidget(graphicsBox);
+}
+
+void MainWindow::initTextRegion(QWidget *parent, QLayout *layout)
+{
+ QGroupBox *textBox = new QGroupBox(tr("Previsualization"), parent);
+ textBox->setFlat(true);
+ textBox->setAlignment(Qt::AlignHCenter);
+
+ textEdit = new QPlainTextEdit(textBox);
+
+ QHBoxLayout *textLayout = new QHBoxLayout(textBox);
+ textLayout->addWidget(textEdit);
+ layout->addWidget(textBox);
+}
+
+void MainWindow::changeEvent(QEvent *e)
+{
+ QMainWindow::changeEvent(e);
+ switch (e->type())
+ {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/TestInterface/mainwindow.h b/TestInterface/mainwindow.h
new file mode 100644
index 0000000..b4728ad
--- /dev/null
+++ b/TestInterface/mainwindow.h
@@ -0,0 +1,40 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QHBoxLayout>
+#include <QDockWidget>
+#include <QGraphicsView>
+#include <QGLWidget>
+#include <QPlainTextEdit>
+#include <QGroupBox>
+
+#include "scene.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(QWidget *parent, QLayout *layout);
+ void initTextRegion(QWidget *parent, QLayout *layout);
+
+ Ui::MainWindow *ui;
+ Scene *scene;
+ QGraphicsView *graphicsView;
+ QPlainTextEdit *textEdit;
+};
+
+#endif // MAINWINDOW_H
diff --git a/Test/test.ui b/TestInterface/mainwindow.ui
similarity index 60%
copy from Test/test.ui
copy to TestInterface/mainwindow.ui
index 5fb0299..0c25302 100644
--- a/Test/test.ui
+++ b/TestInterface/mainwindow.ui
@@ -1,39 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
- <class>Test</class>
- <widget class="QMainWindow" name="Test">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>919</width>
- <height>562</height>
+ <width>600</width>
+ <height>400</height>
</rect>
</property>
<property name="windowTitle">
- <string>Test</string>
+ <string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
- <widget class="QLabel" name="label">
- <property name="geometry">
- <rect>
- <x>250</x>
- <y>130</y>
- <width>341</width>
- <height>181</height>
- </rect>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>919</width>
+ <width>600</width>
<height>23</height>
</rect>
</property>
@@ -43,15 +33,10 @@
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
- <bool>true</bool>
+ <bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
- <action name="actionLoad">
- <property name="text">
- <string>Load</string>
- </property>
- </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
diff --git a/XmlParser/polygonitem.cpp b/TestInterface/polygonitem.cpp
similarity index 100%
copy from XmlParser/polygonitem.cpp
copy to TestInterface/polygonitem.cpp
diff --git a/XmlParser/polygonitem.h b/TestInterface/polygonitem.h
similarity index 100%
copy from XmlParser/polygonitem.h
copy to TestInterface/polygonitem.h
diff --git a/XmlParser/preprocess.cpp b/TestInterface/preprocess.cpp
similarity index 100%
copy from XmlParser/preprocess.cpp
copy to TestInterface/preprocess.cpp
diff --git a/XmlParser/preprocess.h b/TestInterface/preprocess.h
similarity index 100%
copy from XmlParser/preprocess.h
copy to TestInterface/preprocess.h
diff --git a/XmlParser/process.cpp b/TestInterface/process.cpp
similarity index 100%
copy from XmlParser/process.cpp
copy to TestInterface/process.cpp
diff --git a/XmlParser/process.h b/TestInterface/process.h
similarity index 100%
copy from XmlParser/process.h
copy to TestInterface/process.h
diff --git a/XmlParser/progressdialog.cpp b/TestInterface/progressdialog.cpp
similarity index 100%
copy from XmlParser/progressdialog.cpp
copy to TestInterface/progressdialog.cpp
diff --git a/XmlParser/progressdialog.h b/TestInterface/progressdialog.h
similarity index 100%
copy from XmlParser/progressdialog.h
copy to TestInterface/progressdialog.h
diff --git a/XmlParser/runner.cpp b/TestInterface/runner.cpp
similarity index 100%
copy from XmlParser/runner.cpp
copy to TestInterface/runner.cpp
diff --git a/XmlParser/runner.h b/TestInterface/runner.h
similarity index 100%
copy from XmlParser/runner.h
copy to TestInterface/runner.h
diff --git a/XmlParser/scene.cpp b/TestInterface/scene.cpp
similarity index 86%
copy from XmlParser/scene.cpp
copy to TestInterface/scene.cpp
index 612d2bd..d65b85a 100644
--- a/XmlParser/scene.cpp
+++ b/TestInterface/scene.cpp
@@ -48,6 +48,7 @@ void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
isPressing = true;
clic = true;
pressPos = event->scenePos();
+ selection->show();
}
}
@@ -74,13 +75,8 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
isPressing = false;
if(clic)
selection->setRect(QRectF(QPointF(0, 0), event->scenePos()));
- emit repaintItems(selection->rect(), clic);
+ emit repaintItem(selection->rect(), clic);
selection->setRect(0, 0, 0, 0);
+ selection->hide();
}
}
-
-QString Scene::debug(QRect &rect)
-{
- return "Position : " + QString::number(rect.x()) + ", " + QString::number(rect.y()) + "\n" +
- "Size : " + QString::number(rect.width()) + ", " + QString::number(rect.height());
-}
diff --git a/XmlParser/scene.h b/TestInterface/scene.h
similarity index 86%
copy from XmlParser/scene.h
copy to TestInterface/scene.h
index b7294c6..0560cbd 100644
--- a/XmlParser/scene.h
+++ b/TestInterface/scene.h
@@ -3,6 +3,7 @@
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
+
#include "selection.h"
#include "polygonitem.h"
@@ -25,7 +26,6 @@ class Scene :
private:
void init();
- QString debug(QRect &rect);
Selection *selection;
QPointF pressPos;
@@ -33,8 +33,7 @@ class Scene :
bool clic;
signals:
- void repaintItems(const QRectF& rect, bool clic);
- void sendString(QString& string);
+ void repaintItem(const QRectF& rect, bool clic);
};
#endif // SCENE_H
diff --git a/XmlParser/selection.cpp b/TestInterface/selection.cpp
similarity index 96%
copy from XmlParser/selection.cpp
copy to TestInterface/selection.cpp
index 51e3fe5..1f696ce 100644
--- a/XmlParser/selection.cpp
+++ b/TestInterface/selection.cpp
@@ -24,7 +24,7 @@ void Selection::init()
QPen pen;
pen.setStyle(Qt::DashLine);
pen.setCapStyle(Qt::SquareCap);
- pen.setWidth(1);
+ pen.setCosmetic(true);
setPen(pen);
QBrush brush;
brush.setStyle(Qt::Dense4Pattern);
diff --git a/XmlParser/selection.h b/TestInterface/selection.h
similarity index 99%
copy from XmlParser/selection.h
copy to TestInterface/selection.h
index dad1038..4864e15 100644
--- a/XmlParser/selection.h
+++ b/TestInterface/selection.h
@@ -5,7 +5,6 @@
#include <QPen>
#include <climits>
-
class Selection :
public QGraphicsRectItem
{
diff --git a/XmlParser/xml.cpp b/TestInterface/xml.cpp
similarity index 100%
copy from XmlParser/xml.cpp
copy to TestInterface/xml.cpp
diff --git a/XmlParser/xml.h b/TestInterface/xml.h
similarity index 100%
copy from XmlParser/xml.h
copy to TestInterface/xml.h
diff --git a/XmlParser/XmlParser.pro b/XmlParser/XmlParser.pro
index 597fc47..e673c8e 100644
--- a/XmlParser/XmlParser.pro
+++ b/XmlParser/XmlParser.pro
@@ -1,7 +1,8 @@
# -------------------------------------------------
# Project created by QtCreator 2013-01-11T14:21:43
# -------------------------------------------------
-QT += xml
+QT += xml \
+ opengl
TARGET = XmlParser
TEMPLATE = app
INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/ \
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index 9eea455..4041e71 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -188,14 +188,14 @@
<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-E5D7SPzCvM,guid=d599357c9b4b11459397a7040062a9e9</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</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-IhfkdE</value>
- <value type="QString">GNOME_KEYRING_PID=8615</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-9aAGCJ</value>
+ <value type="QString">GNOME_KEYRING_PID=19876</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>
@@ -207,16 +207,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=8690</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-znXRds8624/agent.8624</value>
+ <value type="QString">SSH_AGENT_PID=19951</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</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=16777252</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmLS4BRW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358513837.420735-2094239602</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</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>
@@ -239,14 +239,14 @@
<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-E5D7SPzCvM,guid=d599357c9b4b11459397a7040062a9e9</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-dwXmVzGpRA,guid=2e4bb3ce70c39fa5e5288771006655e3</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-IhfkdE</value>
- <value type="QString">GNOME_KEYRING_PID=8615</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-9aAGCJ</value>
+ <value type="QString">GNOME_KEYRING_PID=19876</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>
@@ -258,16 +258,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=8690</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-znXRds8624/agent.8624</value>
+ <value type="QString">SSH_AGENT_PID=19951</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kVrax19885/agent.19885</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=16777252</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmLS4BRW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm0ICXQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358513837.420735-2094239602</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358754471.558659-246518931</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>
diff --git a/XmlParser/main.cpp b/XmlParser/main.cpp
index aecf5cd..f9678ac 100644
--- a/XmlParser/main.cpp
+++ b/XmlParser/main.cpp
@@ -12,6 +12,11 @@
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).
+ VERY IMPORTANT.
+ ********************************************************************/
QApplication::setGraphicsSystem("raster");
QApplication a(argc, argv);
MainWindow w;
diff --git a/XmlParser/mainwindow.cpp b/XmlParser/mainwindow.cpp
index a9415cf..323b74a 100644
--- a/XmlParser/mainwindow.cpp
+++ b/XmlParser/mainwindow.cpp
@@ -10,6 +10,7 @@ MainWindow::MainWindow(QWidget *parent):
QVBoxLayout *gBLayout = new QVBoxLayout;
gBLayout->addWidget(ui->graphicsView);
ui->groupBox->setLayout(gBLayout);
+ // Cache the background for repaint optimization.
ui->graphicsView->setCacheMode(QGraphicsView::CacheBackground);
scene = new Scene(ui->graphicsView);
scene->setSceneRect(ui->graphicsView->geometry());
diff --git a/XmlParser/mainwindow.h b/XmlParser/mainwindow.h
index e8e899a..f6c7fb5 100644
--- a/XmlParser/mainwindow.h
+++ b/XmlParser/mainwindow.h
@@ -6,6 +6,7 @@
#include <QVBoxLayout>
#include <QFileDialog>
#include <QProgressDialog>
+#include <QGLWidget>
#include "scene.h"
#include "toolbar.h"
#include "xml.h"
diff --git a/XmlParser/scene.cpp b/XmlParser/scene.cpp
index 612d2bd..1d8aaf6 100644
--- a/XmlParser/scene.cpp
+++ b/XmlParser/scene.cpp
@@ -48,6 +48,7 @@ void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
isPressing = true;
clic = true;
pressPos = event->scenePos();
+ selection->show();
}
}
@@ -76,6 +77,7 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
selection->setRect(QRectF(QPointF(0, 0), event->scenePos()));
emit repaintItems(selection->rect(), clic);
selection->setRect(0, 0, 0, 0);
+ selection->hide();
}
}
--
1.7.2.5
1
0

8837bd5 Optimisation, runner works well, add destructors and delete fine.
by Antoine Froger 11 Feb '13
by Antoine Froger 11 Feb '13
11 Feb '13
---
XmlParser/XmlParser.pro | 4 +-
XmlParser/XmlParser.pro.user | 135 +++++++++++++++++++++++++++++++++++-------
XmlParser/demodir.h | 7 --
XmlParser/main.cpp | 1 +
XmlParser/mainwindow.cpp | 24 ++++----
XmlParser/mainwindow.h | 4 +-
XmlParser/polygonitem.cpp | 23 ++++----
XmlParser/polygonitem.h | 1 +
XmlParser/region.h | 16 +++---
XmlParser/runner.cpp | 8 ++-
XmlParser/runner.h | 4 +-
XmlParser/scene.cpp | 21 ++++++-
XmlParser/scene.h | 2 +
XmlParser/toolbar.cpp | 7 ++
XmlParser/toolbar.h | 2 +-
XmlParser/xml.cpp | 72 +++++-----------------
16 files changed, 204 insertions(+), 127 deletions(-)
delete mode 100644 XmlParser/demodir.h
diff --git a/XmlParser/XmlParser.pro b/XmlParser/XmlParser.pro
index e65b72a..597fc47 100644
--- a/XmlParser/XmlParser.pro
+++ b/XmlParser/XmlParser.pro
@@ -5,7 +5,8 @@ QT += xml
TARGET = XmlParser
TEMPLATE = app
INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/ \
- /lrde/home/stage/froger_a/olena/scribo/
+ /lrde/home/stage/froger_a/olena/scribo/ \
+ /lrde/home/stage/froger_a/olena/_build/scribo/demo/
QMAKE_CXXFLAGS += -DNDEBUG \
-DMLN_WO_GLOBAL_VARS
LIBS += -I/usr/include/graphicsImage \
@@ -31,7 +32,6 @@ HEADERS += mainwindow.h \
polygonitem.h \
runner.h \
toolbar.h \
- demodir.h \
process.h \
preprocess.h \
configs.h \
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index 0b03fae..9eea455 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.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,35 +77,35 @@
<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-jXUCLOmOZn,guid=4585eaa0c02f09d20a77bf8f006153a8</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-TRVg8AHdB1,guid=cba5ba91aecc3f6dfc36295700626000</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-aTERin</value>
- <value type="QString">GNOME_KEYRING_PID=8076</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-nw18hR</value>
+ <value type="QString">GNOME_KEYRING_PID=3747</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">OLDPWD=/lrde/home/stage/froger_a</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/XmlParser</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=8151</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-wrZmtE8085/agent.8085</value>
+ <value type="QString">SSH_AGENT_PID=3822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-SkEKXK3756/agent.3756</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm4ATXQW</value>
+ <value type="QString">WINDOWID=12582948</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmQ2DSQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358426220.205793-1492047644</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358494916.667367-1101742900</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>
@@ -128,35 +129,35 @@
<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-jXUCLOmOZn,guid=4585eaa0c02f09d20a77bf8f006153a8</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-TRVg8AHdB1,guid=cba5ba91aecc3f6dfc36295700626000</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-aTERin</value>
- <value type="QString">GNOME_KEYRING_PID=8076</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-nw18hR</value>
+ <value type="QString">GNOME_KEYRING_PID=3747</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">OLDPWD=/lrde/home/stage/froger_a</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/XmlParser</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=8151</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-wrZmtE8085/agent.8085</value>
+ <value type="QString">SSH_AGENT_PID=3822</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-SkEKXK3756/agent.3756</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm4ATXQW</value>
+ <value type="QString">WINDOWID=12582948</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmQ2DSQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358426220.205793-1492047644</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358494916.667367-1101742900</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>
@@ -186,18 +187,110 @@
<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-E5D7SPzCvM,guid=d599357c9b4b11459397a7040062a9e9</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-IhfkdE</value>
+ <value type="QString">GNOME_KEYRING_PID=8615</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/XmlParser</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=8690</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-znXRds8624/agent.8624</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=16777252</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmLS4BRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358513837.420735-2094239602</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/XmlParser/XmlParser.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/XmlParser</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-E5D7SPzCvM,guid=d599357c9b4b11459397a7040062a9e9</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-IhfkdE</value>
+ <value type="QString">GNOME_KEYRING_PID=8615</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/XmlParser</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=8690</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-znXRds8624/agent.8624</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=16777252</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmLS4BRW</value>
+ <value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358513837.420735-2094239602</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/XmlParser</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</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/XmlParser/demodir.h b/XmlParser/demodir.h
deleted file mode 100644
index 4182ace..0000000
--- a/XmlParser/demodir.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef DEMODIR_H
-#define DEMODIR_H
-
-# define SCRIBO_PREFIX_BINDIR "/usr/local/bin"
-# define SCRIBO_LOCAL_DEMODIR "/lrde/home/stage/froger_a/olena/_build/scribo/demo"
-
-#endif // DEMODIR_H
diff --git a/XmlParser/main.cpp b/XmlParser/main.cpp
index 53ec79f..aecf5cd 100644
--- a/XmlParser/main.cpp
+++ b/XmlParser/main.cpp
@@ -12,6 +12,7 @@
int main(int argc, char **argv)
{
Magick::InitializeMagick(*argv);
+ QApplication::setGraphicsSystem("raster");
QApplication a(argc, argv);
MainWindow w;
w.show();
diff --git a/XmlParser/mainwindow.cpp b/XmlParser/mainwindow.cpp
index eb461fc..a9415cf 100644
--- a/XmlParser/mainwindow.cpp
+++ b/XmlParser/mainwindow.cpp
@@ -10,6 +10,7 @@ MainWindow::MainWindow(QWidget *parent):
QVBoxLayout *gBLayout = new QVBoxLayout;
gBLayout->addWidget(ui->graphicsView);
ui->groupBox->setLayout(gBLayout);
+ ui->graphicsView->setCacheMode(QGraphicsView::CacheBackground);
scene = new Scene(ui->graphicsView);
scene->setSceneRect(ui->graphicsView->geometry());
ui->graphicsView->setScene(scene);
@@ -18,16 +19,19 @@ MainWindow::MainWindow(QWidget *parent):
toolBar->setGeometry(0, ui->menuBar->height(), ui->menuBar->width(), 30);
connect(toolBar->openAction(), SIGNAL(triggered()), this, SLOT(on_actionOpen_triggered()));
connect(toolBar->quitAction(), SIGNAL(triggered()), this, SLOT(close()));
- connect(toolBar->segmentAction(), SIGNAL(triggered()), this, SLOT(onSegmentation()));
+ connect(toolBar->segmentAction(), SIGNAL(triggered()), this, SLOT(onBeginSegmentation()));
progressDialog = new ProgressDialog(this);
- connect(&runner, SIGNAL(finished(QString*)), this, SLOT(onEndSegmentation(QString*)));
+ connect(&runner, SIGNAL(finished()), progressDialog, SLOT(close()));
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(xml_saved(QString)), this, SLOT(onXmlSaved(QString)));
connect(&runner, SIGNAL(progress()), progressDialog, SLOT(run()));
}
MainWindow::~MainWindow()
{
+ delete scene;
+ delete progressDialog;
delete ui;
}
@@ -49,17 +53,14 @@ void MainWindow::on_actionOpen_triggered()
imagePath = QFileDialog::getOpenFileName(this);
if(imagePath != "")
{
+ scene->removeItems();
QPixmap pixmap(imagePath);
- QGraphicsPixmapItem *pixmapItem = new QGraphicsPixmapItem(pixmap);
- pixmapItem->setFlag(QGraphicsItem::ItemNegativeZStacksBehindParent, true);
- pixmapItem->setZValue(-1);
- pixmapItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
- ui->graphicsView->scene()->setSceneRect(pixmap.rect());
- ui->graphicsView->scene()->addItem(pixmapItem);
+ scene->setSceneRect(pixmap.rect());
+ scene->setBackgroundBrush(QBrush(pixmap));
}
}
-void MainWindow::onSegmentation()
+void MainWindow::onBeginSegmentation()
{
if(imagePath != "")
{
@@ -68,10 +69,9 @@ void MainWindow::onSegmentation()
}
}
-void MainWindow::onEndSegmentation(QString *filename)
+void MainWindow::onXmlSaved(const QString& filename)
{
- progressDialog->close();
- Xml::parseItems(*filename, scene);
+ Xml::parseItems(filename, scene);
}
/*void MainWindow::on_action(QString& string)
diff --git a/XmlParser/mainwindow.h b/XmlParser/mainwindow.h
index 6deccc7..e8e899a 100644
--- a/XmlParser/mainwindow.h
+++ b/XmlParser/mainwindow.h
@@ -39,8 +39,8 @@ class MainWindow :
private slots:
void on_actionOpen_triggered();
- void onSegmentation();
- void onEndSegmentation(QString *filename);
+ void onBeginSegmentation();
+ void onXmlSaved(const QString& filename);
//void on_action(QString& string);
};
diff --git a/XmlParser/polygonitem.cpp b/XmlParser/polygonitem.cpp
index 5ab3e7e..2c20dbf 100644
--- a/XmlParser/polygonitem.cpp
+++ b/XmlParser/polygonitem.cpp
@@ -1,7 +1,7 @@
#include "polygonitem.h"
-PolygonItem::PolygonItem(QGraphicsItem *parent, QGraphicsScene *scene):
- QGraphicsPolygonItem(parent, scene)
+PolygonItem::PolygonItem(QGraphicsItem *parent, QGraphicsScene *scene)
+ : QGraphicsPolygonItem(parent, scene)
{
init();
}
@@ -12,23 +12,24 @@ PolygonItem::PolygonItem(const QPolygonF &polygon, QGraphicsItem *parent, QGraph
init();
}
+PolygonItem::~PolygonItem()
+{
+ delete selectedPen;
+ delete unselectedPen;
+ delete selectedBrush;
+ delete unselectedBrush;
+}
+
void PolygonItem::init()
{
- setCacheMode(QGraphicsItem::ItemCoordinateCache);
- setFlags(QGraphicsItem::ItemClipsToShape);
selectedPen = new QPen(Qt::SolidLine);
unselectedPen = new QPen(Qt::SolidLine);
- selectedPen->setWidthF(3);
+ selectedPen->setWidthF(2);
unselectedPen->setWidth(0);
selectedPen->setCapStyle(Qt::SquareCap);
unselectedPen->setCapStyle(Qt::SquareCap);
selectedBrush = new QBrush(Qt::SolidPattern);
unselectedBrush = new QBrush(Qt::SolidPattern);
- QRectF bRect(boundingRect());
- if(bRect.width() < 1)
- bRect.setWidth(1);
- if(bRect.height() < 1)
- bRect.setHeight(1);
}
void PolygonItem::setColor(const QColor &color)
@@ -46,7 +47,7 @@ QColor PolygonItem::color() const
return selectedBrush->color();
}
-void PolygonItem::repaint(const QRectF &rect, bool clic)
+void PolygonItem::repaint(const QRectF& rect, bool clic)
{
bool sel;
if(clic)
diff --git a/XmlParser/polygonitem.h b/XmlParser/polygonitem.h
index c46fcb4..50abf61 100644
--- a/XmlParser/polygonitem.h
+++ b/XmlParser/polygonitem.h
@@ -13,6 +13,7 @@ class PolygonItem :
public:
explicit PolygonItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
explicit PolygonItem(const QPolygonF& path, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
+ ~PolygonItem();
void setColor(const QColor& color);
QColor color() const;
diff --git a/XmlParser/region.h b/XmlParser/region.h
index 0741177..e0c456e 100644
--- a/XmlParser/region.h
+++ b/XmlParser/region.h
@@ -5,14 +5,6 @@
namespace GraphicRegion
{
- struct Data
- {
- QColor color;
- QString name;
- int region;
- int zValue;
- };
-
enum Id
{
Text,
@@ -30,6 +22,14 @@ namespace GraphicRegion
Chart,
Maths
};
+
+ struct Data
+ {
+ QColor color;
+ QString name;
+ int region;
+ int zValue;
+ };
}
namespace Separator
diff --git a/XmlParser/runner.cpp b/XmlParser/runner.cpp
index 7ad62fa2..8dfd8b0 100644
--- a/XmlParser/runner.cpp
+++ b/XmlParser/runner.cpp
@@ -33,7 +33,8 @@ void Runner::run()
image2d<value::rgb8> ima;
io::magick::load(ima, args_.at(0).toUtf8().constData());
image2d<bool> bin_ima = preprocess(ima);
- emit finished(&process(ima, bin_ima));
+ process(ima, bin_ima);
+ emit finished();
}
break;
@@ -130,12 +131,13 @@ void Runner::process(const image2d<value::rgb8>& original_ima,
if (!dir.exists() && !dir.mkpath(output_dir))
output_dir = QDir::tempPath();
}
- f.output_file = (output_dir + "/" + file.baseName() + "_gui.xml").toUtf8().constData();
+ 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);
- return f.output_file;
+ emit xml_saved(filename);
//qDebug() << "Process Done.";
}
diff --git a/XmlParser/runner.h b/XmlParser/runner.h
index 0e506b7..56a07df 100644
--- a/XmlParser/runner.h
+++ b/XmlParser/runner.h
@@ -34,7 +34,7 @@ class Runner :
private:
image2d<bool> preprocess(const image2d<value::rgb8>& ima);
- QString process(const image2d<value::rgb8>& original_ima, const image2d<bool>& processed_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);
@@ -51,7 +51,7 @@ class Runner :
void new_progress_label(const QString& msg);
void xml_saved(const QString& filename);
void progress();
- void finished(QString *filename = 0);
+ void finished();
};
#endif // RUNNER_H
diff --git a/XmlParser/scene.cpp b/XmlParser/scene.cpp
index 79cc213..612d2bd 100644
--- a/XmlParser/scene.cpp
+++ b/XmlParser/scene.cpp
@@ -18,6 +18,11 @@ Scene::Scene(qreal x, qreal y, qreal width, qreal height, QObject *parent):
init();
}
+Scene::~Scene()
+{
+ delete selection;
+}
+
void Scene::init()
{
isPressing = false;
@@ -25,6 +30,17 @@ void Scene::init()
selection = new Selection(this);
}
+void Scene::removeItems()
+{
+ QList<QGraphicsItem *> itemsList = items();
+ QGraphicsItem *i;
+ foreach(i, itemsList)
+ {
+ if(i != selection)
+ delete i;
+ }
+}
+
void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if(event->button() == Qt::LeftButton && !isPressing)
@@ -57,9 +73,8 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
isPressing = false;
if(clic)
- emit repaintItems(QRectF(QPointF(0, 0), event->scenePos()), true);
- else
- emit repaintItems(selection->rect(), false);
+ selection->setRect(QRectF(QPointF(0, 0), event->scenePos()));
+ emit repaintItems(selection->rect(), clic);
selection->setRect(0, 0, 0, 0);
}
}
diff --git a/XmlParser/scene.h b/XmlParser/scene.h
index 47e0cf2..b7294c6 100644
--- a/XmlParser/scene.h
+++ b/XmlParser/scene.h
@@ -15,6 +15,8 @@ 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);
+ ~Scene();
+ void removeItems();
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
diff --git a/XmlParser/toolbar.cpp b/XmlParser/toolbar.cpp
index 746f5ee..7742310 100644
--- a/XmlParser/toolbar.cpp
+++ b/XmlParser/toolbar.cpp
@@ -12,6 +12,13 @@ ToolBar::ToolBar(QWidget *parent):
quit = addAction(tr("Quit"));
}
+ToolBar::~ToolBar()
+{
+ delete open;
+ delete segment;
+ delete quit;
+}
+
QAction * ToolBar::openAction() const
{
return open;
diff --git a/XmlParser/toolbar.h b/XmlParser/toolbar.h
index 25609af..e7a3b77 100644
--- a/XmlParser/toolbar.h
+++ b/XmlParser/toolbar.h
@@ -3,13 +3,13 @@
#include <QToolBar>
#include <QAction>
-#include "mainwindow.h"
class ToolBar :
public QToolBar
{
public:
explicit ToolBar(QWidget *parent);
+ ~ToolBar();
QAction * openAction() const;
QAction * segmentAction() const;
QAction * quitAction() const;
diff --git a/XmlParser/xml.cpp b/XmlParser/xml.cpp
index 4b20005..67c5451 100644
--- a/XmlParser/xml.cpp
+++ b/XmlParser/xml.cpp
@@ -1,6 +1,19 @@
#include "xml.h"
#include "region.h"
+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}
+};
+
Xml::Xml()
{
}
@@ -29,10 +42,12 @@ void Xml::graphicsTypoRegion(const QDomElement& element, const QPoint& xPos, Sce
{
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);
}
@@ -95,61 +110,8 @@ void Xml::parseItems(const QString &filename, Scene *scene)
QDomDocument xml;
xml.setContent(&xmlFile);
xmlFile.close();
- QVector<QGraphicsItem *> items;
QDomElement element = xml.documentElement().firstChild().nextSiblingElement("Page").firstChild().toElement();
graphicsTextRegion(element, scene);
- GraphicRegion::Data verticalData;
- verticalData.color = QColor::fromRgb(0, 0, 255, 80);
- verticalData.name = "VerticalSeparatorRegion";
- verticalData.region = (int)GraphicRegion::VerticalSeparator;
- verticalData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(verticalData.name), verticalData, scene);
- GraphicRegion::Data horizontalData;
- horizontalData.color = QColor::fromRgb(0, 0, 255, 80);
- horizontalData.name = "HorizontalSeparatorRegion";
- horizontalData.region = (int)GraphicRegion::HorizontalSeparator;
- horizontalData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(horizontalData.name), horizontalData, scene);
- GraphicRegion::Data spaceData;
- spaceData.color = QColor::fromRgb(0, 0, 128, 80);
- spaceData.name = "WhitespaceSeparatorRegion";
- spaceData.region = (int)GraphicRegion::WhiteSpaceSeparator;
- spaceData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(spaceData.name), spaceData, scene);
- GraphicRegion::Data imageData;
- imageData.color = QColor::fromRgb(255, 120, 0, 80);
- imageData.name = "ImageRegion";
- imageData.region = (int)GraphicRegion::Image;
- imageData.zValue = 1;
- graphicsRegion(element.nextSiblingElement(imageData.name), imageData, scene);
- GraphicRegion::Data noiseData;
- noiseData.color = QColor::fromRgb(43, 39, 128, 80);
- noiseData.name = "NoiseRegion";
- noiseData.region = (int)GraphicRegion::Noise;
- noiseData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(noiseData.name), noiseData, scene);
- GraphicRegion::Data tableData;
- tableData.color = QColor::fromRgb(220, 246, 0, 80);
- tableData.name = "TableRegion";
- tableData.region = (int)GraphicRegion::Table;
- tableData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(tableData.name), tableData, scene);
- GraphicRegion::Data mathsData;
- mathsData.color = QColor::fromRgb(170, 0, 255, 80);
- mathsData.name = "MathsRegion";
- mathsData.region = (int)GraphicRegion::Maths;
- mathsData.zValue = 3;
- graphicsRegion(element.nextSiblingElement(mathsData.name), mathsData, scene);
- GraphicRegion::Data graphicData;
- graphicData.color = QColor::fromRgb(255, 0, 144, 80);
- graphicData.name = "GraphicRegion";
- graphicData.region = (int)GraphicRegion::Graphic;
- graphicData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(graphicData.name), graphicData, scene);
- GraphicRegion::Data chartData;
- chartData.color = QColor::fromRgb(0, 204, 255, 80);
- chartData.name = "ChartRegion";
- chartData.region = (int)GraphicRegion::Chart;
- chartData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(chartData.name), chartData, scene);
+ for(int i = 0; i < 9; i++)
+ graphicsRegion(element.nextSiblingElement(itemsData[i].name), itemsData[i], scene);
}
--
1.7.2.5
1
0
---
Test2/test2.h | 2 +-
XmlParser/XmlParser.pro | 22 ++++-
XmlParser/XmlParser.pro.user | 36 ++++----
XmlParser/configs.cpp | 134 +++++++++++++++++++++++++++++
XmlParser/configs.h | 39 +++++++++
XmlParser/demodir.h | 7 ++
XmlParser/dir.h | 7 ++
XmlParser/main.cpp | 11 ++-
XmlParser/mainwindow.cpp | 52 +++++++++---
XmlParser/mainwindow.h | 11 ++-
XmlParser/mainwindow.ui | 8 +-
XmlParser/polygonitem.h | 3 +-
XmlParser/preprocess.cpp | 11 +++
XmlParser/preprocess.h | 26 ++++++
XmlParser/process.cpp | 21 +++++
XmlParser/process.h | 29 ++++++
XmlParser/progressdialog.cpp | 22 +++++
XmlParser/progressdialog.h | 19 ++++
XmlParser/region.h | 12 +++-
XmlParser/runner.cpp | 193 +++++++++++++++++++++++++++++++++++++++++-
XmlParser/runner.h | 34 +++++++-
XmlParser/scene.h | 8 +-
XmlParser/toolbar.cpp | 22 ++++-
XmlParser/toolbar.h | 14 +++-
XmlParser/xml.cpp | 20 ++--
25 files changed, 697 insertions(+), 66 deletions(-)
create mode 100644 XmlParser/configs.cpp
create mode 100644 XmlParser/configs.h
create mode 100644 XmlParser/demodir.h
create mode 100644 XmlParser/dir.h
create mode 100644 XmlParser/preprocess.cpp
create mode 100644 XmlParser/preprocess.h
create mode 100644 XmlParser/process.cpp
create mode 100644 XmlParser/process.h
create mode 100644 XmlParser/progressdialog.cpp
create mode 100644 XmlParser/progressdialog.h
diff --git a/Test2/test2.h b/Test2/test2.h
index 9007d2d..02c2534 100644
--- a/Test2/test2.h
+++ b/Test2/test2.h
@@ -11,7 +11,7 @@
namespace Ui
{
- class Test2;
+ class Test2
}
class Test2 : public QMainWindow {
diff --git a/XmlParser/XmlParser.pro b/XmlParser/XmlParser.pro
index 812902d..e65b72a 100644
--- a/XmlParser/XmlParser.pro
+++ b/XmlParser/XmlParser.pro
@@ -4,7 +4,13 @@
QT += xml
TARGET = XmlParser
TEMPLATE = app
-INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/
+INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/ \
+ /lrde/home/stage/froger_a/olena/scribo/
+QMAKE_CXXFLAGS += -DNDEBUG \
+ -DMLN_WO_GLOBAL_VARS
+LIBS += -I/usr/include/graphicsImage \
+ -lGraphicsMagick++ \
+ -ltesseract_full
SOURCES += main.cpp \
mainwindow.cpp \
xml.cpp \
@@ -12,7 +18,11 @@ SOURCES += main.cpp \
selection.cpp \
polygonitem.cpp \
runner.cpp \
- toolbar.cpp
+ toolbar.cpp \
+ process.cpp \
+ preprocess.cpp \
+ configs.cpp \
+ progressdialog.cpp
HEADERS += mainwindow.h \
region.h \
xml.h \
@@ -20,5 +30,11 @@ HEADERS += mainwindow.h \
selection.h \
polygonitem.h \
runner.h \
- toolbar.h
+ toolbar.h \
+ demodir.h \
+ process.h \
+ preprocess.h \
+ configs.h \
+ dir.h \
+ progressdialog.h
FORMS += mainwindow.ui
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index bd2e795..0b03fae 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -76,14 +76,14 @@
<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-1aju09G1Pe,guid=69ec02ba8a70eadde9e5182600601b23</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-jXUCLOmOZn,guid=4585eaa0c02f09d20a77bf8f006153a8</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-792wyb</value>
- <value type="QString">GNOME_KEYRING_PID=10096</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-aTERin</value>
+ <value type="QString">GNOME_KEYRING_PID=8076</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>
@@ -95,16 +95,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=10171</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-VVXGf10105/agent.10105</value>
+ <value type="QString">SSH_AGENT_PID=8151</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-wrZmtE8085/agent.8085</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=16777252</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm1TO0QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm4ATXQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358346215.20665-174033780</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358426220.205793-1492047644</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>
@@ -128,14 +128,14 @@
<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-1aju09G1Pe,guid=69ec02ba8a70eadde9e5182600601b23</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-jXUCLOmOZn,guid=4585eaa0c02f09d20a77bf8f006153a8</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-792wyb</value>
- <value type="QString">GNOME_KEYRING_PID=10096</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-aTERin</value>
+ <value type="QString">GNOME_KEYRING_PID=8076</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>
@@ -147,16 +147,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=10171</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-VVXGf10105/agent.10105</value>
+ <value type="QString">SSH_AGENT_PID=8151</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-wrZmtE8085/agent.8085</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=16777252</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdm1TO0QW</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm4ATXQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358346215.20665-174033780</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358426220.205793-1492047644</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>
diff --git a/XmlParser/configs.cpp b/XmlParser/configs.cpp
new file mode 100644
index 0000000..59df3db
--- /dev/null
+++ b/XmlParser/configs.cpp
@@ -0,0 +1,134 @@
+#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
+#include "configs.h"
+#include "region.h"
+
+Configs::Configs()
+ : QSettings("Olena-Scribo", "viewer")
+{
+}
+
+Configs * Configs::getInstance()
+{
+ static Configs * conf = new Configs();
+ return conf;
+}
+
+bool Configs::preprocessingSubsample()
+{
+ return value("preprocessing/subsample", false).toBool();
+}
+
+void Configs::setPreprocessingSubsample(bool b)
+{
+ setValue("preprocessing/subsample", b);
+}
+
+bool Configs::preprocessingRemoveBg()
+{
+ return value("preprocessing/remove_bg", false).toBool();
+}
+
+void Configs::setPreprocessingRemoveBg(bool b)
+{
+ setValue("preprocessing/remove_bg", b);
+}
+
+bool Configs::preprocessingDeskew()
+{
+ return value("preprocessing/deskew", false).toBool();
+}
+
+void Configs::setPreprocessingDeskew(bool b)
+{
+ setValue("preprocessing/deskew", b);
+}
+
+bool Configs::preprocessingRemoveNoise()
+{
+ return value("preprocessing/remove_noise", true).toBool();
+}
+
+void Configs::setPreprocessingRemoveNoise(bool b)
+{
+ setValue("preprocessing/remove_noise", b);
+}
+
+int Configs::preprocessingBinAlgo()
+{
+ return value("preprocessing/bin_algo", scribo::toolchain::internal::SauvolaMs).toInt();
+}
+
+void Configs::setPreprocessingBinAlgo(int algo)
+{
+ setValue("preprocessing/bin_algo", algo);
+}
+
+int Configs::segmentationFindSeps()
+{
+ return value("segmentation/find_seps", Separator::Both).toInt();
+}
+
+void Configs::setSegmentationFindSeps(int seps)
+{
+ setValue("segmentation/find_seps", seps);
+}
+
+bool Configs::ocrEnabled()
+{
+ return value("ocr/enabled", true).toBool();
+}
+
+void Configs::setOcrEnabled(bool b)
+{
+ setValue("ocr/enabled", b);
+}
+
+QString Configs::ocrLanguage()
+{
+ return value("ocr/language", 0).toString();
+}
+
+void Configs::setOcrLanguage(const QString &lang)
+{
+ setValue("ocr/language", lang);
+}
+
+bool Configs::generalSaveXmlEnabled()
+{
+ return value("general/save_xml/enabled", true).toBool();
+}
+
+void Configs::setGeneralSaveXmlEnabled(bool b)
+{
+ setValue("general/save_xml/enabled", b);
+}
+
+bool Configs::generalSaveXmlSameDir()
+{
+ return value("general/save_xml/same_dir", true).toBool();
+}
+
+void Configs::setGeneralSaveXmlSameDir(bool b)
+{
+ setValue("general/save_xml/same_dir", b);
+}
+
+bool Configs::generalSaveXmlCustomDir()
+{
+ return value("general/save_xml/custom_dir", false).toBool();
+}
+
+void Configs::setGeneralSaveXmlCustomDir(bool b)
+{
+ setValue("general/save_xml/custom_dir", b);
+}
+
+QString Configs::generalSaveXmlCustomDirPath()
+{
+ return value("general/save_xml/custom_dir_path", QDir::tempPath()).toString();
+}
+
+void Configs::setGeneralSaveXmlCustomDirPath(const QString &path)
+{
+ setValue("general/save_xml/custom_dir_path", path);
+}
diff --git a/XmlParser/configs.h b/XmlParser/configs.h
new file mode 100644
index 0000000..6677527
--- /dev/null
+++ b/XmlParser/configs.h
@@ -0,0 +1,39 @@
+#ifndef CONFIGS_H
+#define CONFIGS_H
+
+#include <QSettings>
+#include <QDir>
+
+class Configs :
+ public QSettings
+{
+ public:
+ Configs();
+ static Configs * getInstance();
+ bool preprocessingSubsample();
+ void setPreprocessingSubsample(bool b);
+ bool preprocessingRemoveBg();
+ void setPreprocessingRemoveBg(bool b);
+ bool preprocessingDeskew();
+ void setPreprocessingDeskew(bool b);
+ bool preprocessingRemoveNoise();
+ void setPreprocessingRemoveNoise(bool b);
+ int preprocessingBinAlgo();
+ void setPreprocessingBinAlgo(int algo);
+ int segmentationFindSeps();
+ void setSegmentationFindSeps(int seps);
+ bool ocrEnabled();
+ void setOcrEnabled(bool b);
+ QString ocrLanguage();
+ void setOcrLanguage(const QString& lang);
+ bool generalSaveXmlEnabled();
+ void setGeneralSaveXmlEnabled(bool b);
+ bool generalSaveXmlSameDir();
+ void setGeneralSaveXmlSameDir(bool b);
+ bool generalSaveXmlCustomDir();
+ void setGeneralSaveXmlCustomDir(bool b);
+ QString generalSaveXmlCustomDirPath();
+ void setGeneralSaveXmlCustomDirPath(const QString& path);
+};
+
+#endif // CONFIGS_H
diff --git a/XmlParser/demodir.h b/XmlParser/demodir.h
new file mode 100644
index 0000000..4182ace
--- /dev/null
+++ b/XmlParser/demodir.h
@@ -0,0 +1,7 @@
+#ifndef DEMODIR_H
+#define DEMODIR_H
+
+# define SCRIBO_PREFIX_BINDIR "/usr/local/bin"
+# define SCRIBO_LOCAL_DEMODIR "/lrde/home/stage/froger_a/olena/_build/scribo/demo"
+
+#endif // DEMODIR_H
diff --git a/XmlParser/dir.h b/XmlParser/dir.h
new file mode 100644
index 0000000..cb951f1
--- /dev/null
+++ b/XmlParser/dir.h
@@ -0,0 +1,7 @@
+#ifndef DIR_H
+#define DIR_H
+
+#define SCRIBO_PREFIX_BINDIR "/usr/local/bin"
+#define SCRIBO_LOCAL_DEMODIR "/lrde/home/stage/froger_a/olena/_build/scribo/demo"
+
+#endif // DIR_H
diff --git a/XmlParser/main.cpp b/XmlParser/main.cpp
index 6e7efd9..53ec79f 100644
--- a/XmlParser/main.cpp
+++ b/XmlParser/main.cpp
@@ -1,8 +1,17 @@
+#undef MLN_WO_GLOBAL_VARS
+
+#include <mln/labeling/colorize.hh>
+#include <mln/math/pi.hh>
+#include <mln/io/magick/load.hh>
+#include <mln/literal/colors.hh>
+#include <mln/debug/filename.hh>
+#include <scribo/make/debug_filename.hh>
#include <QtGui/QApplication>
#include "mainwindow.h"
-int main(int argc, char *argv[])
+int main(int argc, char **argv)
{
+ Magick::InitializeMagick(*argv);
QApplication a(argc, argv);
MainWindow w;
w.show();
diff --git a/XmlParser/mainwindow.cpp b/XmlParser/mainwindow.cpp
index 6ad5237..eb461fc 100644
--- a/XmlParser/mainwindow.cpp
+++ b/XmlParser/mainwindow.cpp
@@ -1,22 +1,29 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
-MainWindow::MainWindow(QWidget *parent) :
+MainWindow::MainWindow(QWidget *parent):
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
- QVBoxLayout *layout = new QVBoxLayout;
- layout->addWidget(ui->groupBox);
- layout->addWidget(ui->textEdit);
- setLayout(layout);
+ imagePath = QString::null;
QVBoxLayout *gBLayout = new QVBoxLayout;
gBLayout->addWidget(ui->graphicsView);
ui->groupBox->setLayout(gBLayout);
- Scene *scene = new Scene(ui->graphicsView);
+ scene = new Scene(ui->graphicsView);
scene->setSceneRect(ui->graphicsView->geometry());
ui->graphicsView->setScene(scene);
Xml::parseItems("/tmp/mp00082c_gui.xml", scene);
+ ToolBar *toolBar = new ToolBar(this);
+ toolBar->setGeometry(0, ui->menuBar->height(), ui->menuBar->width(), 30);
+ connect(toolBar->openAction(), SIGNAL(triggered()), this, SLOT(on_actionOpen_triggered()));
+ connect(toolBar->quitAction(), SIGNAL(triggered()), this, SLOT(close()));
+ connect(toolBar->segmentAction(), SIGNAL(triggered()), this, SLOT(onSegmentation()));
+ progressDialog = new ProgressDialog(this);
+ connect(&runner, SIGNAL(finished(QString*)), this, SLOT(onEndSegmentation(QString*)));
+ 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(progress()), progressDialog, SLOT(run()));
}
MainWindow::~MainWindow()
@@ -39,13 +46,32 @@ void MainWindow::changeEvent(QEvent *e)
void MainWindow::on_actionOpen_triggered()
{
- QPixmap pixmap(QFileDialog::getOpenFileName(this));
- QGraphicsPixmapItem *pixmapItem = new QGraphicsPixmapItem(pixmap);
- pixmapItem->setFlag(QGraphicsItem::ItemNegativeZStacksBehindParent, true);
- pixmapItem->setZValue(-1);
- pixmapItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
- ui->graphicsView->scene()->setSceneRect(pixmap.rect());
- ui->graphicsView->scene()->addItem(pixmapItem);
+ imagePath = QFileDialog::getOpenFileName(this);
+ if(imagePath != "")
+ {
+ QPixmap pixmap(imagePath);
+ QGraphicsPixmapItem *pixmapItem = new QGraphicsPixmapItem(pixmap);
+ pixmapItem->setFlag(QGraphicsItem::ItemNegativeZStacksBehindParent, true);
+ pixmapItem->setZValue(-1);
+ pixmapItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
+ ui->graphicsView->scene()->setSceneRect(pixmap.rect());
+ ui->graphicsView->scene()->addItem(pixmapItem);
+ }
+}
+
+void MainWindow::onSegmentation()
+{
+ if(imagePath != "")
+ {
+ progressDialog->reset();
+ runner.start_demat(imagePath);
+ }
+}
+
+void MainWindow::onEndSegmentation(QString *filename)
+{
+ progressDialog->close();
+ Xml::parseItems(*filename, scene);
}
/*void MainWindow::on_action(QString& string)
diff --git a/XmlParser/mainwindow.h b/XmlParser/mainwindow.h
index 47103a3..6deccc7 100644
--- a/XmlParser/mainwindow.h
+++ b/XmlParser/mainwindow.h
@@ -5,9 +5,13 @@
#include <QGraphicsView>
#include <QVBoxLayout>
#include <QFileDialog>
+#include <QProgressDialog>
#include "scene.h"
+#include "toolbar.h"
#include "xml.h"
#include "polygonitem.h"
+#include "runner.h"
+#include "progressdialog.h"
namespace Ui
{
@@ -28,11 +32,16 @@ class MainWindow :
private:
Ui::MainWindow *ui;
+ Scene * scene;
+ ProgressDialog *progressDialog;
+ QString imagePath;
+ Runner runner;
private slots:
void on_actionOpen_triggered();
+ void onSegmentation();
+ void onEndSegmentation(QString *filename);
//void on_action(QString& string);
};
#endif // MAINWINDOW_H
-
diff --git a/XmlParser/mainwindow.ui b/XmlParser/mainwindow.ui
index 3340356..8e57fa3 100644
--- a/XmlParser/mainwindow.ui
+++ b/XmlParser/mainwindow.ui
@@ -20,8 +20,8 @@
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
- <x>110</x>
- <y>650</y>
+ <x>120</x>
+ <y>670</y>
<width>811</width>
<height>75</height>
</rect>
@@ -30,8 +30,8 @@
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
- <x>40</x>
- <y>10</y>
+ <x>30</x>
+ <y>50</y>
<width>971</width>
<height>591</height>
</rect>
diff --git a/XmlParser/polygonitem.h b/XmlParser/polygonitem.h
index 70ad085..c46fcb4 100644
--- a/XmlParser/polygonitem.h
+++ b/XmlParser/polygonitem.h
@@ -5,7 +5,8 @@
#include <QPen>
class PolygonItem :
- public QObject, public QGraphicsPolygonItem
+ public QObject,
+ public QGraphicsPolygonItem
{
Q_OBJECT
diff --git a/XmlParser/preprocess.cpp b/XmlParser/preprocess.cpp
new file mode 100644
index 0000000..f012d88
--- /dev/null
+++ b/XmlParser/preprocess.cpp
@@ -0,0 +1,11 @@
+#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/XmlParser/preprocess.h b/XmlParser/preprocess.h
new file mode 100644
index 0000000..0ca01d3
--- /dev/null
+++ b/XmlParser/preprocess.h
@@ -0,0 +1,26 @@
+#ifndef PREPROCESS_H
+#define PREPROCESS_H
+
+#include <QObject>
+#include <mln/core/image/image2d.hh>
+#include <mln/value/rgb8.hh>
+#include <scribo/toolchain/internal/text_in_doc_preprocess_functor.hh>
+
+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/XmlParser/process.cpp b/XmlParser/process.cpp
new file mode 100644
index 0000000..bd37480
--- /dev/null
+++ b/XmlParser/process.cpp
@@ -0,0 +1,21 @@
+#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/XmlParser/process.h b/XmlParser/process.h
new file mode 100644
index 0000000..2759d00
--- /dev/null
+++ b/XmlParser/process.h
@@ -0,0 +1,29 @@
+#ifndef PROCESS_H
+#define PROCESS_H
+
+#include <QObject>
+#include <mln/core/image/image2d.hh>
+#include <scribo/toolchain/internal/content_in_doc_functor.hh>
+
+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/XmlParser/progressdialog.cpp b/XmlParser/progressdialog.cpp
new file mode 100644
index 0000000..386aaa6
--- /dev/null
+++ b/XmlParser/progressdialog.cpp
@@ -0,0 +1,22 @@
+#include "progressdialog.h"
+
+ProgressDialog::ProgressDialog(QWidget *parent, Qt::WindowFlags flags):
+ QProgressDialog(parent, flags)
+{
+ setModal(true);
+ setAutoClose(false);
+ setCancelButton(0);
+ hide();
+}
+
+void ProgressDialog::run()
+{
+ setValue(value()+1);
+}
+
+void ProgressDialog::reset()
+{
+ setValue(0);
+ setLabelText("");
+ show();
+}
diff --git a/XmlParser/progressdialog.h b/XmlParser/progressdialog.h
new file mode 100644
index 0000000..d1d1a20
--- /dev/null
+++ b/XmlParser/progressdialog.h
@@ -0,0 +1,19 @@
+#ifndef PROGRESSDIALOG_H
+#define PROGRESSDIALOG_H
+
+#include <QProgressDialog>
+
+class ProgressDialog :
+ public QProgressDialog
+{
+ Q_OBJECT
+
+ public:
+ explicit ProgressDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
+ void reset();
+
+ public slots:
+ void run();
+};
+
+#endif // PROGRESSDIALOG_H
diff --git a/XmlParser/region.h b/XmlParser/region.h
index 21d67d8..0741177 100644
--- a/XmlParser/region.h
+++ b/XmlParser/region.h
@@ -15,7 +15,7 @@ namespace GraphicRegion
enum Id
{
- Text = 0,
+ Text,
Line,
Baseline,
Meanline,
@@ -32,4 +32,14 @@ namespace GraphicRegion
};
}
+namespace Separator
+{
+ enum FindSeparator
+ {
+ Lines,
+ Whitespaces,
+ Both
+ };
+}
+
#endif // REGION_H
diff --git a/XmlParser/runner.cpp b/XmlParser/runner.cpp
index 3f91319..7ad62fa2 100644
--- a/XmlParser/runner.cpp
+++ b/XmlParser/runner.cpp
@@ -1,6 +1,195 @@
#include "runner.h"
-Runner::Runner(QObject *parent):
- QThread(parent)
+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;
+
+ //qDebug() << "FATAL ERROR: Can't locate file: " + file;
+
+ return "";
+}
+
+Runner::Runner(QObject *parent)
+ : QThread(parent)
+{
+ moveToThread(this);
+}
+
+void Runner::run()
+{
+ switch(mode_)
+ {
+ default:
+ case Demat:
+ {
+ image2d<value::rgb8> ima;
+ io::magick::load(ima, args_.at(0).toUtf8().constData());
+ image2d<bool> bin_ima = preprocess(ima);
+ emit finished(&process(ima, bin_ima));
+ }
+ break;
+
+ case Export:
+ export_as();
+ break;
+ }
+ //qDebug() << "Done.";
+}
+
+void Runner::stop()
+{
+ terminate();
+}
+
+// Demat related stuff
+void Runner::start_demat(const QString& filename)
+{
+ args_.clear();
+ args_ << filename;
+ 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);
+
+ //qDebug() << "Preprocess Done.";
+ return f.output;
+}
+
+
+void Runner::process(const image2d<value::rgb8>& original_ima,
+ const image2d<bool>& processed_ima)
+{
+ emit new_step("Page segmentation");
+
+ Process f(args_.at(0).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(0));
+ QString output_dir = QDir::tempPath();
+ if (conf->generalSaveXmlEnabled())
+ {
+ if (conf->generalSaveXmlSameDir())
+ output_dir = file.absolutePath();
+ else if (conf->generalSaveXmlCustomDir())
+ output_dir = conf->generalSaveXmlCustomDirPath();
+ //else
+ //qDebug() << "runner::progress - Invalid xml saving option!";
+
+ 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();
+ emit new_progress_max_value(f.nsteps());
+
+ // Perform text detection.
+ f(original_ima, processed_ima);
+ return f.output_file;
+ //qDebug() << "Process Done.";
+}
+
+
+
+// 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/XmlParser/runner.h b/XmlParser/runner.h
index 2f303f0..0e506b7 100644
--- a/XmlParser/runner.h
+++ b/XmlParser/runner.h
@@ -3,9 +3,18 @@
#include <QThread>
#include <QStringList>
+#include <QMessageBox>
+#include <QFile>
#include <mln/core/image/image2d.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/magick/load.hh>
+#include "dir.h"
+#include "region.h"
+#include "process.h"
+#include "preprocess.h"
+#include "configs.h"
+
+using namespace mln;
enum RunMode
{
@@ -16,10 +25,33 @@ enum RunMode
class Runner :
public QThread
{
- //Q_OBJECT
+ Q_OBJECT
public:
explicit Runner(QObject *parent = 0);
+ void start_demat(const QString& filename);
+ void start_export(const QString& imgfile, const QString& xmlfile, const QString& outfile);
+
+ private:
+ image2d<bool> preprocess(const image2d<value::rgb8>& ima);
+ QString 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);
+
+ 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(QString *filename = 0);
};
#endif // RUNNER_H
diff --git a/XmlParser/scene.h b/XmlParser/scene.h
index efeac73..47e0cf2 100644
--- a/XmlParser/scene.h
+++ b/XmlParser/scene.h
@@ -21,10 +21,6 @@ class Scene :
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
- signals:
- void repaintItems(const QRectF& rect, bool clic);
- void sendString(QString& string);
-
private:
void init();
QString debug(QRect &rect);
@@ -33,6 +29,10 @@ class Scene :
QPointF pressPos;
bool isPressing;
bool clic;
+
+ signals:
+ void repaintItems(const QRectF& rect, bool clic);
+ void sendString(QString& string);
};
#endif // SCENE_H
diff --git a/XmlParser/toolbar.cpp b/XmlParser/toolbar.cpp
index 4b098a5..746f5ee 100644
--- a/XmlParser/toolbar.cpp
+++ b/XmlParser/toolbar.cpp
@@ -3,12 +3,26 @@
ToolBar::ToolBar(QWidget *parent):
QToolBar("ToolBar", parent)
{
- init();
+ setAutoFillBackground(true);
+ setFloatable(false);
+ setMovable(false);
+ open = addAction(tr("Open"));
+ segment = addAction(tr("Segment"));
+ addSeparator();
+ quit = addAction(tr("Quit"));
}
-void ToolBar::init()
+QAction * ToolBar::openAction() const
{
- addAction(tr("Open"));
- addAction(tr("Segment"));
+ return open;
+}
+QAction * ToolBar::segmentAction() const
+{
+ return segment;
+}
+
+QAction * ToolBar::quitAction() const
+{
+ return quit;
}
diff --git a/XmlParser/toolbar.h b/XmlParser/toolbar.h
index 91aa338..25609af 100644
--- a/XmlParser/toolbar.h
+++ b/XmlParser/toolbar.h
@@ -2,16 +2,26 @@
#define TOOLBAR_H
#include <QToolBar>
+#include <QAction>
+#include "mainwindow.h"
class ToolBar :
public QToolBar
{
public:
- explicit ToolBar(QWidget *parent = 0);
- explicit ToolBar(const QString& title, QWidget *parent = 0);
+ explicit ToolBar(QWidget *parent);
+ QAction * openAction() const;
+ QAction * segmentAction() const;
+ QAction * quitAction() const;
private:
void init();
+
+ QAction *open;
+ QAction *segment;
+ QAction *quit;
+
+
};
#endif // TOOLBAR_H
diff --git a/XmlParser/xml.cpp b/XmlParser/xml.cpp
index 40bf193..4b20005 100644
--- a/XmlParser/xml.cpp
+++ b/XmlParser/xml.cpp
@@ -97,59 +97,59 @@ void Xml::parseItems(const QString &filename, Scene *scene)
xmlFile.close();
QVector<QGraphicsItem *> items;
QDomElement element = xml.documentElement().firstChild().nextSiblingElement("Page").firstChild().toElement();
- graphicsTextRegion(element, scene); // TextRegion + LineRegion + Baseline + Meanline
+ graphicsTextRegion(element, scene);
GraphicRegion::Data verticalData;
verticalData.color = QColor::fromRgb(0, 0, 255, 80);
verticalData.name = "VerticalSeparatorRegion";
verticalData.region = (int)GraphicRegion::VerticalSeparator;
verticalData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(verticalData.name), verticalData, scene); // VerticalRegion
+ graphicsRegion(element.nextSiblingElement(verticalData.name), verticalData, scene);
GraphicRegion::Data horizontalData;
horizontalData.color = QColor::fromRgb(0, 0, 255, 80);
horizontalData.name = "HorizontalSeparatorRegion";
horizontalData.region = (int)GraphicRegion::HorizontalSeparator;
horizontalData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(horizontalData.name), horizontalData, scene); // HorizontalRegion
+ graphicsRegion(element.nextSiblingElement(horizontalData.name), horizontalData, scene);
GraphicRegion::Data spaceData;
spaceData.color = QColor::fromRgb(0, 0, 128, 80);
spaceData.name = "WhitespaceSeparatorRegion";
spaceData.region = (int)GraphicRegion::WhiteSpaceSeparator;
spaceData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(spaceData.name), spaceData, scene); // WhitespaceRegion
+ graphicsRegion(element.nextSiblingElement(spaceData.name), spaceData, scene);
GraphicRegion::Data imageData;
imageData.color = QColor::fromRgb(255, 120, 0, 80);
imageData.name = "ImageRegion";
imageData.region = (int)GraphicRegion::Image;
imageData.zValue = 1;
- graphicsRegion(element.nextSiblingElement(imageData.name), imageData, scene); // ImageRegion
+ graphicsRegion(element.nextSiblingElement(imageData.name), imageData, scene);
GraphicRegion::Data noiseData;
noiseData.color = QColor::fromRgb(43, 39, 128, 80);
noiseData.name = "NoiseRegion";
noiseData.region = (int)GraphicRegion::Noise;
noiseData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(noiseData.name), noiseData, scene); // NoiseRegion
+ graphicsRegion(element.nextSiblingElement(noiseData.name), noiseData, scene);
GraphicRegion::Data tableData;
tableData.color = QColor::fromRgb(220, 246, 0, 80);
tableData.name = "TableRegion";
tableData.region = (int)GraphicRegion::Table;
tableData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(tableData.name), tableData, scene); // TableRegion
+ graphicsRegion(element.nextSiblingElement(tableData.name), tableData, scene);
GraphicRegion::Data mathsData;
mathsData.color = QColor::fromRgb(170, 0, 255, 80);
mathsData.name = "MathsRegion";
mathsData.region = (int)GraphicRegion::Maths;
mathsData.zValue = 3;
- graphicsRegion(element.nextSiblingElement(mathsData.name), mathsData, scene); // MathsRegion
+ graphicsRegion(element.nextSiblingElement(mathsData.name), mathsData, scene);
GraphicRegion::Data graphicData;
graphicData.color = QColor::fromRgb(255, 0, 144, 80);
graphicData.name = "GraphicRegion";
graphicData.region = (int)GraphicRegion::Graphic;
graphicData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(graphicData.name), graphicData, scene); // GraphicRegion
+ graphicsRegion(element.nextSiblingElement(graphicData.name), graphicData, scene);
GraphicRegion::Data chartData;
chartData.color = QColor::fromRgb(0, 204, 255, 80);
chartData.name = "ChartRegion";
chartData.region = (int)GraphicRegion::Chart;
chartData.zValue = 2;
- graphicsRegion(element.nextSiblingElement(chartData.name), chartData, scene); // ChartRegion
+ graphicsRegion(element.nextSiblingElement(chartData.name), chartData, scene);
}
--
1.7.2.5
1
0
---
XmlParser/XmlParser | Bin 1161618 -> 0 bytes
XmlParser/XmlParser.pro | 9 +++++++--
XmlParser/XmlParser.pro.user | 36 ++++++++++++++++++------------------
XmlParser/mainwindow.cpp | 10 ++++++++--
XmlParser/mainwindow.h | 1 +
XmlParser/mainwindow.ui | 16 +++++-----------
XmlParser/runner.cpp | 6 ++++++
XmlParser/runner.h | 25 +++++++++++++++++++++++++
XmlParser/toolbar.cpp | 14 ++++++++++++++
XmlParser/toolbar.h | 17 +++++++++++++++++
10 files changed, 101 insertions(+), 33 deletions(-)
delete mode 100755 XmlParser/XmlParser
create mode 100644 XmlParser/runner.cpp
create mode 100644 XmlParser/runner.h
create mode 100644 XmlParser/toolbar.cpp
create mode 100644 XmlParser/toolbar.h
diff --git a/XmlParser/XmlParser b/XmlParser/XmlParser
deleted file mode 100755
index 083bcef..0000000
Binary files a/XmlParser/XmlParser and /dev/null differ
diff --git a/XmlParser/XmlParser.pro b/XmlParser/XmlParser.pro
index 1b9bca8..812902d 100644
--- a/XmlParser/XmlParser.pro
+++ b/XmlParser/XmlParser.pro
@@ -4,16 +4,21 @@
QT += xml
TARGET = XmlParser
TEMPLATE = app
+INCLUDEPATH += /lrde/home/stage/froger_a/olena/milena/
SOURCES += main.cpp \
mainwindow.cpp \
xml.cpp \
scene.cpp \
selection.cpp \
- polygonitem.cpp
+ polygonitem.cpp \
+ runner.cpp \
+ toolbar.cpp
HEADERS += mainwindow.h \
region.h \
xml.h \
scene.h \
selection.h \
- polygonitem.h
+ polygonitem.h \
+ runner.h \
+ toolbar.h
FORMS += mainwindow.ui
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index 8b1714e..bd2e795 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -76,14 +76,14 @@
<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-cEQxLJuvtW,guid=fcd36bb11605fca6a463651e005eb9dd</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-1aju09G1Pe,guid=69ec02ba8a70eadde9e5182600601b23</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-r2voTB</value>
- <value type="QString">GNOME_KEYRING_PID=13274</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-792wyb</value>
+ <value type="QString">GNOME_KEYRING_PID=10096</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>
@@ -95,16 +95,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=13349</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-vxZwL13283/agent.13283</value>
+ <value type="QString">SSH_AGENT_PID=10171</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-VVXGf10105/agent.10105</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmSQLVQW</value>
+ <value type="QString">WINDOWID=16777252</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm1TO0QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358255777.408983-704756310</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358346215.20665-174033780</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>
@@ -128,14 +128,14 @@
<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-cEQxLJuvtW,guid=fcd36bb11605fca6a463651e005eb9dd</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-1aju09G1Pe,guid=69ec02ba8a70eadde9e5182600601b23</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-r2voTB</value>
- <value type="QString">GNOME_KEYRING_PID=13274</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-792wyb</value>
+ <value type="QString">GNOME_KEYRING_PID=10096</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>
@@ -147,16 +147,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=13349</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-vxZwL13283/agent.13283</value>
+ <value type="QString">SSH_AGENT_PID=10171</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-VVXGf10105/agent.10105</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmSQLVQW</value>
+ <value type="QString">WINDOWID=16777252</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</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdm1TO0QW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358255777.408983-704756310</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358346215.20665-174033780</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>
diff --git a/XmlParser/mainwindow.cpp b/XmlParser/mainwindow.cpp
index 2bf9df8..6ad5237 100644
--- a/XmlParser/mainwindow.cpp
+++ b/XmlParser/mainwindow.cpp
@@ -6,9 +6,15 @@ MainWindow::MainWindow(QWidget *parent) :
ui(new Ui::MainWindow)
{
ui->setupUi(this);
- ui->graphicsView->setGeometry(0, 0, ui->groupBox->width(), ui->groupBox->height());
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(ui->groupBox);
+ layout->addWidget(ui->textEdit);
+ setLayout(layout);
+ QVBoxLayout *gBLayout = new QVBoxLayout;
+ gBLayout->addWidget(ui->graphicsView);
+ ui->groupBox->setLayout(gBLayout);
Scene *scene = new Scene(ui->graphicsView);
- scene->setSceneRect(/*ui->graphicsView->geometry()*/0, 0, 1000, 1000);
+ scene->setSceneRect(ui->graphicsView->geometry());
ui->graphicsView->setScene(scene);
Xml::parseItems("/tmp/mp00082c_gui.xml", scene);
}
diff --git a/XmlParser/mainwindow.h b/XmlParser/mainwindow.h
index 26cc6f0..47103a3 100644
--- a/XmlParser/mainwindow.h
+++ b/XmlParser/mainwindow.h
@@ -3,6 +3,7 @@
#include <QMainWindow>
#include <QGraphicsView>
+#include <QVBoxLayout>
#include <QFileDialog>
#include "scene.h"
#include "xml.h"
diff --git a/XmlParser/mainwindow.ui b/XmlParser/mainwindow.ui
index 80ee3b4..3340356 100644
--- a/XmlParser/mainwindow.ui
+++ b/XmlParser/mainwindow.ui
@@ -13,6 +13,9 @@
<property name="windowTitle">
<string>MainWindow</string>
</property>
+ <property name="dockNestingEnabled">
+ <bool>false</bool>
+ </property>
<widget class="QWidget" name="centralWidget">
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
@@ -27,7 +30,7 @@
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
- <x>30</x>
+ <x>40</x>
<y>10</y>
<width>971</width>
<height>591</height>
@@ -54,7 +57,7 @@
<x>0</x>
<y>0</y>
<width>1035</width>
- <height>25</height>
+ <height>23</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@@ -65,15 +68,6 @@
</widget>
<addaction name="menuFile"/>
</widget>
- <widget class="QToolBar" name="mainToolBar">
- <attribute name="toolBarArea">
- <enum>TopToolBarArea</enum>
- </attribute>
- <attribute name="toolBarBreak">
- <bool>false</bool>
- </attribute>
- </widget>
- <widget class="QStatusBar" name="statusBar"/>
<action name="actionOpen">
<property name="text">
<string>Open</string>
diff --git a/XmlParser/runner.cpp b/XmlParser/runner.cpp
new file mode 100644
index 0000000..3f91319
--- /dev/null
+++ b/XmlParser/runner.cpp
@@ -0,0 +1,6 @@
+#include "runner.h"
+
+Runner::Runner(QObject *parent):
+ QThread(parent)
+{
+}
diff --git a/XmlParser/runner.h b/XmlParser/runner.h
new file mode 100644
index 0000000..2f303f0
--- /dev/null
+++ b/XmlParser/runner.h
@@ -0,0 +1,25 @@
+#ifndef RUNNER_H
+#define RUNNER_H
+
+#include <QThread>
+#include <QStringList>
+#include <mln/core/image/image2d.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/io/magick/load.hh>
+
+enum RunMode
+{
+ Demat,
+ Export
+};
+
+class Runner :
+ public QThread
+{
+ //Q_OBJECT
+
+ public:
+ explicit Runner(QObject *parent = 0);
+};
+
+#endif // RUNNER_H
diff --git a/XmlParser/toolbar.cpp b/XmlParser/toolbar.cpp
new file mode 100644
index 0000000..4b098a5
--- /dev/null
+++ b/XmlParser/toolbar.cpp
@@ -0,0 +1,14 @@
+#include "toolbar.h"
+
+ToolBar::ToolBar(QWidget *parent):
+ QToolBar("ToolBar", parent)
+{
+ init();
+}
+
+void ToolBar::init()
+{
+ addAction(tr("Open"));
+ addAction(tr("Segment"));
+
+}
diff --git a/XmlParser/toolbar.h b/XmlParser/toolbar.h
new file mode 100644
index 0000000..91aa338
--- /dev/null
+++ b/XmlParser/toolbar.h
@@ -0,0 +1,17 @@
+#ifndef TOOLBAR_H
+#define TOOLBAR_H
+
+#include <QToolBar>
+
+class ToolBar :
+ public QToolBar
+{
+ public:
+ explicit ToolBar(QWidget *parent = 0);
+ explicit ToolBar(const QString& title, QWidget *parent = 0);
+
+ private:
+ void init();
+};
+
+#endif // TOOLBAR_H
--
1.7.2.5
1
0
---
XmlParser/XmlParser | Bin 0 -> 1161618 bytes
XmlParser/XmlParser.pro.user | 32 +++++++-------
XmlParser/mainwindow.cpp | 14 ++++---
XmlParser/polygonitem.cpp | 30 ++++++++-----
XmlParser/polygonitem.h | 6 +-
XmlParser/region.h | 12 +++++-
XmlParser/scene.cpp | 15 ++++---
XmlParser/scene.h | 3 +-
XmlParser/xml.cpp | 95 ++++++++++++++++++++++++++++++++++++++----
XmlParser/xml.h | 8 ++-
10 files changed, 158 insertions(+), 57 deletions(-)
create mode 100755 XmlParser/XmlParser
diff --git a/XmlParser/XmlParser b/XmlParser/XmlParser
new file mode 100755
index 0000000..083bcef
Binary files /dev/null and b/XmlParser/XmlParser differ
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index bc2cc08..8b1714e 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -76,14 +76,14 @@
<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-aIwwX1PdIW,guid=277c26e47ab43726f8468924005d78f8</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-cEQxLJuvtW,guid=fcd36bb11605fca6a463651e005eb9dd</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-zYFQHc</value>
- <value type="QString">GNOME_KEYRING_PID=10639</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-r2voTB</value>
+ <value type="QString">GNOME_KEYRING_PID=13274</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>
@@ -95,16 +95,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=10714</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-QUVfz10648/agent.10648</value>
+ <value type="QString">SSH_AGENT_PID=13349</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-vxZwL13283/agent.13283</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWM6XQW</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmSQLVQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358173628.84883-879735171</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358255777.408983-704756310</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>
@@ -128,14 +128,14 @@
<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-aIwwX1PdIW,guid=277c26e47ab43726f8468924005d78f8</value>
+ <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-cEQxLJuvtW,guid=fcd36bb11605fca6a463651e005eb9dd</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-zYFQHc</value>
- <value type="QString">GNOME_KEYRING_PID=10639</value>
+ <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-r2voTB</value>
+ <value type="QString">GNOME_KEYRING_PID=13274</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>
@@ -147,16 +147,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=10714</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-QUVfz10648/agent.10648</value>
+ <value type="QString">SSH_AGENT_PID=13349</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-vxZwL13283/agent.13283</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</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmWM6XQW</value>
+ <value type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmSQLVQW</value>
<value type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358173628.84883-879735171</value>
+ <value type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1358255777.408983-704756310</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>
diff --git a/XmlParser/mainwindow.cpp b/XmlParser/mainwindow.cpp
index 86f69a7..2bf9df8 100644
--- a/XmlParser/mainwindow.cpp
+++ b/XmlParser/mainwindow.cpp
@@ -8,10 +8,9 @@ MainWindow::MainWindow(QWidget *parent) :
ui->setupUi(this);
ui->graphicsView->setGeometry(0, 0, ui->groupBox->width(), ui->groupBox->height());
Scene *scene = new Scene(ui->graphicsView);
- scene->setSceneRect(ui->graphicsView->geometry());
+ scene->setSceneRect(/*ui->graphicsView->geometry()*/0, 0, 1000, 1000);
ui->graphicsView->setScene(scene);
- Xml::parseItems("/lrde/home/stage/froger_a/olena/_build/scribo/src/out.xml", scene);
- connect(scene, SIGNAL(sendString(QString&)), this, SLOT(on_action(QString&)));
+ Xml::parseItems("/tmp/mp00082c_gui.xml", scene);
}
MainWindow::~MainWindow()
@@ -35,9 +34,12 @@ void MainWindow::changeEvent(QEvent *e)
void MainWindow::on_actionOpen_triggered()
{
QPixmap pixmap(QFileDialog::getOpenFileName(this));
- QBrush brush(pixmap);
- ui->graphicsView->scene()->setBackgroundBrush(brush);
- ui->graphicsView->scene()->setSceneRect(pixmap.rect());;
+ QGraphicsPixmapItem *pixmapItem = new QGraphicsPixmapItem(pixmap);
+ pixmapItem->setFlag(QGraphicsItem::ItemNegativeZStacksBehindParent, true);
+ pixmapItem->setZValue(-1);
+ pixmapItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
+ ui->graphicsView->scene()->setSceneRect(pixmap.rect());
+ ui->graphicsView->scene()->addItem(pixmapItem);
}
/*void MainWindow::on_action(QString& string)
diff --git a/XmlParser/polygonitem.cpp b/XmlParser/polygonitem.cpp
index 4b80fda..5ab3e7e 100644
--- a/XmlParser/polygonitem.cpp
+++ b/XmlParser/polygonitem.cpp
@@ -14,23 +14,29 @@ PolygonItem::PolygonItem(const QPolygonF &polygon, QGraphicsItem *parent, QGraph
void PolygonItem::init()
{
- setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
+ setCacheMode(QGraphicsItem::ItemCoordinateCache);
+ setFlags(QGraphicsItem::ItemClipsToShape);
selectedPen = new QPen(Qt::SolidLine);
unselectedPen = new QPen(Qt::SolidLine);
- selectedPen->setWidthF(20);
+ selectedPen->setWidthF(3);
unselectedPen->setWidth(0);
selectedPen->setCapStyle(Qt::SquareCap);
unselectedPen->setCapStyle(Qt::SquareCap);
selectedBrush = new QBrush(Qt::SolidPattern);
unselectedBrush = new QBrush(Qt::SolidPattern);
+ QRectF bRect(boundingRect());
+ if(bRect.width() < 1)
+ bRect.setWidth(1);
+ if(bRect.height() < 1)
+ bRect.setHeight(1);
}
void PolygonItem::setColor(const QColor &color)
{
- selectedPen->setColor(color);
+ selectedPen->setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 200));
unselectedPen->setColor(color);
selectedBrush->setColor(color);
- unselectedBrush->setColor(color);
+ unselectedBrush->setColor(QColor::fromRgb(color.red(), color.green(), color.blue(), 30));
setPen(*selectedPen);
setBrush(*selectedBrush);
}
@@ -40,17 +46,21 @@ QColor PolygonItem::color() const
return selectedBrush->color();
}
-void PolygonItem::repaint(const QRectF &rect)
+void PolygonItem::repaint(const QRectF &rect, bool clic)
{
- if(isSelected())
+ bool sel;
+ if(clic)
+ sel = (boundingRect().width() == 0 || boundingRect().height() == 0 || boundingRect().contains(rect.bottomRight())) && shape().contains(rect.bottomRight());
+ else
+ sel = (boundingRect().width() == 0 || boundingRect().height() == 0 || boundingRect().intersects(rect)) && shape().intersects(rect);
+ if(sel)
{
if(pen() != *selectedPen)
{
setPen(*selectedPen);
setBrush(*selectedBrush);
+ update(rect);
}
- else
- return;
}
else
{
@@ -58,9 +68,7 @@ void PolygonItem::repaint(const QRectF &rect)
{
setPen(*unselectedPen);
setBrush(*unselectedBrush);
+ update(rect);
}
- else
- return;
}
- update(rect);
}
diff --git a/XmlParser/polygonitem.h b/XmlParser/polygonitem.h
index 036ba4f..70ad085 100644
--- a/XmlParser/polygonitem.h
+++ b/XmlParser/polygonitem.h
@@ -1,7 +1,7 @@
#ifndef POLYGONITEM_H
#define POLYGONITEM_H
-#include <QGraphicsPolygonItem>
+#include <QGraphicsPathItem>
#include <QPen>
class PolygonItem :
@@ -11,7 +11,7 @@ class PolygonItem :
public:
explicit PolygonItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
- explicit PolygonItem(const QPolygonF &polygon, 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;
@@ -24,7 +24,7 @@ class PolygonItem :
QBrush *unselectedBrush;
public slots:
- void repaint(const QRectF& rect);
+ void repaint(const QRectF& rect, bool clic);
};
#endif // POLYGONITEM_H
diff --git a/XmlParser/region.h b/XmlParser/region.h
index 49704ca..21d67d8 100644
--- a/XmlParser/region.h
+++ b/XmlParser/region.h
@@ -1,8 +1,18 @@
#ifndef REGION_H
#define REGION_H
-namespace GraphicsRegion
+#include <QColor>
+
+namespace GraphicRegion
{
+ struct Data
+ {
+ QColor color;
+ QString name;
+ int region;
+ int zValue;
+ };
+
enum Id
{
Text = 0,
diff --git a/XmlParser/scene.cpp b/XmlParser/scene.cpp
index ebf0c01..79cc213 100644
--- a/XmlParser/scene.cpp
+++ b/XmlParser/scene.cpp
@@ -21,16 +21,17 @@ Scene::Scene(qreal x, qreal y, qreal width, qreal height, QObject *parent):
void Scene::init()
{
isPressing = false;
+ clic = false;
selection = new Selection(this);
-}
+}
void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if(event->button() == Qt::LeftButton && !isPressing)
{
isPressing = true;
+ clic = true;
pressPos = event->scenePos();
- selection->show();
}
}
@@ -38,6 +39,7 @@ void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if(isPressing)
{
+ clic = false;
if(pressPos.x() < event->scenePos().x())
selection->setRect(pressPos.x(), 0, event->scenePos().x()-pressPos.x(), 0);
else
@@ -54,12 +56,11 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
if(event->button() == Qt::LeftButton)
{
isPressing = false;
- QPainterPath path;
- path.addRect(selection->rect());
- setSelectionArea(path, Qt::IntersectsItemShape);
- emit repaintItems(selection->rect());
+ if(clic)
+ emit repaintItems(QRectF(QPointF(0, 0), event->scenePos()), true);
+ else
+ emit repaintItems(selection->rect(), false);
selection->setRect(0, 0, 0, 0);
- selection->hide();
}
}
diff --git a/XmlParser/scene.h b/XmlParser/scene.h
index 0e1b4e9..efeac73 100644
--- a/XmlParser/scene.h
+++ b/XmlParser/scene.h
@@ -22,7 +22,7 @@ class Scene :
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
signals:
- void repaintItems(const QRectF& rect);
+ void repaintItems(const QRectF& rect, bool clic);
void sendString(QString& string);
private:
@@ -32,6 +32,7 @@ class Scene :
Selection *selection;
QPointF pressPos;
bool isPressing;
+ bool clic;
};
#endif // SCENE_H
diff --git a/XmlParser/xml.cpp b/XmlParser/xml.cpp
index e81d587..40bf193 100644
--- a/XmlParser/xml.cpp
+++ b/XmlParser/xml.cpp
@@ -5,14 +5,36 @@ Xml::Xml()
{
}
-void Xml::graphicsTypoRegion(const QDomElement &element, const QPoint &xPos, Scene *scene)
+void Xml::graphicsRegion(const QDomElement& element, const GraphicRegion::Data& data, Scene *scene)
+{
+ if(!element.isNull())
+ {
+ 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);
+ }
+}
+
+void Xml::graphicsTypoRegion(const QDomElement& element, const QPoint& xPos, Scene *scene)
{
int yPos = element.attribute("baseline", "null").toInt();
QGraphicsLineItem *baselineRegion = new QGraphicsLineItem(QLine(QPoint(xPos.x(), yPos), QPoint(xPos.y(), yPos)), 0, scene);
- baselineRegion->setData(0, QVariant::fromValue((int)GraphicsRegion::Baseline));
+ 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->setData(0, QVariant::fromValue((int)GraphicsRegion::Meanline));
+ meanlineRegion->setData(0, QVariant::fromValue((int)GraphicRegion::Meanline));
+ meanlineRegion->setZValue(3);
}
void Xml::graphicsLineRegion(const QDomElement &element, Scene *scene)
@@ -36,10 +58,10 @@ void Xml::graphicsLineRegion(const QDomElement &element, Scene *scene)
elt = elt.nextSibling().toElement();
}
PolygonItem *lineRegion = new PolygonItem(polygonLine, 0, scene);
- lineRegion->setData(0, QVariant::fromValue((int)GraphicsRegion::Line));
+ lineRegion->setData(0, QVariant::fromValue((int)GraphicRegion::Line));
lineRegion->setColor(QColor::fromRgb(255, 0, 0, 80));
lineRegion->setZValue(2);
- connect(scene, SIGNAL(repaintItems(QRectF)), lineRegion, SLOT(repaint(QRectF)));
+ connect(scene, SIGNAL(repaintItems(QRectF,bool)), lineRegion, SLOT(repaint(QRectF,bool)));
graphicsTypoRegion(element, QPoint(xMin, xMax), scene);
graphicsLineRegion(element.nextSiblingElement("Line"), scene);
}
@@ -58,9 +80,9 @@ void Xml::graphicsTextRegion(const QDomElement &element, Scene *scene)
}
PolygonItem *textRegion = new PolygonItem(polygonText, 0, scene);
textRegion->setColor(QColor::fromRgb(0, 100, 0, 80));
- textRegion->setData(0, QVariant::fromValue((int)GraphicsRegion::Text));
- textRegion->setZValue(3);
- connect(scene, SIGNAL(repaintItems(QRectF)), textRegion, SLOT(repaint(QRectF)));
+ 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);
}
@@ -74,5 +96,60 @@ void Xml::parseItems(const QString &filename, Scene *scene)
xml.setContent(&xmlFile);
xmlFile.close();
QVector<QGraphicsItem *> items;
- graphicsTextRegion(xml.documentElement().firstChild().nextSiblingElement("Page").firstChild().toElement(), scene);
+ QDomElement element = xml.documentElement().firstChild().nextSiblingElement("Page").firstChild().toElement();
+ graphicsTextRegion(element, scene); // TextRegion + LineRegion + Baseline + Meanline
+ GraphicRegion::Data verticalData;
+ verticalData.color = QColor::fromRgb(0, 0, 255, 80);
+ verticalData.name = "VerticalSeparatorRegion";
+ verticalData.region = (int)GraphicRegion::VerticalSeparator;
+ verticalData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(verticalData.name), verticalData, scene); // VerticalRegion
+ GraphicRegion::Data horizontalData;
+ horizontalData.color = QColor::fromRgb(0, 0, 255, 80);
+ horizontalData.name = "HorizontalSeparatorRegion";
+ horizontalData.region = (int)GraphicRegion::HorizontalSeparator;
+ horizontalData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(horizontalData.name), horizontalData, scene); // HorizontalRegion
+ GraphicRegion::Data spaceData;
+ spaceData.color = QColor::fromRgb(0, 0, 128, 80);
+ spaceData.name = "WhitespaceSeparatorRegion";
+ spaceData.region = (int)GraphicRegion::WhiteSpaceSeparator;
+ spaceData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(spaceData.name), spaceData, scene); // WhitespaceRegion
+ GraphicRegion::Data imageData;
+ imageData.color = QColor::fromRgb(255, 120, 0, 80);
+ imageData.name = "ImageRegion";
+ imageData.region = (int)GraphicRegion::Image;
+ imageData.zValue = 1;
+ graphicsRegion(element.nextSiblingElement(imageData.name), imageData, scene); // ImageRegion
+ GraphicRegion::Data noiseData;
+ noiseData.color = QColor::fromRgb(43, 39, 128, 80);
+ noiseData.name = "NoiseRegion";
+ noiseData.region = (int)GraphicRegion::Noise;
+ noiseData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(noiseData.name), noiseData, scene); // NoiseRegion
+ GraphicRegion::Data tableData;
+ tableData.color = QColor::fromRgb(220, 246, 0, 80);
+ tableData.name = "TableRegion";
+ tableData.region = (int)GraphicRegion::Table;
+ tableData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(tableData.name), tableData, scene); // TableRegion
+ GraphicRegion::Data mathsData;
+ mathsData.color = QColor::fromRgb(170, 0, 255, 80);
+ mathsData.name = "MathsRegion";
+ mathsData.region = (int)GraphicRegion::Maths;
+ mathsData.zValue = 3;
+ graphicsRegion(element.nextSiblingElement(mathsData.name), mathsData, scene); // MathsRegion
+ GraphicRegion::Data graphicData;
+ graphicData.color = QColor::fromRgb(255, 0, 144, 80);
+ graphicData.name = "GraphicRegion";
+ graphicData.region = (int)GraphicRegion::Graphic;
+ graphicData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(graphicData.name), graphicData, scene); // GraphicRegion
+ GraphicRegion::Data chartData;
+ chartData.color = QColor::fromRgb(0, 204, 255, 80);
+ chartData.name = "ChartRegion";
+ chartData.region = (int)GraphicRegion::Chart;
+ chartData.zValue = 2;
+ graphicsRegion(element.nextSiblingElement(chartData.name), chartData, scene); // ChartRegion
}
diff --git a/XmlParser/xml.h b/XmlParser/xml.h
index 7176713..c694a95 100644
--- a/XmlParser/xml.h
+++ b/XmlParser/xml.h
@@ -8,6 +8,7 @@
#include <climits>
#include <QTextEdit>
#include "polygonitem.h"
+#include "region.h"
#include "scene.h"
class Xml:
@@ -18,9 +19,10 @@ class Xml:
static void parseItems(const QString &filename, Scene *scene);
private:
- static void graphicsTypoRegion(const QDomElement &element, const QPoint& xPos, Scene *scene);
- static void graphicsLineRegion(const QDomElement &element, Scene *scene);
- static void graphicsTextRegion(const QDomElement &element, Scene *scene);
+ static void graphicsRegion(const QDomElement& element, const GraphicRegion::Data& data, Scene *scene);
+ static void graphicsTypoRegion(const QDomElement& element, const QPoint& xPos, Scene *scene);
+ static void graphicsLineRegion(const QDomElement& element, Scene *scene);
+ static void graphicsTextRegion(const QDomElement& element, Scene *scene);
};
#endif // XML_H
--
1.7.2.5
1
0