Makefile
*.bak
ShoppingList.xml
+ui_*.h
#include "FamilyShopManagerPC.h"
#include "ui_FamilyShopManagerPC.h"
+#include <QInputDialog>
+
FamilyShopManagerPC::FamilyShopManagerPC(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::FamilyShopManagerPC)
{
ui->setupUi(this);
+
+ connect(ui->actionEdit_shopping_list, SIGNAL(triggered()), this, SLOT(showEditMode()));
+ connect(ui->actionGo_shopping, SIGNAL(triggered()), this, SLOT(showShoppingMode()));
+
+ connect(ui->actionAdd_category, SIGNAL(triggered()), this, SLOT(addCategory()));
+ connect(ui->actionAdd_item, SIGNAL(triggered()), this, SLOT(addItem()));
+ connect(ui->actionRemove, SIGNAL(triggered()), this, SLOT(remove()));
+
}
FamilyShopManagerPC::~FamilyShopManagerPC()
break;
}
}
+
+void FamilyShopManagerPC::setModel(QAbstractItemModel *model)
+{
+ ui->listTreeView->setModel(model);
+}
+
+void FamilyShopManagerPC::showEditMode()
+{
+
+}
+
+void FamilyShopManagerPC::showShoppingMode()
+{
+
+}
+
+void FamilyShopManagerPC::addCategory()
+{
+ bool ok = false;
+ QString name = QInputDialog::getText(this, tr("Enter category name"), tr("Category name"),
+ QLineEdit::Normal, "", &ok);
+
+ if(ok)
+ {
+ emit addCategory(ui->listTreeView->currentIndex(), name);
+ }
+}
+
+void FamilyShopManagerPC::addItem()
+{
+ bool ok = false;
+ QString name = QInputDialog::getText(this, tr("Enter item name"), tr("Item name"),
+ QLineEdit::Normal, "", &ok);
+
+ if(ok)
+ {
+ emit addItem(ui->listTreeView->currentIndex(), name);
+ }
+}
+
+void FamilyShopManagerPC::remove()
+{
+ emit removeSignal(ui->listTreeView->currentIndex());
+}
#define FAMILYSHOPMANAGERPC_H
#include <QMainWindow>
+#include <QAbstractItemModel>
namespace Ui {
class FamilyShopManagerPC;
FamilyShopManagerPC(QWidget *parent = 0);
~FamilyShopManagerPC();
+ void setModel(QAbstractItemModel* model);
+
+public slots:
+ void showEditMode();
+ void showShoppingMode();
+
+ void addCategory();
+ void addItem();
+ void remove();
+
+signals:
+ void addCategory(QModelIndex index, QString name);
+ void addItem(QModelIndex index, QString name);
+ void removeSignal(QModelIndex index);
+
protected:
void changeEvent(QEvent *e);
+<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
+ <author>Unai IRIGOYEN</author>
<class>FamilyShopManagerPC</class>
- <widget class="QMainWindow" name="FamilyShopManagerPC" >
- <property name="geometry" >
+ <widget class="QMainWindow" name="FamilyShopManagerPC">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<height>400</height>
</rect>
</property>
- <property name="windowTitle" >
- <string>FamilyShopManagerPC</string>
+ <property name="windowTitle">
+ <string>Family shopping manager</string>
</property>
- <widget class="QMenuBar" name="menuBar" />
- <widget class="QToolBar" name="mainToolBar" />
- <widget class="QWidget" name="centralWidget" />
- <widget class="QStatusBar" name="statusBar" />
+ <property name="locale">
+ <locale language="English" country="UnitedStates"/>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>586</width>
+ <height>327</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QTreeView" name="listTreeView"/>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>18</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionEdit_shopping_list"/>
+ <addaction name="actionGo_shopping"/>
+ <addaction name="actionAdd_category"/>
+ <addaction name="actionAdd_item"/>
+ <addaction name="actionRemove"/>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ <action name="actionEdit_shopping_list">
+ <property name="text">
+ <string>Edit shopping list</string>
+ </property>
+ </action>
+ <action name="actionGo_shopping">
+ <property name="text">
+ <string>Go shopping!</string>
+ </property>
+ </action>
+ <action name="actionAdd_category">
+ <property name="text">
+ <string>Add category</string>
+ </property>
+ </action>
+ <action name="actionAdd_item">
+ <property name="text">
+ <string>Add item</string>
+ </property>
+ </action>
+ <action name="actionRemove">
+ <property name="text">
+ <string>Remove</string>
+ </property>
+ </action>
</widget>
- <layoutDefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
+ <layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
<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-fGFreQMQCi,guid=40982632b0a35018e38badbd4c4c0958</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-zBm3MG/S.gpg-agent:1465: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">HOME=/home/onil</value>
+ <value type="QString">KDE_FULL_SESSION=true</value>
+ <value type="QString">KDE_MULTIHEAD=false</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">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/1603,unix/onil-netbook:/tmp/.ICE-unix/1603</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=0</value>
+ <value type="QString">SSH_AGENT_PID=1464</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-vgudGK1419/agent.1419</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=4cb4c39594fcf9ea2256393c4c2e6053-1280051542.996827-333265015</value>
+ <value type="QString">XDM_MANAGED=method=classic</value>
+ </valuelist>
+ <valuelist key="abstractProcess.arguments" type="QVariantList">
+ <value type="QString">/home/onil/Documents/Programmation/FamilyShoppingManager/family-shop-mgr/code/family-shop-mgr/family-shop-mgr.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">/home/onil/Documents/Programmation/FamilyShoppingManager/family-shop-mgr/code/family-shop-mgr</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-fGFreQMQCi,guid=40982632b0a35018e38badbd4c4c0958</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-zBm3MG/S.gpg-agent:1465: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">HOME=/home/onil</value>
+ <value type="QString">KDE_FULL_SESSION=true</value>
+ <value type="QString">KDE_MULTIHEAD=false</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">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/1603,unix/onil-netbook:/tmp/.ICE-unix/1603</value>
+ <value type="QString">SHELL=/bin/bash</value>
+ <value type="QString">SHLVL=0</value>
+ <value type="QString">SSH_AGENT_PID=1464</value>
+ <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-vgudGK1419/agent.1419</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=4cb4c39594fcf9ea2256393c4c2e6053-1280051542.996827-333265015</value>
+ <value type="QString">XDM_MANAGED=method=classic</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">/home/onil/Documents/Programmation/FamilyShoppingManager/family-shop-mgr/code/family-shop-mgr</value>
</valuemap>
</data>
<data>
#include <QtGui/QApplication>
#include "FamilyShopManagerPC.h"
+#include "ShoppingTreeModel.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
FamilyShopManagerPC w;
+ ShoppingTreeModel model("ShoppingList.xml");
+ w.setModel(&model);
+
+ QObject::connect(&w, SIGNAL(addCategory(QModelIndex, QString)), &model, SLOT(addCategory(QModelIndex&,QString)));
+ QObject::connect(&w, SIGNAL(addItem(QModelIndex,QString)), &model, SLOT(addItem(QModelIndex&,QString)));
+ QObject::connect(&w, SIGNAL(removeSignal(QModelIndex)), &model, SLOT(removeElement(QModelIndex&)));
+
w.show();
return a.exec();
}