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 QVariant vName = tblModel->data(selModel->currentIndex());
67 QString name = vName.toString();
69 QString msg = tr("Do you want to delete") + name + "?";
70 int yn = QMessageBox::question(this, "Confirm", msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
71 if (yn == QMessageBox::Yes)
73 qDebug() << "Deleting item...";
77 void DbObjectDialog::layout()
79 QHBoxLayout *mainLayout = new QHBoxLayout;
80 mainLayout->addWidget(objectList);
81 mainLayout->addWidget(buttonBox);
82 setLayout(mainLayout);
85 void DbObjectDialog::listObjectClicked(const QModelIndex &index)
89 qDebug() << "Row " << x->row() << ", column " << x->column() << " clicked.";
90 setButtonsEnabled(index.isValid());
95 void DbObjectDialog::setButtonsEnabled(bool enabled)
97 editButton->setEnabled(enabled);
98 deleteButton->setEnabled(enabled);
101 void DbObjectDialog::disableSelection()
103 setButtonsEnabled(false);
106 void DbObjectDialog::updateData()