2 #include <QSqlTableModel>
3 #include "dbobjectdialog.h"
4 #include "../db/databasemanager.h"
6 DbObjectDialog::DbObjectDialog(QWidget *parent)
7 : EmuFrontDialog(parent)
11 //dbManager = new DatabaseManager(this);
12 editButton = new QPushButton(tr("&Edit"));
13 editButton->setEnabled(false);
14 addButton = new QPushButton(tr("&Add"));
15 deleteButton = new QPushButton(tr("&Delete"));
16 deleteButton->setEnabled(false);
17 objectList = new QTableView(this);
18 buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Vertical);
19 buttonBox->addButton(editButton, QDialogButtonBox::ActionRole);
20 buttonBox->addButton(addButton, QDialogButtonBox::ActionRole);
21 buttonBox->addButton(deleteButton, QDialogButtonBox::ActionRole);
22 // nameDialog will be created on request
28 DbObjectDialog::~DbObjectDialog()
33 void DbObjectDialog::connectSignals()
35 connect(buttonBox, SIGNAL(accepted()), this, SLOT(close()));
36 connect(objectList, SIGNAL(clicked(const QModelIndex &)),
37 this, SLOT(listObjectClicked(const QModelIndex &)));
38 connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked()));
39 connect(addButton, SIGNAL(clicked()), this, SLOT(addButtonClicked()));
40 connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteButtonClicked()));
41 //connect(nameDialog, SIGNAL(accepted()), this, SLOT(updateList()));
42 connect(nameDialog, SIGNAL(dataObjectUpdated()), this, SLOT(updateData()));
45 void DbObjectDialog::updateList() const
47 if (!dbManager) return;
48 dbManager->resetModel();
51 void DbObjectDialog::addButtonClicked()
57 void DbObjectDialog::editButtonClicked()
63 void DbObjectDialog::deleteButtonClicked()
65 QItemSelectionModel *selModel = objectList->selectionModel();
66 if (!selModel->hasSelection()) return;
68 QAbstractItemModel *tblModel = objectList->model();
69 QModelIndex index = selModel->currentIndex();
70 QVariant vName = tblModel->data(index);
71 QString name = vName.toString();
74 QString msg = tr("Do you want to delete") + name + "?";
75 int yn = QMessageBox::question(this, "Confirm", msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
76 if (yn == QMessageBox::Yes)
78 qDebug() << "Deleting item..." << name << ".";
83 void DbObjectDialog::layout()
85 QHBoxLayout *mainLayout = new QHBoxLayout;
86 mainLayout->addWidget(objectList);
87 mainLayout->addWidget(buttonBox);
88 setLayout(mainLayout);
91 void DbObjectDialog::listObjectClicked(const QModelIndex &index)
95 qDebug() << "Row " << x->row() << ", column " << x->column() << " clicked.";
96 setButtonsEnabled(index.isValid());
101 void DbObjectDialog::setButtonsEnabled(bool enabled)
103 editButton->setEnabled(enabled);
104 deleteButton->setEnabled(enabled);
107 void DbObjectDialog::disableSelection()
109 setButtonsEnabled(false);
112 void DbObjectDialog::updateData()
114 qDebug() << "DbObjectDialog::updateData()";
118 void DbObjectDialog::activateNameDialog() const
120 if (!nameDialog) return;
123 nameDialog->activateWindow();