2 #include "dbobjectdialog.h"
3 #include "../db/databasemanager.h"
5 DbObjectDialog::DbObjectDialog(QWidget *parent)
6 : EmuFrontDialog(parent)
9 dbManager = new DatabaseManager(this);
10 editButton = new QPushButton(tr("&Edit"));
11 editButton->setEnabled(false);
12 addButton = new QPushButton(tr("&Add"));
13 deleteButton = new QPushButton(tr("&Delete"));
14 deleteButton->setEnabled(false);
15 objectList = new QTableView(this);
16 buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Vertical);
17 buttonBox->addButton(editButton, QDialogButtonBox::ActionRole);
18 buttonBox->addButton(addButton, QDialogButtonBox::ActionRole);
19 buttonBox->addButton(deleteButton, QDialogButtonBox::ActionRole);
20 // nameDialog will be created on request
26 DbObjectDialog::~DbObjectDialog()
31 void DbObjectDialog::connectSignals()
33 connect(buttonBox, SIGNAL(accepted()), this, SLOT(close()));
34 connect(objectList, SIGNAL(clicked(const QModelIndex &)),
35 this, SLOT(listObjectClicked(const QModelIndex &)));
36 //connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked()));
37 connect(addButton, SIGNAL(clicked()), this, SLOT(addButtonClicked()));
38 connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteButtonClicked()));
39 //connect(nameDialog, SIGNAL(accepted()), this, SLOT(updateList()));
40 connect(nameDialog, SIGNAL(dataObjectUpdated()), this, SLOT(updateData()));
43 void DbObjectDialog::updateList() const
45 // fetch items from database (virtual function for this)
46 // update the item list
49 void DbObjectDialog::addButtonClicked()
55 void DbObjectDialog::editButtonClicked()
60 void DbObjectDialog::deleteButtonClicked()
62 QItemSelectionModel *selModel = objectList->selectionModel();
63 if (!selModel->hasSelection()) return;
65 QAbstractItemModel *tblModel = objectList->model();
66 QModelIndex index = selModel->currentIndex();
67 QVariant vName = tblModel->data(index);
68 QString name = vName.toString();
71 QString msg = tr("Do you want to delete") + name + "?";
72 int yn = QMessageBox::question(this, "Confirm", msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
73 if (yn == QMessageBox::Yes)
75 qDebug() << "Deleting item..." << name << ".";
80 void DbObjectDialog::layout()
82 QHBoxLayout *mainLayout = new QHBoxLayout;
83 mainLayout->addWidget(objectList);
84 mainLayout->addWidget(buttonBox);
85 setLayout(mainLayout);
88 void DbObjectDialog::listObjectClicked(const QModelIndex &index)
92 qDebug() << "Row " << x->row() << ", column " << x->column() << " clicked.";
93 setButtonsEnabled(index.isValid());
98 void DbObjectDialog::setButtonsEnabled(bool enabled)
100 editButton->setEnabled(enabled);
101 deleteButton->setEnabled(enabled);
104 void DbObjectDialog::disableSelection()
106 setButtonsEnabled(false);
109 void DbObjectDialog::updateData()