git-svn-id: file:///svnroot/family-shop-mgr@33 26eb2498-383b-47a6-be48-5d6f36779e85
authoronil <u.irigoyen@gmail.com>
Fri, 28 May 2010 22:57:20 +0000 (22:57 +0000)
committeronil <u.irigoyen@gmail.com>
Fri, 28 May 2010 22:57:20 +0000 (22:57 +0000)
code/family-shop-mgr/ShoppingTreeItem.cpp
code/family-shop-mgr/ShoppingTreeItem.h
code/family-shop-mgr/ShoppingTreeModel.cpp
code/family-shop-mgr/ShoppingTreeModel.h
code/family-shop-mgr/family-shop-mgr.pro.user

index ae21ccc..6e473e7 100644 (file)
@@ -24,7 +24,7 @@
 #include "ShoppingTreeItem.h"\r
 \r
 \r
-DomItem::DomItem(QDomNode &node, int row, DomItem *parent)\r
+ShoppingTreeItem::ShoppingTreeItem(QDomNode &node, int row, ShoppingTreeItem *parent)\r
 {\r
     domNode = node;\r
     rowNumber = row;\r
@@ -32,27 +32,27 @@ DomItem::DomItem(QDomNode &node, int row, DomItem *parent)
 }\r
 \r
 /*******************************************************************/\r
-DomItem::~DomItem()\r
+ShoppingTreeItem::~ShoppingTreeItem()\r
 {\r
-    QHash<int,DomItem*>::iterator it;\r
+    QHash<int,ShoppingTreeItem*>::iterator it;\r
     for (it = childItems.begin(); it != childItems.end(); ++it)\r
         delete it.value();\r
 }\r
 \r
 /*******************************************************************/\r
-QDomNode DomItem::node() const\r
+QDomNode ShoppingTreeItem::node() const\r
 {\r
     return domNode;\r
 }\r
 \r
 /*******************************************************************/\r
-DomItem *DomItem::parent()\r
+ShoppingTreeItem *ShoppingTreeItem::parent()\r
 {\r
     return parentItem;\r
 }\r
 \r
 /*******************************************************************/\r
-DomItem *DomItem::child(int i)\r
+ShoppingTreeItem *ShoppingTreeItem::child(int i)\r
 {\r
     if (childItems.contains(i))\r
         return childItems[i];\r
@@ -71,7 +71,7 @@ DomItem *DomItem::child(int i)
     }\r
     if (i >= 0 && i < childElementsList.count()) {\r
         childNode = childElementsList.at(i);\r
-        DomItem *childItem = new DomItem(childNode, i, this);\r
+        ShoppingTreeItem *childItem = new ShoppingTreeItem(childNode, i, this);\r
         childItems[i] = childItem;\r
         return childItem;\r
     }\r
@@ -79,7 +79,7 @@ DomItem *DomItem::child(int i)
 }\r
 \r
 /*******************************************************************/\r
-int DomItem::row()\r
+int ShoppingTreeItem::row()\r
 {\r
     return rowNumber;\r
 }\r
index 214db12..d0a14a4 100644 (file)
 #ifndef SHOPPINGTREEITEM_H\r
 #define SHOPPINGTREEITEM_H\r
 \r
-#include <QList>\r
-#include <QVariant>\r
-#include <QVector>\r
+#include <QDomNode>\r
+#include <QHash>\r
 \r
-#include "ShoppingTreeModel.h"\r
-\r
-class ShoppingTreeItem : public QObject\r
+class ShoppingTreeItem\r
 {\r
-Q_OBJECT\r
-\r
 public:\r
-\r
-    enum ItemType\r
-    {\r
-        Category = 0,\r
-        Item = 1,\r
-\r
-        NotDefined = -1\r
-    };\r
-\r
-    ShoppingTreeItem(const QVector<QVariant> &data, ShoppingTreeItem *parent = 0);\r
+    ShoppingTreeItem(QDomNode &node, int row, ShoppingTreeItem *parent = 0);\r
     ~ShoppingTreeItem();\r
-\r
-    ShoppingTreeItem *child(int number);\r
-    int childCount() const;\r
-    int columnCount() const;\r
-    QVariant data(int column) const;\r
-    bool insertChildren(int position, int count, int columns,\r
-                        ShoppingTreeModel* model = 0);\r
-    bool insertColumns(int position, int columns);\r
+    ShoppingTreeItem *child(int i);\r
     ShoppingTreeItem *parent();\r
-    bool removeChildren(int position, int count);\r
-    bool removeColumns(int position, int columns);\r
-    int childNumber() const;\r
-    bool setData(int column, const QVariant &value);\r
-    bool setItemType(const ItemType type);\r
-    ItemType getItemType() const;\r
-\r
-signals:\r
-    void childItemSet(ShoppingTreeItem *item);\r
-    void dataChanged(int column);\r
-    void childRemoved(ShoppingTreeItem *item);\r
+    QDomNode node() const;\r
+    int row();\r
 \r
 private:\r
-    QList<ShoppingTreeItem*> childItems;\r
-    QVector<QVariant> itemData;\r
+    QDomNode domNode;\r
+    QHash<int,ShoppingTreeItem*> childItems;\r
     ShoppingTreeItem *parentItem;\r
-\r
-    ItemType m_itemType;\r
+    int rowNumber;\r
 };\r
 \r
 #endif // SHOPPINGTREEITEM_H\r
index f79b957..ee00a89 100644 (file)
 #include "ShoppingTreeItem.h"\r
 #include "ShoppingTreeModel.h"\r
 \r
-DomModel::DomModel(QDomDocument document, QObject *parent)\r
-    : QAbstractItemModel(parent), domDocument(document),\r
-    rootItemNode(domDocument.firstChildElement("shoppingList"))\r
+ShoppingTreeModel::ShoppingTreeModel(QString fileName, QObject *parent)\r
+    : QAbstractItemModel(parent),m_fileName(fileName)\r
 {\r
-    rootItem = new DomItem(rootItemNode, 0);\r
+    connect(this, SIGNAL(documentChanged()), this, SLOT(save()));\r
+    QFile file(m_fileName);\r
+    if (!file.open(QIODevice::ReadOnly))\r
+        return;\r
+    if (!domDocument.setContent(&file)) {\r
+        file.close();\r
+        return;\r
+    }\r
+    file.close();\r
+\r
+    rootItemNode = domDocument.firstChildElement("shoppingList");\r
+    rootItem = new ShoppingTreeItem(rootItemNode, 0);\r
 }\r
 \r
 /*******************************************************************/\r
-DomModel::~DomModel()\r
+ShoppingTreeModel::~ShoppingTreeModel()\r
 {\r
     delete rootItem;\r
 }\r
 \r
 /*******************************************************************/\r
-int DomModel::columnCount(const QModelIndex &/*parent*/) const\r
+int ShoppingTreeModel::columnCount(const QModelIndex &/*parent*/) const\r
 {\r
     return 4;\r
 }\r
 \r
 /*******************************************************************/\r
-QVariant DomModel::data(const QModelIndex &index, int role) const\r
+QVariant ShoppingTreeModel::data(const QModelIndex &index, int role) const\r
 {\r
     if (!index.isValid())\r
         return QVariant();\r
@@ -52,7 +62,7 @@ QVariant DomModel::data(const QModelIndex &index, int role) const
     if (role != Qt::DisplayRole)\r
         return QVariant();\r
 \r
-    DomItem *item = static_cast<DomItem*>(index.internalPointer());\r
+    ShoppingTreeItem *item = static_cast<ShoppingTreeItem*>(index.internalPointer());\r
 \r
     QDomNode node = item->node();\r
 \r
@@ -83,7 +93,7 @@ QVariant DomModel::data(const QModelIndex &index, int role) const
 }\r
 \r
 /*******************************************************************/\r
-Qt::ItemFlags DomModel::flags(const QModelIndex &index) const\r
+Qt::ItemFlags ShoppingTreeModel::flags(const QModelIndex &index) const\r
 {\r
     if (!index.isValid())\r
         return 0;\r
@@ -92,7 +102,7 @@ Qt::ItemFlags DomModel::flags(const QModelIndex &index) const
 }\r
 \r
 /*******************************************************************/\r
-QVariant DomModel::headerData(int section, Qt::Orientation orientation,\r
+QVariant ShoppingTreeModel::headerData(int section, Qt::Orientation orientation,\r
                               int role) const\r
 {\r
     if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {\r
@@ -114,20 +124,20 @@ QVariant DomModel::headerData(int section, Qt::Orientation orientation,
 }\r
 \r
 /*******************************************************************/\r
-QModelIndex DomModel::index(int row, int column, const QModelIndex &parent)\r
+QModelIndex ShoppingTreeModel::index(int row, int column, const QModelIndex &parent)\r
             const\r
 {\r
     if (!hasIndex(row, column, parent))\r
         return QModelIndex();\r
 \r
-    DomItem *parentItem;\r
+    ShoppingTreeItem *parentItem;\r
 \r
     if (!parent.isValid())\r
         parentItem = rootItem;\r
     else\r
-        parentItem = static_cast<DomItem*>(parent.internalPointer());\r
+        parentItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
 \r
-    DomItem *childItem = parentItem->child(row);\r
+    ShoppingTreeItem *childItem = parentItem->child(row);\r
     if (childItem)\r
         return createIndex(row, column, childItem);\r
     else\r
@@ -135,13 +145,13 @@ QModelIndex DomModel::index(int row, int column, const QModelIndex &parent)
 }\r
 \r
 /*******************************************************************/\r
-QModelIndex DomModel::parent(const QModelIndex &child) const\r
+QModelIndex ShoppingTreeModel::parent(const QModelIndex &child) const\r
 {\r
     if (!child.isValid())\r
         return QModelIndex();\r
 \r
-    DomItem *childItem = static_cast<DomItem*>(child.internalPointer());\r
-    DomItem *parentItem = childItem->parent();\r
+    ShoppingTreeItem *childItem = static_cast<ShoppingTreeItem*>(child.internalPointer());\r
+    ShoppingTreeItem *parentItem = childItem->parent();\r
 \r
     if (!parentItem || parentItem == rootItem)\r
         return QModelIndex();\r
@@ -150,17 +160,17 @@ QModelIndex DomModel::parent(const QModelIndex &child) const
 }\r
 \r
 /*******************************************************************/\r
-int DomModel::rowCount(const QModelIndex &parent) const\r
+int ShoppingTreeModel::rowCount(const QModelIndex &parent) const\r
 {\r
     if (parent.column() > 0)\r
         return 0;\r
 \r
-    DomItem *parentItem;\r
+    ShoppingTreeItem *parentItem;\r
 \r
     if (!parent.isValid())\r
         parentItem = rootItem;\r
     else\r
-        parentItem = static_cast<DomItem*>(parent.internalPointer());\r
+        parentItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
 \r
     int childCount = 0;\r
     for(QDomElement childElement = parentItem->node().firstChildElement();\r
@@ -171,3 +181,120 @@ int DomModel::rowCount(const QModelIndex &parent) const
     }\r
     return childCount;\r
 }\r
+\r
+/*******************************************************************/\r
+bool ShoppingTreeModel::insertRows(int row, int count, const QModelIndex &parent, ItemType type)\r
+{\r
+    ShoppingTreeItem *parentItem;\r
+\r
+    if (!parent.isValid())\r
+        parentItem = rootItem;\r
+    else\r
+        parentItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
+\r
+    for(int i = 0; i < count; i++)\r
+    {\r
+        QDomElement newElement;\r
+        QDomElement titleElement;\r
+        titleElement.setTagName("title");\r
+        if(type == category)\r
+        {\r
+            newElement.setTagName("category");\r
+            titleElement.setNodeValue(tr("new category"));\r
+            newElement.appendChild(titleElement);\r
+            parentItem->node().insertAfter(newElement, parentItem->child(row + i)->node());\r
+        }\r
+        else if(type == item)\r
+        {\r
+            newElement.setTagName("item");\r
+            titleElement.setNodeValue(tr("new item"));\r
+            newElement.appendChild(titleElement);\r
+            QDomElement quantityElement;\r
+            quantityElement.setTagName("quantity");\r
+            newElement.appendChild(quantityElement);\r
+            QDomElement storeElement;\r
+            storeElement.setTagName("store");\r
+            newElement.appendChild(storeElement);\r
+            QDomElement checkedElement;\r
+            checkedElement.setTagName("checked");\r
+            checkedElement.setNodeValue("0");\r
+            newElement.appendChild(checkedElement);\r
+            QDomElement lastModifiedElement;\r
+            lastModifiedElement.setTagName("lastModified");\r
+            lastModifiedElement.setNodeValue(QDateTime::currentDateTime().toString("dd/MM/yyyy-hh:mm:ss"));\r
+            newElement.appendChild(lastModifiedElement);\r
+            parentItem->node().insertAfter(newElement, parentItem->child(row + i)->node());\r
+        }\r
+    }\r
+    emit documentChanged();\r
+}\r
+\r
+/*******************************************************************/\r
+ShoppingTreeModel::removeRows(int row, int count, const QModelIndex &parent)\r
+{\r
+    ShoppingTreeItem *parentItem;\r
+\r
+    if (!parent.isValid())\r
+        parentItem = rootItem;\r
+    else\r
+        parentItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
+\r
+    for(int i = 0; i < count; i++)\r
+    {\r
+        parentItem->node().removeChild(parentItem->child(i)->node());\r
+    }\r
+    emit documentChanged();\r
+}\r
+\r
+/*******************************************************************/\r
+ShoppingTreeModel::addCategory(QModelIndex &index)\r
+{\r
+    ShoppingTreeItem *selectedItem;\r
+\r
+    if (!parent.isValid())\r
+        selectedItem = rootItem;\r
+    else\r
+        selectedItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
+\r
+    insertRows(selectedItem->row(), 1, parent(index), category);\r
+}\r
+\r
+/*******************************************************************/\r
+ShoppingTreeModel::addItem(QModelIndex &index)\r
+{\r
+    ShoppingTreeItem *selectedItem;\r
+\r
+    if (!parent.isValid())\r
+        selectedItem = rootItem;\r
+    else\r
+        selectedItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
+\r
+    insertRows(selectedItem->row(), 1, parent(index), item);\r
+}\r
+\r
+/*******************************************************************/\r
+ShoppingTreeModel::removeElement(QModelIndex &index)\r
+{\r
+    ShoppingTreeItem *selectedItem;\r
+\r
+    if (!parent.isValid())\r
+        selectedItem = rootItem;\r
+    else\r
+        selectedItem = static_cast<ShoppingTreeItem*>(parent.internalPointer());\r
+\r
+    removeRows(selectedItem->row(), 1, parent(index));\r
+}\r
+\r
+/*******************************************************************/\r
+ShoppingTreeModel::save()\r
+{\r
+    QFile file(m_fileName);\r
+    file.remove();\r
+    if (!file.open(QIODevice::WriteOnly))\r
+        return;\r
+    if (!file.write(domDocument.toString(4).toUtf8())) {\r
+        file.close();\r
+        return;\r
+    }\r
+    file.close();\r
+}\r
index 92ef5c7..cb283b0 100644 (file)
 #include <QModelIndex>\r
 #include <QVariant>\r
 \r
-class DomItem;\r
+class ShoppingTreeItem;\r
 \r
-class DomModel : public QAbstractItemModel\r
+enum ItemType{\r
+    item,\r
+    category\r
+};\r
+\r
+class ShoppingTreeModel : public QAbstractItemModel\r
 {\r
     Q_OBJECT\r
 \r
 public:\r
-    DomModel(QDomDocument document, QObject *parent = 0);\r
-    ~DomModel();\r
+    ShoppingTreeModel(QString fileName, QObject *parent = 0);\r
+    ~ShoppingTreeModel();\r
 \r
     QVariant data(const QModelIndex &index, int role) const;\r
     Qt::ItemFlags flags(const QModelIndex &index) const;\r
@@ -46,11 +51,25 @@ public:
     QModelIndex parent(const QModelIndex &child) const;\r
     int rowCount(const QModelIndex &parent = QModelIndex()) const;\r
     int columnCount(const QModelIndex &parent = QModelIndex()) const;\r
+    bool insertRows(int row, int count,\r
+                    const QModelIndex & parent = QModelIndex(),\r
+                    ItemType type = item);\r
+    bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());\r
+\r
+public slots:\r
+    void addCategory(QModelIndex & index);\r
+    void addItem(QModelIndex & index);\r
+    void removeElement(QModelIndex & index);\r
+    void save();\r
+\r
+signals:\r
+    void documentChanged();\r
 \r
 private:\r
+    QString m_fileName;\r
     QDomDocument domDocument;\r
     QDomNode rootItemNode;\r
-    DomItem *rootItem;\r
+    ShoppingTreeItem *rootItem;\r
 };\r
 \r
 #endif // SHOPPINGTREEMODEL_H\r
index eab2836..6b78c17 100644 (file)
   <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-YZNnnsfbiV,guid=cb79688c9fb6e8c85ff790f94bb8fbb8</value>
+    <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-eKukEAYkED,guid=329729b2f92e20a20feb0a184bfff74d</value>
     <value type="QString">DESKTOP_SESSION=default</value>
     <value type="QString">DISPLAY=:0.0</value>
     <value type="QString">DM_CONTROL=/var/run/xdmctl</value>
-    <value type="QString">GPG_AGENT_INFO=/tmp/gpg-27YKzu/S.gpg-agent:1914:1</value>
+    <value type="QString">GPG_AGENT_INFO=/tmp/gpg-qWEYAr/S.gpg-agent:1575:1</value>
     <value type="QString">GS_LIB=/home/onil/.fonts</value>
     <value type="QString">GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/onil/.gtkrc-2.0:/home/onil/.gtkrc-2.0-kde4:/home/onil/.kde/share/config/gtkrc-2.0</value>
     <value type="QString">GTK_RC_FILES=/etc/gtk/gtkrc:/home/onil/.gtkrc::/home/onil/.kde/share/config/gtkrc</value>
     <value type="QString">KDE_SESSION_UID=1000</value>
     <value type="QString">KDE_SESSION_VERSION=4</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=onil</value>
     <value type="QString">PATH=/usr/bin:/home/onil/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
     <value type="QString">PWD=/home/onil/Documents</value>
     <value type="QString">QTDIR=/usr/share/qt4</value>
     <value type="QString">QT_PLUGIN_PATH=/home/onil/.kde/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
-    <value type="QString">SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2004,unix/onil-netbook:/tmp/.ICE-unix/2004</value>
+    <value type="QString">SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/1718,unix/onil-netbook:/tmp/.ICE-unix/1718</value>
     <value type="QString">SHELL=/bin/bash</value>
     <value type="QString">SHLVL=0</value>
-    <value type="QString">SSH_AGENT_PID=1913</value>
-    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-HoJAfw1868/agent.1868</value>
+    <value type="QString">SSH_AGENT_PID=1574</value>
+    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kcUDTw1523/agent.1523</value>
     <value type="QString">USER=onil</value>
     <value type="QString">WINDOWPATH=7</value>
     <value type="QString">XCURSOR_THEME=oxy-white</value>
     <value type="QString">XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share</value>
-    <value type="QString">XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1270414262.693559-1541288722</value>
+    <value type="QString">XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1275066187.875603-169541383</value>
     <value type="QString">XDM_MANAGED=method=classic</value>
    </valuelist>
    <valuelist key="abstractProcess.arguments" type="QVariantList">
   <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-YZNnnsfbiV,guid=cb79688c9fb6e8c85ff790f94bb8fbb8</value>
+    <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-eKukEAYkED,guid=329729b2f92e20a20feb0a184bfff74d</value>
     <value type="QString">DESKTOP_SESSION=default</value>
     <value type="QString">DISPLAY=:0.0</value>
     <value type="QString">DM_CONTROL=/var/run/xdmctl</value>
-    <value type="QString">GPG_AGENT_INFO=/tmp/gpg-27YKzu/S.gpg-agent:1914:1</value>
+    <value type="QString">GPG_AGENT_INFO=/tmp/gpg-qWEYAr/S.gpg-agent:1575:1</value>
     <value type="QString">GS_LIB=/home/onil/.fonts</value>
     <value type="QString">GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/onil/.gtkrc-2.0:/home/onil/.gtkrc-2.0-kde4:/home/onil/.kde/share/config/gtkrc-2.0</value>
     <value type="QString">GTK_RC_FILES=/etc/gtk/gtkrc:/home/onil/.gtkrc::/home/onil/.kde/share/config/gtkrc</value>
     <value type="QString">KDE_SESSION_UID=1000</value>
     <value type="QString">KDE_SESSION_VERSION=4</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=onil</value>
     <value type="QString">PATH=/usr/bin:/home/onil/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
     <value type="QString">PWD=/home/onil/Documents</value>
     <value type="QString">QTDIR=/usr/share/qt4</value>
     <value type="QString">QT_PLUGIN_PATH=/home/onil/.kde/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
-    <value type="QString">SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2004,unix/onil-netbook:/tmp/.ICE-unix/2004</value>
+    <value type="QString">SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/1718,unix/onil-netbook:/tmp/.ICE-unix/1718</value>
     <value type="QString">SHELL=/bin/bash</value>
     <value type="QString">SHLVL=0</value>
-    <value type="QString">SSH_AGENT_PID=1913</value>
-    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-HoJAfw1868/agent.1868</value>
+    <value type="QString">SSH_AGENT_PID=1574</value>
+    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-kcUDTw1523/agent.1523</value>
     <value type="QString">USER=onil</value>
     <value type="QString">WINDOWPATH=7</value>
     <value type="QString">XCURSOR_THEME=oxy-white</value>
     <value type="QString">XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share</value>
-    <value type="QString">XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1270414262.693559-1541288722</value>
+    <value type="QString">XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1275066187.875603-169541383</value>
     <value type="QString">XDM_MANAGED=method=classic</value>
    </valuelist>
    <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>