/*******************************************************************/
FamilyShoppingManagerMainWindow::FamilyShoppingManagerMainWindow(QWidget *parent)
- : QMainWindow(parent), activityView(NULL), showCheckedItemsAction(NULL),
- endShoppingAction(NULL), goShoppingAction(NULL), editMenu(NULL)
+ : QMainWindow(parent), activityView(NULL), editMenu(NULL),
+ showCheckedItemsAction(NULL), goShoppingAction(NULL), endShoppingAction(NULL)
{
aboutAction = new QAction(tr("&About"), this);
connect(aboutAction, SIGNAL(triggered()), this, SLOT(showAbout()));
setCentralWidget(activityView);
editMenu = new QMenu(tr("&Edit"), this);
- editMenu->addAction(tr("Add category"));
- editMenu->addAction(tr("Remove category"));
- editMenu->addAction(tr("Add item"));
- editMenu->addAction(tr("Remove item"));
+ addCategoryAction = new QAction(tr("Add category"), this);
+ connect(addCategoryAction, SIGNAL(triggered()),
+ this, SLOT(insertRow()));
+ editMenu->addAction(addCategoryAction);
+ removeCategoryAction = new QAction(tr("Remove category"), this);
+ connect(removeCategoryAction, SIGNAL(triggered()),
+ this, SLOT(removeRow()));
+ editMenu->addAction(removeCategoryAction);
+ addItemAction = new QAction(tr("Add item"), this);
+ connect(addItemAction, SIGNAL(triggered()),
+ this, SLOT(insertRow()));
+ editMenu->addAction(addItemAction);
+ removeItemAction = new QAction(tr("Remove item"), this);
+ connect(removeItemAction, SIGNAL(triggered()),
+ this, SLOT(removeRow()));
+ editMenu->addAction(removeItemAction);
menuBar()->addMenu(editMenu);
goShoppingAction = new QAction(tr("Go shopping!"), this);
text += "Licence: GPL";
QMessageBox::about(this,tr("About"), text);
}
+
+/*******************************************************************/
+void FamilyShoppingManagerMainWindow::insertChild()
+{
+ QModelIndex index = ((ListManagerView*) activityView)->
+ selectionModel()->currentIndex();
+ QAbstractItemModel *model = ((ListManagerView*) activityView)->model();
+
+ if (model->columnCount(index) == 0) {
+ if (!model->insertColumn(0, index))
+ return;
+ }
+
+ if (!model->insertRow(0, index))
+ return;
+
+ for (int column = 0; column < model->columnCount(index); ++column)
+ {
+ QModelIndex child = model->index(0, column, index);
+ model->setData(child, QVariant("[No data]"), Qt::EditRole);
+ if (!model->headerData(column, Qt::Horizontal).isValid())
+ model->setHeaderData(column, Qt::Horizontal,
+ QVariant("[No header]"), Qt::EditRole);
+ }
+
+ ((ListManagerView*) activityView)->selectionModel()->
+ setCurrentIndex(model->index(0, 0, index),
+ QItemSelectionModel::ClearAndSelect);
+ ((ListManagerView*) activityView)->updateActions();
+ }
+
+/*******************************************************************/
+/*
+bool FamilyShoppingManagerMainWindow::insertColumn(const QModelIndex &parent)
+{
+ QAbstractItemModel *model = ((ListManagerView*) activityView)->model();
+ int column = ((ListManagerView*) activityView)->selectionModel()->
+ currentIndex().column();
+
+ // Insert a column in the parent item.
+ bool changed = model->insertColumn(column + 1, parent);
+ if (changed)
+ model->setHeaderData(column + 1, Qt::Horizontal,
+ QVariant("[No header]"), Qt::EditRole);
+
+ ((ListManagerView*) activityView)->updateActions();
+
+ return changed;
+}
+*/
+
+/*******************************************************************/
+void FamilyShoppingManagerMainWindow::insertRow()
+{
+ QModelIndex index = ((ListManagerView*) activityView)->
+ selectionModel()->currentIndex();
+ QAbstractItemModel *model = ((ListManagerView*) activityView)->model();
+
+ if (!model->insertRow(index.row()+1, index.parent()))
+ return;
+
+ ((ListManagerView*) activityView)->updateActions();
+
+ for(int column = 0; column < model->columnCount(index.parent()); ++column)
+ {
+ QModelIndex child = model->index(index.row()+1, column, index.parent());
+ model->setData(child, QVariant("New Item"), Qt::EditRole);
+ }
+}
+
+/*******************************************************************/
+/*
+bool FamilyShoppingManagerMainWindow::removeColumn(const QModelIndex &parent)
+{
+ QAbstractItemModel *model = ((ListManagerView*) activityView)->model();
+ int column = ((ListManagerView*) activityView)->selectionModel()->
+ currentIndex().column();
+
+ // Insert columns in each child of the parent item.
+ bool changed = model->removeColumn(column, parent);
+
+ if (!parent.isValid() && changed)
+ ((ListManagerView*) activityView)->updateActions();
+
+ return changed;
+}
+ */
+
+/*******************************************************************/
+void FamilyShoppingManagerMainWindow::removeRow()
+{
+ QModelIndex index = ((ListManagerView*) activityView)->
+ selectionModel()->currentIndex();
+ QAbstractItemModel *model = ((ListManagerView*) activityView)->model();
+ if (model->removeRow(index.row(), index.parent()))
+ ((ListManagerView*) activityView)->updateActions();
+}