---
GScribo/GScribo.pro | 62 ------------
GScribo/GScribo.pro.user | 83 +++++++++++++----
GScribo/PagesViewer/listmodel.h | 4 +-
GScribo/Rendering/polygonitem.cpp | 33 +++----
GScribo/Rendering/polygonitem.h | 21 +++--
GScribo/Rendering/scene.cpp | 56 +++++++++--
GScribo/Rendering/scene.h | 12 +-
GScribo/mainwindow.cpp | 190 -------------------------------------
GScribo/mainwindow.h | 67 -------------
GScribo/variantpointer.h | 4 +-
GScribo/xml.cpp | 61 ++++++++----
GScribo/xml.h | 8 +-
GScribo/xmlwidget.cpp | 24 +++++
GScribo/xmlwidget.h | 22 ++++-
VariantPointer.h | 19 ----
XmlParser/XmlParser.pro.user | 91 ++++++++++++++++++
16 files changed, 329 insertions(+), 428 deletions(-)
delete mode 100644 GScribo/GScribo.pro
delete mode 100644 GScribo/mainwindow.cpp
delete mode 100644 GScribo/mainwindow.h
delete mode 100644 VariantPointer.h
diff --git a/GScribo/GScribo.pro b/GScribo/GScribo.pro
deleted file mode 100644
index dc10ae6..0000000
--- a/GScribo/GScribo.pro
+++ /dev/null
@@ -1,62 +0,0 @@
-# -------------------------------------------------
-# Project created by QtCreator 2013-01-21T09:20:54
-# -------------------------------------------------
-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/
-QMAKE_CXXFLAGS += -DNDEBUG \
- -DMLN_WO_GLOBAL_VARS
-LIBS += -I/usr/include/graphicsImage \
- -lGraphicsMagick++ \
- -ltesseract_full
-TARGET = GScribo
-TEMPLATE = app
-SOURCES += main.cpp \
- mainwindow.cpp \
- configs.cpp \
- Rendering/scene.cpp \
- Rendering/selection.cpp \
- Rendering/polygonitem.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 \
- Processing/progressdialog.cpp \
- Processing/process.cpp \
- Processing/preprocess.cpp \
- Processing/runner.cpp \
- xml.cpp \
- xmlwidget.cpp
-HEADERS += mainwindow.h \
- configs.h \
- region.h \
- Rendering/scene.h \
- Rendering/selection.h \
- Rendering/polygonitem.h \
- PagesViewer/pageswidget.h \
- PagesViewer/listmodel.h \
- Preferences/segmentationoptions.h \
- Preferences/preprocessingoptions.h \
- Preferences/ocroptions.h \
- Preferences/generaloptions.h \
- Preferences/optionwidget.h \
- Preferences/preferencesdialog.h \
- Processing/preprocess.h \
- Processing/progressdialog.h \
- Processing/process.h \
- dir.h \
- Processing/runner.h \
- xml.h \
- variantpointer.h \
- xmlwidget.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 aa72d79..fdf1f0c 100644
--- a/GScribo/GScribo.pro.user
+++ b/GScribo/GScribo.pro.user
@@ -67,35 +67,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-2BHwXLdG3H,guid=3f8e1369093fc6feda23ccd2006fd740</value>
+ <value
type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-OdVBhpC8Q3,guid=12f5a3829adfbb5c05f6273d007125c0</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
<value type="QString">GDM_LANG=fr_FR.UTF-8</value>
<value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value
type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8mf291</value>
- <value type="QString">GNOME_KEYRING_PID=5053</value>
+ <value
type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-epygWB</value>
+ <value type="QString">GNOME_KEYRING_PID=7156</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</value>
<value
type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
<value
type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=5128</value>
- <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-aZWNsu5062/agent.5062</value>
+ <value type="QString">SSH_AGENT_PID=7231</value>
+ <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-poGlEz7165/agent.7165</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
<value type="QString">WINDOWID=10485796</value>
- <value
type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmOYVRRW</value>
+ <value
type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmH3DGRW</value>
<value
type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359377411.799018-1039497682</value>
+ <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359463044.389005-635867443</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,35 +120,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-2BHwXLdG3H,guid=3f8e1369093fc6feda23ccd2006fd740</value>
+ <value
type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-OdVBhpC8Q3,guid=12f5a3829adfbb5c05f6273d007125c0</value>
<value type="QString">DESKTOP_SESSION=fluxbox</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=fluxbox</value>
<value type="QString">GDM_LANG=fr_FR.UTF-8</value>
<value type="QString">GDM_XSERVER_LOCATION=local</value>
- <value
type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-8mf291</value>
- <value type="QString">GNOME_KEYRING_PID=5053</value>
+ <value
type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-epygWB</value>
+ <value type="QString">GNOME_KEYRING_PID=7156</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</value>
<value
type="QString">PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
<value
type="QString">PWD=/lrde/home/stage/froger_a/qt/GScribo</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=2</value>
- <value type="QString">SSH_AGENT_PID=5128</value>
- <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-aZWNsu5062/agent.5062</value>
+ <value type="QString">SSH_AGENT_PID=7231</value>
+ <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-poGlEz7165/agent.7165</value>
<value type="QString">TERM=xterm</value>
<value type="QString">USER=froger_a</value>
<value type="QString">USERNAME=froger_a</value>
<value type="QString">WINDOWID=10485796</value>
- <value
type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
- <value type="QString">XAUTHORITY=/tmp/.gdmOYVRRW</value>
+ <value
type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmH3DGRW</value>
<value
type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
- <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359377411.799018-1039497682</value>
+ <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359463044.389005-635867443</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>
@@ -167,6 +169,51 @@
<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-OdVBhpC8Q3,guid=12f5a3829adfbb5c05f6273d007125c0</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-epygWB</value>
+ <value type="QString">GNOME_KEYRING_PID=7156</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</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=7231</value>
+ <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-poGlEz7165/agent.7165</value>
+ <value type="QString">TERM=xterm</value>
+ <value type="QString">USER=froger_a</value>
+ <value type="QString">USERNAME=froger_a</value>
+ <value type="QString">WINDOWID=10485796</value>
+ <value
type="QString">WINDOWPATH=7:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmH3DGRW</value>
+ <value
type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359463044.389005-635867443</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>
diff --git a/GScribo/PagesViewer/listmodel.h b/GScribo/PagesViewer/listmodel.h
index 328d3ca..dac1a2d 100644
--- a/GScribo/PagesViewer/listmodel.h
+++ b/GScribo/PagesViewer/listmodel.h
@@ -13,8 +13,8 @@ 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;
+ int rowCount(const QModelIndex& parent = QModelIndex()) const;
+ QVariant data(const QModelIndex& index, int role = Qt::DecorationRole)
const;
void addPixmap(const QString& filename, const QPixmap& pixmap);
private:
diff --git a/GScribo/Rendering/polygonitem.cpp b/GScribo/Rendering/polygonitem.cpp
index 6bdcd3e..d11d482 100644
--- a/GScribo/Rendering/polygonitem.cpp
+++ b/GScribo/Rendering/polygonitem.cpp
@@ -27,35 +27,29 @@ void PolygonItem::init()
unselectedBrush.setStyle(Qt::SolidPattern);
}
+QColor PolygonItem::color() const
+{
+ return selectedBrush.color();
+}
+
void PolygonItem::setColor(const QColor &color)
{
- selectedPen.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(),
200));
+ selectedPen.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(),
255));
unselectedPen.setColor(color);
selectedBrush.setColor(color);
- unselectedBrush.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(),
30));
-
- setPen(selectedPen);
- setBrush(selectedBrush);
-}
+ unselectedBrush.setColor(QColor::fromRgb(color.red(), color.green(), color.blue(),
40));
-QColor PolygonItem::color() const
-{
- return selectedBrush.color();
+ setPen(unselectedPen);
+ setBrush(unselectedBrush);
}
-void PolygonItem::repaint(const QRectF& rect, bool clic)
+bool 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);
+ bool isSel = isSelected(rect, clic);
// Change items brush and pen if it's selectionned or not.
- if(sel)
+ if(isSel)
{
if(pen() != selectedPen)
{
@@ -64,6 +58,7 @@ void PolygonItem::repaint(const QRectF& rect, bool clic)
update(rect);
}
}
+
else
{
if(pen() != unselectedPen)
@@ -73,4 +68,6 @@ void PolygonItem::repaint(const QRectF& rect, bool clic)
update(rect);
}
}
+
+ return isSel;
}
diff --git a/GScribo/Rendering/polygonitem.h b/GScribo/Rendering/polygonitem.h
index af59631..9715872 100644
--- a/GScribo/Rendering/polygonitem.h
+++ b/GScribo/Rendering/polygonitem.h
@@ -1,17 +1,16 @@
#ifndef POLYGONITEM_H
#define POLYGONITEM_H
-#include <QGraphicsPathItem>
+#include <QGraphicsPolygonItem>
+#include <QTreeWidgetItem>
#include <QPen>
+#include "variantpointer.h"
#include "region.h"
class PolygonItem :
- public QObject,
public QGraphicsPolygonItem
{
- Q_OBJECT
-
public:
explicit PolygonItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
explicit PolygonItem(const QPolygonF& path, QGraphicsItem *parent = 0,
QGraphicsScene *scene = 0);
@@ -19,6 +18,8 @@ class PolygonItem :
void setColor(const QColor& color);
QColor color() const;
+ inline bool isSelected(const QRectF& rect, bool clic);
+ bool repaint(const QRectF &rect, bool clic);
inline void loadData(const GraphicRegion::Data& data);
private:
@@ -28,15 +29,21 @@ class PolygonItem :
QPen unselectedPen;
QBrush selectedBrush;
QBrush unselectedBrush;
-
- public slots:
- void repaint(const QRectF& rect, bool clic);
};
inline void PolygonItem::loadData(const GraphicRegion::Data &data)
{
+ setData(0, data.region);
setColor(data.color);
setZValue(data.zValue);
}
+inline bool PolygonItem::isSelected(const QRectF &rect, bool clic)
+{
+ if(clic)
+ return (boundingRect().width() == 0 || boundingRect().height() == 0 ||
boundingRect().contains(rect.bottomRight())) &&
shape().contains(rect.bottomRight());
+ else
+ return (boundingRect().width() == 0 || boundingRect().height() == 0 ||
boundingRect().intersects(rect)) && shape().intersects(rect);
+}
+
#endif // POLYGONITEM_H
diff --git a/GScribo/Rendering/scene.cpp b/GScribo/Rendering/scene.cpp
index d9bedfb..f58227f 100644
--- a/GScribo/Rendering/scene.cpp
+++ b/GScribo/Rendering/scene.cpp
@@ -22,6 +22,7 @@ void Scene::init()
{
isPressing = false;
clic = false;
+ item = 0;
// Disable the scene size adaptation to items rect with a non null rect.
setSceneRect(0, 0, 0, 1);
@@ -33,16 +34,12 @@ QString Scene::backgroundPath() const
return path;
}
-void Scene::addPolygonItem(QGraphicsItem *item)
-{
- this->item = item;
- addItem(item);
-}
-
void Scene::reset()
{
if(item)
- removeItem(item);
+ delete item;
+
+ item = 0;
}
void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
@@ -86,20 +83,61 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
if(clic)
selection.setRect(QRectF(QPointF(0, 0), event->scenePos()));
- emit repaintItem(selection.rect(), clic);
+ // Redraw all items in selection.
+ if(item)
+ repaintSelection(selection.rect(), clic);
selection.setRect(0, 0, 0, 0);
selection.hide();
}
}
-void Scene::setBackground(const QString& filename, const QPixmap& pixmap)
+void Scene::repaintSelection(const QRectF &rect, bool clic)
+{
+ QGraphicsItem *child;
+ PolygonItem *polygonItem;
+ bool isSel;
+
+ emit clearTreeItemSelection();
+
+ // Redraw all items in the scene except selection.
+ foreach(child, item->childItems())
+ {
+ polygonItem = static_cast<PolygonItem *>(child);
+ isSel = polygonItem->repaint(rect, clic);
+
+ if(isSel)
+ emit
selectTreeItem(VariantPointer<QTreeWidgetItem>::fromQVariant(polygonItem->data(1)));
+
+ // If the item is a text region, run through childs line items.
+ if(polygonItem->data(0).toInt() == GraphicRegion::Text)
+ {
+ foreach(child, polygonItem->childItems())
+ static_cast<PolygonItem *>(child)->repaint(rect, clic);
+ }
+ }
+}
+
+void Scene::addPolygonItem(QGraphicsItem *item)
+{
+ reset();
+
+ this->item = item;
+ addItem(item);
+}
+
+void Scene::changeScene(const QString& filename, const QPixmap& pixmap,
QGraphicsItem *item)
{
if(path != filename)
{
+ reset();
+
path = filename;
setSceneRect(pixmap.rect());
setBackgroundBrush(QBrush(pixmap));
+
+ if(item)
+ addPolygonItem(item);
}
}
diff --git a/GScribo/Rendering/scene.h b/GScribo/Rendering/scene.h
index 58db2d1..2ea559f 100644
--- a/GScribo/Rendering/scene.h
+++ b/GScribo/Rendering/scene.h
@@ -19,8 +19,10 @@ class Scene :
explicit Scene(qreal x, qreal y, qreal width, qreal height, QObject *parent =
0);
QString backgroundPath() const;
- void addPolygonItem(QGraphicsItem *item);
void reset();
+ void addPolygonItem(QGraphicsItem *item);
+ void changeScene(const QString& filename, const QPixmap& pixmap,
QGraphicsItem *item = 0);
+ void repaintSelection(const QRectF& rect, bool clic);
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
@@ -31,17 +33,15 @@ class Scene :
void init();
QGraphicsItem *item;
- QString path;
Selection selection;
QPointF pressPos;
bool isPressing;
+ QString path;
bool clic;
- public slots:
- void setBackground(const QString& filename, const QPixmap& pixmap);
-
signals:
- void repaintItem(const QRectF& rect, bool clic);
+ void selectTreeItem(QTreeWidgetItem *item);
+ void clearTreeItemSelection();
};
#endif // SCENE_H
diff --git a/GScribo/mainwindow.cpp b/GScribo/mainwindow.cpp
deleted file mode 100644
index 924ef87..0000000
--- a/GScribo/mainwindow.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-/////////////////////////////////////////////////REEEEEEEEESSSSSSSSEEEEEEEETTTTTTTT
DDDDDDDAAAAAANNNNNNNSSSSSSS XML /////////////////////
-MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
-{
- ui->setupUi(this);
-
- setWindowTitle(tr("GScribo"));
-
- initGraphicsRegion();
- initTextRegion();
- initXmlWidget();
- 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::initXmlWidget()
-{
- dockXml.setWindowTitle(tr("Xml"));
- dockXml.setFeatures(QDockWidget::DockWidgetClosable);
- dockXml.setWidget(&xmlWidget);
-
- addDockWidget(Qt::BottomDockWidgetArea, &dockXml);
-}
-
-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.reset();
- 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);
- }
-
- // Get instance of the configuration settings.
- Configs * const conf = Configs::getInstance();
-
- // Get xml file from image path.
- path.remove(0, path.lastIndexOf('/')+1);
- int pos = path.lastIndexOf('.');
- path.remove(pos, path.length()-pos);
- path += "_gui.xml";
-
- // Load xml if it exists.
- if(QDir::temp().exists(path))
- path = QDir::tempPath() + "/" + path;
- else if(QDir(conf->generalSaveXmlCustomDirPath()).exists(path))
- path = conf->generalSaveXmlCustomDirPath() + "/" + path;
- else
- path = QString();
-
- if(!path.isNull())
- onXmlSaved(path);
- }
-}
-
-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::onXmlSaved(const QString& filename)
-{
- xml.load(filename);
- xmlWidget.load(xml.treeItem());
-
- scene.addPolygonItem(xml.graphicItem());
-}
-
-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()));
- connect(&runner, SIGNAL(xml_saved(QString)), this, SLOT(onXmlSaved(QString)));
-}
-
-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
deleted file mode 100644
index c0196df..0000000
--- a/GScribo/mainwindow.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#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"
-#include "xmlwidget.h"
-#include "xml.h"
-
-namespace Ui
-{
- class MainWindow;
-}
-
-class MainWindow:
- public QMainWindow
-{
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = 0);
- ~MainWindow();
-
- protected:
- void changeEvent(QEvent *e);
-
- private:
- void initGraphicsRegion();
- void initTextRegion();
- void initToolBar();
- void initPageWidget();
- void initXmlWidget();
- void initMenuBar();
- void connectWidgets();
- void connectShortcuts();
-
- Ui::MainWindow *ui;
- QDockWidget dockText;
- QDockWidget dockPages;
- QDockWidget dockXml;
- QGraphicsView graphicsView;
- Scene scene;
- QPlainTextEdit textEdit;
- PagesWidget pagesWidget;
- Runner runner;
- ProgressDialog progressDialog;
- Xml xml;
- XmlWidget xmlWidget;
-
- private slots:
- void onOpen();
- void onSegment();
- void onXmlSaved(const QString& filename);
- void onPreferences();
-};
-
-#endif // MAINWINDOW_H
diff --git a/GScribo/variantpointer.h b/GScribo/variantpointer.h
index 907008b..a11072c 100644
--- a/GScribo/variantpointer.h
+++ b/GScribo/variantpointer.h
@@ -7,10 +7,10 @@ template<typename T> class VariantPointer
{
public:
static inline QVariant toQVariant(T *pointer)
- { return QVariant::fromValue((void *)pointer); }
+ { return QVariant::fromValue(static_cast<void *>(pointer)); }
static inline T *fromQVariant(const QVariant& variant)
- { return (T *)variant.value<void *>(); }
+ { return static_cast<T *>(variant.value<void *>()); }
private:
VariantPointer() { }
diff --git a/GScribo/xml.cpp b/GScribo/xml.cpp
index 8446a07..23ac2b6 100644
--- a/GScribo/xml.cpp
+++ b/GScribo/xml.cpp
@@ -3,17 +3,17 @@
static const GraphicRegion::Data itemsData[] =
{
/* COLOR | NAME |
REGION | ZVALUE */
- { QColor::fromRgb(255, 0, 0, 80), "Line",
(int)GraphicRegion::Line, 2 },
- { QColor::fromRgb(0, 100, 0, 80), "TextRegion",
(int)GraphicRegion::Text, 1 },
- { QColor::fromRgb(0, 0, 255, 60), "VerticalSeparatorRegion",
(int)GraphicRegion::VerticalSeparator, 2 },
- { QColor::fromRgb(0, 0, 255, 60), "HorizontalSeparatorRegion",
(int)GraphicRegion::HorizontalSeparator, 2 },
- { QColor::fromRgb(0, 0, 128, 60), "WhitespaceSeparatorRegion",
(int)GraphicRegion::WhiteSpaceSeparator, 2 },
- { QColor::fromRgb(255, 120, 0, 60), "ImageRegion",
(int)GraphicRegion::Image, 1 },
- { QColor::fromRgb(43, 39, 128, 60), "NoiseRegion",
(int)GraphicRegion::Noise, 2 },
- { QColor::fromRgb(220, 246, 0, 60), "TableRegion",
(int)GraphicRegion::Table, 2 },
- { QColor::fromRgb(170, 0, 255, 60), "MathsRegion",
(int)GraphicRegion::Maths, 2 },
- { QColor::fromRgb(255, 0, 144, 60), "GraphicRegion",
(int)GraphicRegion::Graphic, 2 },
- { QColor::fromRgb(0, 204, 255, 60), "ChartRegion",
(int)GraphicRegion::Chart, 2 }
+ { QColor::fromRgb(255, 0, 0, 90), "Line",
(int)GraphicRegion::Line, 2 },
+ { QColor::fromRgb(0, 100, 0, 90), "TextRegion",
(int)GraphicRegion::Text, 1 },
+ { QColor::fromRgb(0, 0, 255, 90), "VerticalSeparatorRegion",
(int)GraphicRegion::VerticalSeparator, 2 },
+ { QColor::fromRgb(0, 0, 255, 90), "HorizontalSeparatorRegion",
(int)GraphicRegion::HorizontalSeparator, 2 },
+ { QColor::fromRgb(0, 0, 128, 90), "WhitespaceSeparatorRegion",
(int)GraphicRegion::WhiteSpaceSeparator, 2 },
+ { QColor::fromRgb(255, 120, 0, 90), "ImageRegion",
(int)GraphicRegion::Image, 1 },
+ { QColor::fromRgb(43, 39, 128, 90), "NoiseRegion",
(int)GraphicRegion::Noise, 2 },
+ { QColor::fromRgb(220, 246, 0, 90), "TableRegion",
(int)GraphicRegion::Table, 2 },
+ { QColor::fromRgb(170, 0, 255, 90), "MathsRegion",
(int)GraphicRegion::Maths, 2 },
+ { QColor::fromRgb(255, 0, 144, 90), "GraphicRegion",
(int)GraphicRegion::Graphic, 2 },
+ { QColor::fromRgb(0, 204, 255, 90), "ChartRegion",
(int)GraphicRegion::Chart, 2 }
};
Xml::Xml(const QString &filename)
@@ -25,6 +25,10 @@ void Xml::load(const QString &filename)
{
if(!filename.isEmpty())
{
+ // Reset graphic and tree items;
+ tItem = new QTreeWidgetItem;
+ gItem = new QGraphicsPolygonItem;
+
QFile xmlFile(filename);
xmlFile.open(QIODevice::ReadOnly);
@@ -34,10 +38,12 @@ void Xml::load(const QString &filename)
xmlFile.close();
QDomElement root = xml.documentElement();
- tItem.setText(0, root.tagName());
+ tItem->setText(0, root.tagName());
+ tItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&root));
root = root.firstChild().toElement();
- QTreeWidgetItem *parentTreeItem = init(root, &tItem);
+ QTreeWidgetItem *parentTreeItem = init(root, tItem);
+ parentTreeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&root));
// Run through the xml file structure by structure.
root = root.nextSibling().firstChild().toElement();
@@ -50,19 +56,22 @@ void Xml::load(const QString &filename)
QTreeWidgetItem *Xml::init(const QDomElement& root, QTreeWidgetItem *rootTreeItem)
{
QDomElement node = root;
- QString nodeText;
QTreeWidgetItem *parentTreeItem = new QTreeWidgetItem(rootTreeItem);
- parentTreeItem->setText(0, node.tagName());
+ parentTreeItem->setText(0, root.tagName());
+ parentTreeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&node));
+ QString nodeText;
QTreeWidgetItem *treeItem, *childTreeItem;
- node = node.firstChild().toElement();
// Run through "METADATA" node and subnodes.
+ node = root.firstChild().toElement();
while(!node.isNull())
{
treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
treeItem->setText(0, node.tagName());
+ // Store the xml node in the item.
+ treeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&node));
// Add widget item child with text content.
nodeText = node.text();
@@ -83,15 +92,18 @@ void Xml::processNode(const QDomElement& root, const
GraphicRegion::Data& data,
{
if(!root.isNull())
{
+ QDomElement node = root;
+
// Create corresponding tree item.
QTreeWidgetItem *parentTreeItem = fillWidgetItem(root.tagName(), rootTreeItem);
+ parentTreeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&node));
QTreeWidgetItem *treeItem;
QPolygon polygon;
QString sx, sy;
// Run through all points data.
- QDomElement node = root.firstChild().firstChild().toElement();
+ node = root.firstChild().firstChild().toElement();
while(!node.isNull())
{
sx = node.attribute("x", "null");
@@ -99,16 +111,18 @@ void Xml::processNode(const QDomElement& root, const
GraphicRegion::Data& data,
treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
treeItem->setText(0, node.tagName() + " = " + sx + ",
" + sy);
+ // Store the xml node in the item.
+ treeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&node));
polygon << QPoint(sx.toInt(), sy.toInt());
node = node.nextSibling().toElement();
}
// Create the graphical item from data structure.
- PolygonItem *polygonItem = new PolygonItem(polygon, &gItem);
+ PolygonItem *polygonItem = new PolygonItem(polygon, gItem);
polygonItem->loadData(data);
// Store tree object in the graphical object.
- polygonItem->setData(0,
VariantPointer<QTreeWidgetItem>::toQVariant(parentTreeItem));
+ polygonItem->setData(1,
VariantPointer<QTreeWidgetItem>::toQVariant(parentTreeItem));
if(data.region == GraphicRegion::Text)
processLineNode(root.firstChild().nextSiblingElement("Line"),
polygonItem, parentTreeItem->parent());
@@ -122,8 +136,11 @@ void Xml::processLineNode(const QDomElement& root, PolygonItem
*parentPolygonIte
{
if(!root.isNull())
{
+ QDomElement node = root;
+
// Create corresponding tree item.
QTreeWidgetItem *parentTreeItem = fillWidgetItem(root.tagName(), rootTreeItem);
+ parentTreeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&node));
QTreeWidgetItem *treeItem;
QPolygon polygon;
@@ -134,7 +151,7 @@ void Xml::processLineNode(const QDomElement& root, PolygonItem
*parentPolygonIte
int xMax = INT_MIN;
// Run through all points data.
- QDomElement node = root.firstChild().firstChild().toElement();
+ node = root.firstChild().firstChild().toElement();
while(!node.isNull())
{
sx = node.attribute("x", "null");
@@ -142,6 +159,8 @@ void Xml::processLineNode(const QDomElement& root, PolygonItem
*parentPolygonIte
treeItem = new QTreeWidgetItem(parentTreeItem, treeItem);
treeItem->setText(0, node.tagName() + " = " + sx + ",
" + sy);
+ // Store xml node attributes in the item.
+ treeItem->setData(0, Qt::UserRole,
VariantPointer<QDomElement>::toQVariant(&node));
x = sx.toInt();
y = sy.toInt();
@@ -160,7 +179,7 @@ void Xml::processLineNode(const QDomElement& root, PolygonItem
*parentPolygonIte
PolygonItem *polygonItem = new PolygonItem(polygon, parentPolygonItem);
polygonItem->loadData(itemsData[0]);
// Store tree object in the graphical object.
- polygonItem->setData(0,
VariantPointer<QTreeWidgetItem>::toQVariant(parentTreeItem));
+ polygonItem->setData(1,
VariantPointer<QTreeWidgetItem>::toQVariant(parentTreeItem));
// Get meanline and baseline.
processTypoNode(root, QPoint(xMin, xMax), polygonItem);
diff --git a/GScribo/xml.h b/GScribo/xml.h
index efd0511..d60abd6 100644
--- a/GScribo/xml.h
+++ b/GScribo/xml.h
@@ -31,15 +31,15 @@ class Xml :
void processLineNode(const QDomElement& root, PolygonItem *parentPolygonItem,
QTreeWidgetItem *rootTreeItem);
void processTypoNode(const QDomElement& root, const QPoint& xPoint,
PolygonItem *rootPolygonItem);
- QGraphicsPolygonItem gItem;
- QTreeWidgetItem tItem;
+ QGraphicsPolygonItem *gItem;
+ QTreeWidgetItem *tItem;
};
inline QTreeWidgetItem *Xml::treeItem()
-{ return &tItem; }
+{ return tItem; }
inline QGraphicsItem *Xml::graphicItem()
-{ return &gItem; }
+{ return gItem; }
inline QTreeWidgetItem *Xml::fillWidgetItem(const QString& tagName, QTreeWidgetItem
*rootTreeItem)
{
diff --git a/GScribo/xmlwidget.cpp b/GScribo/xmlwidget.cpp
index 8f021b4..b5299c1 100644
--- a/GScribo/xmlwidget.cpp
+++ b/GScribo/xmlwidget.cpp
@@ -16,4 +16,28 @@ XmlWidget::XmlWidget(QWidget *parent) :
hLayout->addWidget(&property);
setLayout(hLayout);
+
+ connect(&viewer, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this,
SLOT(fillProperty(QTreeWidgetItem*)));
+}
+
+void XmlWidget::fillProperty(QTreeWidgetItem *treeItem)
+{
+ property.clear();
+
+ // Get node from the tree item.
+ QDomElement *node =
VariantPointer<QDomElement>::fromQVariant(treeItem->data(0, Qt::UserRole));
+ QStringList values;
+
+ if(node->hasAttributes())
+ {
+ QDomNamedNodeMap attributes = node->attributes();
+
+ for(int i = 0; i < attributes.count(); i++)
+ {
+ values << attributes.item(i).toAttr().name() <<
attributes.item(i).toAttr().value();
+ property.addTopLevelItem(new QTreeWidgetItem(values));
+ values.clear();
+ }
+ }
+ property.resizeColumnToContents(0);
}
diff --git a/GScribo/xmlwidget.h b/GScribo/xmlwidget.h
index 9c01024..3f42db2 100644
--- a/GScribo/xmlwidget.h
+++ b/GScribo/xmlwidget.h
@@ -3,23 +3,39 @@
#include <QTreeWidget>
#include <QVBoxLayout>
+#include <QDomElement>
#include <QWidget>
#include <QLabel>
+#include "variantpointer.h"
+
class XmlWidget :
public QWidget
{
+ Q_OBJECT
+
public:
explicit XmlWidget(QWidget *parent = 0);
- inline void load(QTreeWidgetItem *treeItem);
+ inline void changeView(QTreeWidgetItem *treeItem);
private:
QTreeWidget viewer;
QTreeWidget property;
+
+ public slots:
+ void fillProperty(QTreeWidgetItem *treeItem);
+ inline void selectItem(QTreeWidgetItem *item);
+ inline void clearSelection();
};
-inline void XmlWidget::load(QTreeWidgetItem *treeItem)
-{ if(treeItem != 0) { viewer.reset(); viewer.addTopLevelItem(treeItem); } }
+inline void XmlWidget::changeView(QTreeWidgetItem *treeItem)
+{ viewer.takeTopLevelItem(0); viewer.reset(); if(treeItem != 0)
viewer.addTopLevelItem(treeItem); }
+
+inline void XmlWidget::selectItem(QTreeWidgetItem *item)
+{ viewer.setCurrentItem(item, 0); item->setExpanded(true); }
+
+inline void XmlWidget::clearSelection()
+{ viewer.reset(); property.clear(); }
#endif // XMLWIDGET_H
diff --git a/VariantPointer.h b/VariantPointer.h
deleted file mode 100644
index 907008b..0000000
--- a/VariantPointer.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef VARIANTPOINTER_H
-#define VARIANTPOINTER_H
-
-#include <QVariant>
-
-template<typename T> class VariantPointer
-{
- public:
- static inline QVariant toQVariant(T *pointer)
- { return QVariant::fromValue((void *)pointer); }
-
- static inline T *fromQVariant(const QVariant& variant)
- { return (T *)variant.value<void *>(); }
-
- private:
- VariantPointer() { }
-};
-
-#endif // VARIANTPOINTER_H
diff --git a/XmlParser/XmlParser.pro.user b/XmlParser/XmlParser.pro.user
index 210f7cf..dbad548 100644
--- a/XmlParser/XmlParser.pro.user
+++ b/XmlParser/XmlParser.pro.user
@@ -58,6 +58,7 @@
<value key="ProjectExplorer.BuildConfiguration.DisplayName"
type="QString">Debug</value>
<value key="QtVersionId" type="int">0</value>
<value key="ToolChain" type="int">0</value>
+ <value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">2</value>
</valuemap>
</data>
@@ -66,6 +67,7 @@
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName"
type="QString">Release</value>
<value key="QtVersionId" type="int">0</value>
+ <value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">0</value>
</valuemap>
</data>
@@ -73,12 +75,101 @@
<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-nWMvur3XMD,guid=76bb64f3869a9bc5873701850070df7f</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-QY4EVM</value>
+ <value type="QString">GNOME_KEYRING_PID=4135</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=4210</value>
+ <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-MKApXf4144/agent.4144</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:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmLUMYRW</value>
+ <value
type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359445059.579379-97716377</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>
+ <value type="QString">CONFIG+=debug</value>
+ </valuelist>
+ <value key="abstractProcess.command"
type="QString">/usr/bin/qmake-qt4</value>
+ <value key="abstractProcess.enabled"
type="bool">true</value>
+ <value key="abstractProcess.workingDirectory"
type="QString">/amd/nfs/volume1/home/stage/froger_a/qt/XmlParser</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-nWMvur3XMD,guid=76bb64f3869a9bc5873701850070df7f</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-QY4EVM</value>
+ <value type="QString">GNOME_KEYRING_PID=4135</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=4210</value>
+ <value
type="QString">SSH_AUTH_SOCK=/tmp/ssh-MKApXf4144/agent.4144</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:8:8:8:8:8:8:8:8:8</value>
+ <value type="QString">XAUTHORITY=/tmp/.gdmLUMYRW</value>
+ <value
type="QString">XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/</value>
+ <value
type="QString">XDG_SESSION_COOKIE=b24883b9b4dbfb80ea83575b00000a11-1359445059.579379-97716377</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>
--
1.7.2.5