From 5395293ce1c95c407139f8e6c87343f600307277 Mon Sep 17 00:00:00 2001 From: onil Date: Sat, 13 Mar 2010 22:23:43 +0000 Subject: [PATCH] git-svn-id: file:///svnroot/family-shop-mgr@26 26eb2498-383b-47a6-be48-5d6f36779e85 --- .../FamilyShoppingManagerMainWindow.cpp | 24 +++++---- code/family-shop-mgr/ShoppingTreeModel.cpp | 52 +++++++++++++------- code/family-shop-mgr/family-shop-mgr.pro.user | 24 ++++----- 3 files changed, 61 insertions(+), 39 deletions(-) diff --git a/code/family-shop-mgr/FamilyShoppingManagerMainWindow.cpp b/code/family-shop-mgr/FamilyShoppingManagerMainWindow.cpp index 6e56f7f..6407261 100644 --- a/code/family-shop-mgr/FamilyShoppingManagerMainWindow.cpp +++ b/code/family-shop-mgr/FamilyShoppingManagerMainWindow.cpp @@ -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(); } diff --git a/code/family-shop-mgr/ShoppingTreeModel.cpp b/code/family-shop-mgr/ShoppingTreeModel.cpp index d304c41..2bdde16 100644 --- a/code/family-shop-mgr/ShoppingTreeModel.cpp +++ b/code/family-shop-mgr/ShoppingTreeModel.cpp @@ -97,6 +97,12 @@ QAbstractItemModel(parent), m_document("ShoppingList") child = child.nextSiblingElement("item"); } + + connect(rootItem, SIGNAL(childInserted(ShoppingTreeItem*)), this, + SLOT(registerInsertedChild(ShoppingTreeItem*))); + connect(rootItem, SIGNAL(childRemoved(ShoppingTreeItem*)), this, + SLOT(deleteRemovedChild(ShoppingTreeItem*))); + QHashIterator i(m_domElementForItem); while(i.hasNext()) { @@ -122,13 +128,11 @@ bool ShoppingTreeModel::addCategory(QString name) if (!this->insertRow(parent.row()+1, parent)) return false; - for(int column = 0; column < this->columnCount(parent); ++column) - { - QModelIndex child = this->index(parent.row()+1, column, parent); - ShoppingTreeItem* item = this->getItem(child); - item->setItemType(ShoppingTreeItem::Category); - this->setData(child, QVariant(name), Qt::EditRole); - } + int column = 0; + QModelIndex child = this->index(parent.row()+1, column, parent); + ShoppingTreeItem* item = this->getItem(child); + item->setItemType(ShoppingTreeItem::Category); + this->setData(child, QVariant(name), Qt::EditRole); return true; } @@ -156,13 +160,12 @@ bool ShoppingTreeModel::addItem(QString name, int position, if (!this->insertRow(position, parent)) return false; - for(int column = 0; column < this->columnCount(parent); ++column) - { - QModelIndex child = this->index(parent.row()+1, column, parent); - ShoppingTreeItem* item = this->getItem(child); - item->setItemType(ShoppingTreeItem::Item); - this->setData(child, QVariant(name), Qt::EditRole); - } + int column = 0; + QModelIndex child = this->index(parent.row()+1, column, parent); + ShoppingTreeItem* item = this->getItem(child); + item->setItemType(ShoppingTreeItem::Item); + this->setData(child, QVariant(name), Qt::EditRole); + return true; } @@ -310,7 +313,10 @@ int ShoppingTreeModel::rowCount(const QModelIndex &parent) const /*******************************************************************/ int ShoppingTreeModel::columnCount(const QModelIndex &parent) const { - return rootItem->columnCount(); + if(parent.isValid()) + return getItem(parent)->columnCount(); + else + return rootItem->columnCount(); } /*******************************************************************/ @@ -471,8 +477,8 @@ bool ShoppingTreeModel::updateDomElement(ShoppingTreeItem *item, int column) if(element.isNull()) return false; - bool success; - switch(column)/*******************************************************************/ + bool success = false; + switch(column) { case 0: { @@ -514,6 +520,18 @@ bool ShoppingTreeModel::updateDomElement(ShoppingTreeItem *item, int column) success = false; } + QDomElement oldDateElement = element.firstChildElement("lastModified"); + if(!oldDateElement.isNull()) + { + QDomElement newDateElement = m_document.createElement("lastModified"); + + QDomText newDateText = m_document.createTextNode( + QDateTime::currentDateTime().toString("dd/MM/yyyy-hh:mm:ss")); + newDateElement.appendChild(newDateText); + + element.replaceChild(newDateElement, oldDateElement); + } + updateXmlFile(); return success; diff --git a/code/family-shop-mgr/family-shop-mgr.pro.user b/code/family-shop-mgr/family-shop-mgr.pro.user index 0eb46bd..3406cd4 100644 --- a/code/family-shop-mgr/family-shop-mgr.pro.user +++ b/code/family-shop-mgr/family-shop-mgr.pro.user @@ -97,11 +97,11 @@ Debug - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-q1EKrknBIg,guid=8a525aab18f7fc1a86808b054b97539c + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iqFHRyPqvm,guid=241d12b3d6d809e067ef51364b9b7445 DESKTOP_SESSION=default DISPLAY=:0.0 DM_CONTROL=/var/run/xdmctl - GPG_AGENT_INFO=/tmp/gpg-7ScX2l/S.gpg-agent:1982:1 + GPG_AGENT_INFO=/tmp/gpg-LITeFz/S.gpg-agent:1975:1 GS_LIB=/home/onil/.fonts 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 GTK_RC_FILES=/etc/gtk/gtkrc:/home/onil/.gtkrc::/home/onil/.kde/share/config/gtkrc @@ -117,16 +117,16 @@ PWD=/home/onil/Documents QTDIR=/usr/share/qt4 QT_PLUGIN_PATH=/home/onil/.kde/lib/kde4/plugins/:/usr/lib/kde4/plugins/ - SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2071,unix/onil-netbook:/tmp/.ICE-unix/2071 + SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2064,unix/onil-netbook:/tmp/.ICE-unix/2064 SHELL=/bin/bash SHLVL=0 - SSH_AGENT_PID=1981 - SSH_AUTH_SOCK=/tmp/ssh-Lrqsxa1931/agent.1931 + SSH_AGENT_PID=1974 + SSH_AUTH_SOCK=/tmp/ssh-eGIPio1924/agent.1924 USER=onil WINDOWPATH=7 XCURSOR_THEME=oxy-white XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share - XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1268208539.486626-183142450 + XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1268479043.860018-29421785 XDM_MANAGED=method=classic @@ -147,11 +147,11 @@ Debug - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-q1EKrknBIg,guid=8a525aab18f7fc1a86808b054b97539c + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-iqFHRyPqvm,guid=241d12b3d6d809e067ef51364b9b7445 DESKTOP_SESSION=default DISPLAY=:0.0 DM_CONTROL=/var/run/xdmctl - GPG_AGENT_INFO=/tmp/gpg-7ScX2l/S.gpg-agent:1982:1 + GPG_AGENT_INFO=/tmp/gpg-LITeFz/S.gpg-agent:1975:1 GS_LIB=/home/onil/.fonts 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 GTK_RC_FILES=/etc/gtk/gtkrc:/home/onil/.gtkrc::/home/onil/.kde/share/config/gtkrc @@ -167,16 +167,16 @@ PWD=/home/onil/Documents QTDIR=/usr/share/qt4 QT_PLUGIN_PATH=/home/onil/.kde/lib/kde4/plugins/:/usr/lib/kde4/plugins/ - SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2071,unix/onil-netbook:/tmp/.ICE-unix/2071 + SESSION_MANAGER=local/onil-netbook:@/tmp/.ICE-unix/2064,unix/onil-netbook:/tmp/.ICE-unix/2064 SHELL=/bin/bash SHLVL=0 - SSH_AGENT_PID=1981 - SSH_AUTH_SOCK=/tmp/ssh-Lrqsxa1931/agent.1931 + SSH_AGENT_PID=1974 + SSH_AUTH_SOCK=/tmp/ssh-eGIPio1924/agent.1924 USER=onil WINDOWPATH=7 XCURSOR_THEME=oxy-white XDG_DATA_DIRS=/usr/share:/usr/share:/usr/local/share - XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1268208539.486626-183142450 + XDG_SESSION_COOKIE=67465ad3dd74e5003d0b02474b126985-1268479043.860018-29421785 XDM_MANAGED=method=classic false -- 1.7.9.5