Added new base class for EmuFront dialogs, connected database class to
[emufront] / src / dialogs / dbobjectdialog.cpp
1 #include <QtGui>
2 #include "dbobjectdialog.h"
3
4 DbObjectDialog::DbObjectDialog(QWidget *parent)
5     : EmuFrontDialog(parent)
6 {
7     editButton = new QPushButton(tr("&Edit")); 
8     addButton = new QPushButton(tr("&Add"));
9     deleteButton = new QPushButton(tr("&Delete"));
10     objectList = new QListView();
11     buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Vertical);
12     buttonBox->addButton(editButton, QDialogButtonBox::ActionRole);
13     buttonBox->addButton(addButton, QDialogButtonBox::ActionRole);
14     buttonBox->addButton(deleteButton, QDialogButtonBox::ActionRole);
15     // nameDialog will be created on request
16     
17     connectSignals();
18     layout();
19
20
21 void DbObjectDialog::connectSignals()
22 {
23     connect(buttonBox, SIGNAL(accepted()), this, SLOT(close()));
24     connect(objectList, SIGNAL(clicked(const QModelIndex &)), 
25                 this, SLOT(listObjectClicked(const QModelIndex &)));
26     connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked()));
27     connect(addButton, SIGNAL(clicked()), this, SLOT(addButtonClicked()));
28     connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteButtonClicked()));
29 }
30
31 void DbObjectDialog::addButtonClicked()
32 {
33     disableSelection();
34     addObject();
35 }
36
37 void DbObjectDialog::editButtonClicked()
38 {
39     disableSelection();
40 }
41
42 void DbObjectDialog::deleteButtonClicked()
43 {
44     disableSelection();
45 }
46
47 void DbObjectDialog::layout()
48 {
49     QHBoxLayout *mainLayout = new QHBoxLayout;
50     mainLayout->addWidget(objectList);
51     mainLayout->addWidget(buttonBox);
52     setLayout(mainLayout);
53 }
54
55 void DbObjectDialog::listObjectClicked(const QModelIndex &index)
56 {
57     setButtonsEnabled(index.isValid());
58     if(!index.isValid()) 
59         return;
60 }
61
62 void DbObjectDialog::setButtonsEnabled(bool enabled)
63 {
64     editButton->setEnabled(enabled);
65     deleteButton->setEnabled(enabled);
66 }
67
68 void DbObjectDialog::disableSelection()
69 {
70     setButtonsEnabled(false);
71 }