git-svn-id: file:///svnroot/family-shop-mgr@26 26eb2498-383b-47a6-be48-5d6f36779e85
authoronil <u.irigoyen@gmail.com>
Sat, 13 Mar 2010 22:23:43 +0000 (22:23 +0000)
committeronil <u.irigoyen@gmail.com>
Sat, 13 Mar 2010 22:23:43 +0000 (22:23 +0000)
code/family-shop-mgr/FamilyShoppingManagerMainWindow.cpp
code/family-shop-mgr/ShoppingTreeModel.cpp
code/family-shop-mgr/family-shop-mgr.pro.user

index 6e56f7f..6407261 100644 (file)
@@ -57,26 +57,28 @@ void FamilyShoppingManagerMainWindow::showListManager()
 
     delete activityView;
     activityView = new ListManagerView("ShoppingList.xml", this);
-    setCentralWidget(activityView);
 
 //    editMenu = new QMenu(tr("&Edit"), this);
     addCategoryAction = new QAction(tr("Add category"), this);
     connect(addCategoryAction, SIGNAL(triggered()),
             this, SLOT(addCategory()));
 //    editMenu->addAction(addCategoryAction);
-//    removeCategoryAction = new QAction(tr("Remove category"), this);
-//    connect(removeCategoryAction, SIGNAL(triggered()),
-//            this, SLOT(removeRow()));
+    removeCategoryAction = new QAction(tr("Remove category"), this);
+    connect(removeCategoryAction, SIGNAL(triggered()),
+            this, SLOT(removeCategoryOrItem()));
 //    editMenu->addAction(removeCategoryAction);
-//    addItemAction = new QAction(tr("Add item"), this);
-//    connect(addItemAction, SIGNAL(triggered()),
-//            this, SLOT(insertRow()));
+    addItemAction = new QAction(tr("Add item"), this);
+    connect(addItemAction, SIGNAL(triggered()),
+            this, SLOT(addItem()));
 //    editMenu->addAction(addItemAction);
-//    removeItemAction = new QAction(tr("Remove item"), this);
-//    connect(removeItemAction, SIGNAL(triggered()),
-//            this, SLOT(removeRow()));
+    removeItemAction = new QAction(tr("Remove item"), this);
+    connect(removeItemAction, SIGNAL(triggered()),
+            this, SLOT(removeCategoryOrItem()));
 //    editMenu->addAction(removeItemAction);
     menuBar()->addAction(addCategoryAction);
+    activityView->addAction(removeCategoryAction);
+    activityView->addAction(addItemAction);
+    activityView->addAction(removeItemAction);
 
     goShoppingAction = new QAction(tr("Go shopping!"), this);
     connect(goShoppingAction, SIGNAL(triggered()),
@@ -84,6 +86,8 @@ void FamilyShoppingManagerMainWindow::showListManager()
     menuBar()->addAction(goShoppingAction);
 
     menuBar()->addAction(aboutAction);
+
+    setCentralWidget(activityView);
     update();
 }
 
index d304c41..2bdde16 100644 (file)
@@ -97,6 +97,12 @@ QAbstractItemModel(parent), m_document("ShoppingList")
         child = child.nextSiblingElement("item");\r
     }\r
 \r
+\r
+    connect(rootItem, SIGNAL(childInserted(ShoppingTreeItem*)), this,\r
+            SLOT(registerInsertedChild(ShoppingTreeItem*)));\r
+    connect(rootItem, SIGNAL(childRemoved(ShoppingTreeItem*)), this,\r
+            SLOT(deleteRemovedChild(ShoppingTreeItem*)));\r
+\r
     QHashIterator<ShoppingTreeItem*,QDomElement> i(m_domElementForItem);\r
     while(i.hasNext())\r
     {\r
@@ -122,13 +128,11 @@ bool ShoppingTreeModel::addCategory(QString name)
     if (!this->insertRow(parent.row()+1, parent))\r
         return false;\r
 \r
-    for(int column = 0; column < this->columnCount(parent); ++column)\r
-    {\r
-        QModelIndex child = this->index(parent.row()+1, column, parent);\r
-        ShoppingTreeItem* item = this->getItem(child);\r
-        item->setItemType(ShoppingTreeItem::Category);\r
-        this->setData(child, QVariant(name), Qt::EditRole);\r
-    }\r
+    int column = 0;\r
+    QModelIndex child = this->index(parent.row()+1, column, parent);\r
+    ShoppingTreeItem* item = this->getItem(child);\r
+    item->setItemType(ShoppingTreeItem::Category);\r
+    this->setData(child, QVariant(name), Qt::EditRole);\r
     return true;\r
 }\r
 \r
@@ -156,13 +160,12 @@ bool ShoppingTreeModel::addItem(QString name, int position,
     if (!this->insertRow(position, parent))\r
         return false;\r
 \r
-    for(int column = 0; column < this->columnCount(parent); ++column)\r
-    {\r
-        QModelIndex child = this->index(parent.row()+1, column, parent);\r
-        ShoppingTreeItem* item = this->getItem(child);\r
-        item->setItemType(ShoppingTreeItem::Item);\r
-        this->setData(child, QVariant(name), Qt::EditRole);\r
-    }\r
+    int column = 0;\r
+    QModelIndex child = this->index(parent.row()+1, column, parent);\r
+    ShoppingTreeItem* item = this->getItem(child);\r
+    item->setItemType(ShoppingTreeItem::Item);\r
+    this->setData(child, QVariant(name), Qt::EditRole);\r
+\r
     return true;\r
 }\r
 \r
@@ -310,7 +313,10 @@ int ShoppingTreeModel::rowCount(const QModelIndex &parent) const
 /*******************************************************************/\r
 int ShoppingTreeModel::columnCount(const QModelIndex &parent) const\r
 {\r
-    return rootItem->columnCount();\r
+    if(parent.isValid())\r
+        return getItem(parent)->columnCount();\r
+    else\r
+        return rootItem->columnCount();\r
 }\r
 \r
 /*******************************************************************/\r
@@ -471,8 +477,8 @@ bool ShoppingTreeModel::updateDomElement(ShoppingTreeItem *item, int column)
     if(element.isNull())\r
      return false;\r
 \r
-    bool success;\r
-    switch(column)/*******************************************************************/\r
+    bool success = false;\r
+    switch(column)\r
     {\r
         case 0:\r
         {\r
@@ -514,6 +520,18 @@ bool ShoppingTreeModel::updateDomElement(ShoppingTreeItem *item, int column)
             success = false;\r
     }\r
 \r
+    QDomElement oldDateElement = element.firstChildElement("lastModified");\r
+    if(!oldDateElement.isNull())\r
+    {\r
+        QDomElement newDateElement = m_document.createElement("lastModified");\r
+\r
+        QDomText newDateText = m_document.createTextNode(\r
+                QDateTime::currentDateTime().toString("dd/MM/yyyy-hh:mm:ss"));\r
+        newDateElement.appendChild(newDateText);\r
+\r
+        element.replaceChild(newDateElement, oldDateElement);\r
+    }\r
+\r
     updateXmlFile();\r
 \r
     return success;\r
index 0eb46bd..3406cd4 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-q1EKrknBIg,guid=8a525aab18f7fc1a86808b054b97539c</value>
+    <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iqFHRyPqvm,guid=241d12b3d6d809e067ef51364b9b7445</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-7ScX2l/S.gpg-agent:1982:1</value>
+    <value type="QString">GPG_AGENT_INFO=/tmp/gpg-LITeFz/S.gpg-agent:1975: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">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/2071,unix/onil-netbook:/tmp/.ICE-unix/2071</value>
+    <value type="QString">SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2064,unix/onil-netbook:/tmp/.ICE-unix/2064</value>
     <value type="QString">SHELL=/bin/bash</value>
     <value type="QString">SHLVL=0</value>
-    <value type="QString">SSH_AGENT_PID=1981</value>
-    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-Lrqsxa1931/agent.1931</value>
+    <value type="QString">SSH_AGENT_PID=1974</value>
+    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-eGIPio1924/agent.1924</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-1268208539.486626-183142450</value>
+    <value type="QString">XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1268479043.860018-29421785</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-q1EKrknBIg,guid=8a525aab18f7fc1a86808b054b97539c</value>
+    <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iqFHRyPqvm,guid=241d12b3d6d809e067ef51364b9b7445</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-7ScX2l/S.gpg-agent:1982:1</value>
+    <value type="QString">GPG_AGENT_INFO=/tmp/gpg-LITeFz/S.gpg-agent:1975: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">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/2071,unix/onil-netbook:/tmp/.ICE-unix/2071</value>
+    <value type="QString">SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2064,unix/onil-netbook:/tmp/.ICE-unix/2064</value>
     <value type="QString">SHELL=/bin/bash</value>
     <value type="QString">SHLVL=0</value>
-    <value type="QString">SSH_AGENT_PID=1981</value>
-    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-Lrqsxa1931/agent.1931</value>
+    <value type="QString">SSH_AGENT_PID=1974</value>
+    <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-eGIPio1924/agent.1924</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-1268208539.486626-183142450</value>
+    <value type="QString">XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1268479043.860018-29421785</value>
     <value type="QString">XDM_MANAGED=method=classic</value>
    </valuelist>
    <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>