enum
{
RFID_ID = 0,
RFID_EPC = 1,
RFID_Name = 2,
};
{
Q_OBJECT
public:
RfidTagForm
(int id,
QWidget* parent
= 0);
private slots:
void addTag();
void deleteTag();
private:
[...]
};
enum
{
RFID_ID = 0,
RFID_EPC = 1,
RFID_Name = 2,
};
class RfidTagForm : public QDialog
{
Q_OBJECT
public:
RfidTagForm(int id, QWidget* parent = 0);
private slots:
void addTag();
void deleteTag();
private:
QSqlTableModel* mTableModel;
QDataWidgetMapper* mMapper;
QLabel* mEPCLabel;
QLabel* mNameLabel;
QLineEdit* mEPCEdit;
QLineEdit* mNameEdit;
QPushButton* mFirstButton;
QPushButton* mPreviousButton;
QPushButton* mNextButton;
QPushButton* mLastButton;
QPushButton* mAddButton;
QPushButton* mDeleteButton;
[...]
};
To copy to clipboard, switch view to plain text mode
{
[...]
mTableModel->setTable("rfidtags");
mTableModel->setSort(RFID_ID, Qt::AscendingOrder);
mTableModel->select();
mMapper->setModel(mTableModel);
mMapper->addMapping(mEPCEdit, RFID_EPC);
mMapper->addMapping(mNameEdit, RFID_Name);
[...]
if (id != -1)
{
for (int row = 0; row < mTableModel->rowCount(); ++row)
{
if (record.value(RFID_ID).toInt() == id)
{
mMapper->setCurrentIndex(row);
}
}
}
else
{
mMapper->toFirst();
}
connect(mFirstButton, SIGNAL(clicked()), mMapper, SLOT(toFirst()));
connect(mPreviousButton, SIGNAL(clicked()), mMapper, SLOT(toPrevious)));
connect(mNextButton, SIGNAL(clicked()), mMapper, SLOT(toNext()));
connect(mLastButton, SIGNAL(clicked()), mMapper, SLOT(toLast()));
connect(mAddButton, SIGNAL(clicked()), this, SLOT(addTag()));
connect(mDeleteButton, SIGNAL(clicked()), this, SLOT(deleteTag()));
[...]
// set up the UI stuff...
}
void RfidTagForm::addTag()
{
int row = mMapper->currentIndex();
mMapper->submit();
mTableModel->insertRow(row);
mMapper->setCurrentIndex(row);
mEPCEdit->clear();
mNameEdit->clear();
}
void RfidTagForm::deleteTag()
{
int row = mMapper->currentIndex();
mTableModel->removeRow(row);
mMapper->submit();
mMapper->setCurrentIndex(qMin(row, mTableModel->rowCount() - 1));
}
RfidTagForm::RfidTagForm(int id, QObject* parent) : QDialog(parent)
{
mEPCEdit = new QLineEdit;
[...]
mTableModel = new QSqlTableModel(this);
mTableModel->setTable("rfidtags");
mTableModel->setSort(RFID_ID, Qt::AscendingOrder);
mTableModel->select();
mMapper = new QDataWidgetMapper(this);
mMapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
mMapper->setModel(mTableModel);
mMapper->addMapping(mEPCEdit, RFID_EPC);
mMapper->addMapping(mNameEdit, RFID_Name);
[...]
if (id != -1)
{
for (int row = 0; row < mTableModel->rowCount(); ++row)
{
QSqlRecord record = mTableModel->record(row);
if (record.value(RFID_ID).toInt() == id)
{
mMapper->setCurrentIndex(row);
}
}
}
else
{
mMapper->toFirst();
}
connect(mFirstButton, SIGNAL(clicked()), mMapper, SLOT(toFirst()));
connect(mPreviousButton, SIGNAL(clicked()), mMapper, SLOT(toPrevious)));
connect(mNextButton, SIGNAL(clicked()), mMapper, SLOT(toNext()));
connect(mLastButton, SIGNAL(clicked()), mMapper, SLOT(toLast()));
connect(mAddButton, SIGNAL(clicked()), this, SLOT(addTag()));
connect(mDeleteButton, SIGNAL(clicked()), this, SLOT(deleteTag()));
[...]
// set up the UI stuff...
}
void RfidTagForm::addTag()
{
int row = mMapper->currentIndex();
mMapper->submit();
mTableModel->insertRow(row);
mMapper->setCurrentIndex(row);
mEPCEdit->clear();
mNameEdit->clear();
}
void RfidTagForm::deleteTag()
{
int row = mMapper->currentIndex();
mTableModel->removeRow(row);
mMapper->submit();
mMapper->setCurrentIndex(qMin(row, mTableModel->rowCount() - 1));
}
To copy to clipboard, switch view to plain text mode
Bookmarks