#include "materials.h"
#include "ui_materials.h"
Materials
::Materials(QWidget *parent
) : QDialog(parent
), ui
(new Ui
::Materials) {
ui->setupUi(this);
ldb.setDatabaseName("/home/design/Desktop/Builder/Stock.db");
if(!ldb.open())
{
qDebug()<<("Failed To Open the Database");
QMessageBox::critical(this,
"Cannot open database",
"Unable to establish a database connection.\n\n" }
model->setTable("materials");
model->setHeaderData(0, Qt::Horizontal, tr("id"));
model->setHeaderData(1, Qt::Horizontal, tr("System"));
model->setHeaderData(2, Qt::Horizontal, tr("Part Number"));
model->setHeaderData(3, Qt::Horizontal, tr("Product"));
model->setHeaderData(4, Qt::Horizontal, tr("Finish"));
model->setHeaderData(5, Qt::Horizontal, tr("Cost"));
model->setHeaderData(6, Qt::Horizontal, tr("Qty."));
model->setHeaderData(7, Qt::Horizontal, tr("Supplier"));
model->select();
while(model->canFetchMore())
{
model->fetchMore();
}
qDebug() <<(model->rowCount());
ui
->lineEditCount
->setText
(QString::number(model
->rowCount
()));
systemFilter->setSourceModel(model);
systemFilter->setFilterKeyColumn(1);
partNumberFilter->setSourceModel(systemFilter);
partNumberFilter->setFilterKeyColumn(2);
productFilter->setSourceModel(partNumberFilter);
productFilter->setFilterKeyColumn(3);
supplierFilter->setSourceModel(productFilter);
supplierFilter->setFilterKeyColumn(7);
tableView->setModel(supplierFilter);
tableView->setSortingEnabled(true);
tableView->setColumnHidden(0,true);
tableView->horizontalHeader()->setFixedHeight(20);
tableView
->horizontalHeader
()->setFont
(QFont("Arial"));
tableView->horizontalHeader()->setStyleSheet("QHeaderView {font-weight: bold; font-size: 10pt; color: #000;} ");
tableView->sortByColumn(1,Qt::AscendingOrder);
tableView->resizeColumnsToContents();
connect(ui
->lineEditSystem,
SIGNAL(textEdited
(QString)), systemFilter,
SLOT(setFilterRegExp
(QString)));
connect(ui
->lineEditPartNumber,
SIGNAL(textEdited
(QString)), partNumberFilter,
SLOT(setFilterRegExp
(QString)));
connect(ui
->lineEditProduct,
SIGNAL(textEdited
(QString)), productFilter,
SLOT(setFilterRegExp
(QString)));
connect(ui
->lineEditSupplier,
SIGNAL(textEdited
(QString)), supplierFilter,
SLOT(setFilterRegExp
(QString)));
}
Materials::~Materials()
{
delete ui;
}
void Materials::on_addRecordButton_clicked()
{
const int row = model->rowCount();
model->insertRows(row, 1);
ui->tableView->scrollToBottom();
}
void Materials::on_updateRecordButton_clicked()
{
model->submitAll();
while(model->canFetchMore())
{
model->fetchMore();
}
}
void Materials::on_cancelChangesButton_clicked()
{
model->revertAll();
ui->tableView->scrollToTop();
}
void Materials::on_deleteRecordButton_clicked()
{
msgBox.
setIconPixmap(QPixmap(":/images/icon.png"));
msgBox.setWindowTitle("Delete Record - Warning");
msgBox.setText("Do not press the Delete button until you\n"
"have highlighted the row you wish to Delete.\n\n"
"Do You Really Want To Delete This Record?");
deleteButton->setStyleSheet("QPushButton:hover{background-color:#FFCCCC;border:1px solid #000;color:#000;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}");
deleteButton->setFocusPolicy(Qt::NoFocus);
deleteButton->setMinimumWidth(100);
deleteButton->setMaximumHeight(23);
cancelButton->setStyleSheet("QPushButton:hover{background-color:#E0FFFF;border:1px solid #000;color:#000;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}");
cancelButton->setFocusPolicy(Qt::NoFocus);
cancelButton->setMinimumWidth(100);
cancelButton->setMaximumHeight(23);
msgBox.exec();
if (msgBox.clickedButton() == deleteButton)
{
model->removeRow(ui->tableView->currentIndex().row());
model->submitAll();
}else if (msgBox.clickedButton() == cancelButton)
{
}
}
//void Materials::on_informationButton_clicked()
//{
// InfoDialog * dialog = new InfoDialog(this);
// dialog->exec();
//}
void Materials::on_exitButton_clicked()
{
this->close();
}
#include "materials.h"
#include "ui_materials.h"
Materials::Materials(QWidget *parent)
: QDialog(parent), ui(new Ui::Materials)
{
ui->setupUi(this);
ldb = QSqlDatabase::addDatabase("QSQLITE");
ldb.setDatabaseName("/home/design/Desktop/Builder/Stock.db");
if(!ldb.open())
{
qDebug()<<("Failed To Open the Database");
QMessageBox::critical(this, "Cannot open database","Unable to establish a database connection.\n\n"
"Click Cancel to exit.",QMessageBox::Cancel);
}
QSqlTableModel *model= new QSqlTableModel(this);
model->setTable("materials");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setHeaderData(0, Qt::Horizontal, tr("id"));
model->setHeaderData(1, Qt::Horizontal, tr("System"));
model->setHeaderData(2, Qt::Horizontal, tr("Part Number"));
model->setHeaderData(3, Qt::Horizontal, tr("Product"));
model->setHeaderData(4, Qt::Horizontal, tr("Finish"));
model->setHeaderData(5, Qt::Horizontal, tr("Cost"));
model->setHeaderData(6, Qt::Horizontal, tr("Qty."));
model->setHeaderData(7, Qt::Horizontal, tr("Supplier"));
model->select();
while(model->canFetchMore())
{
model->fetchMore();
}
qDebug() <<(model->rowCount());
ui->lineEditCount->setText(QString::number(model->rowCount()));
QSortFilterProxyModel *systemFilter = new QSortFilterProxyModel(model);
systemFilter->setSourceModel(model);
systemFilter->setFilterKeyColumn(1);
QSortFilterProxyModel *partNumberFilter = new QSortFilterProxyModel(model);
partNumberFilter->setSourceModel(systemFilter);
partNumberFilter->setFilterKeyColumn(2);
QSortFilterProxyModel *productFilter = new QSortFilterProxyModel(model);
productFilter->setSourceModel(partNumberFilter);
productFilter->setFilterKeyColumn(3);
QSortFilterProxyModel *supplierFilter = new QSortFilterProxyModel(model);
supplierFilter->setSourceModel(productFilter);
supplierFilter->setFilterKeyColumn(7);
QTableView *tableView = ui->tableView;
tableView->setModel(supplierFilter);
tableView->setSortingEnabled(true);
tableView->setColumnHidden(0,true);
tableView->horizontalHeader()->setFixedHeight(20);
tableView->horizontalHeader()->setFont(QFont("Arial"));
tableView->horizontalHeader()->setStyleSheet("QHeaderView {font-weight: bold; font-size: 10pt; color: #000;} ");
tableView->sortByColumn(1,Qt::AscendingOrder);
tableView->resizeColumnsToContents();
connect(ui->lineEditSystem, SIGNAL(textEdited(QString)), systemFilter, SLOT(setFilterRegExp(QString)));
connect(ui->lineEditPartNumber, SIGNAL(textEdited(QString)), partNumberFilter, SLOT(setFilterRegExp(QString)));
connect(ui->lineEditProduct, SIGNAL(textEdited(QString)), productFilter, SLOT(setFilterRegExp(QString)));
connect(ui->lineEditSupplier, SIGNAL(textEdited(QString)), supplierFilter, SLOT(setFilterRegExp(QString)));
}
Materials::~Materials()
{
delete ui;
}
void Materials::on_addRecordButton_clicked()
{
const int row = model->rowCount();
model->insertRows(row, 1);
ui->tableView->scrollToBottom();
}
void Materials::on_updateRecordButton_clicked()
{
model->submitAll();
while(model->canFetchMore())
{
model->fetchMore();
}
}
void Materials::on_cancelChangesButton_clicked()
{
model->revertAll();
ui->tableView->scrollToTop();
}
void Materials::on_deleteRecordButton_clicked()
{
QMessageBox msgBox;
msgBox.setIconPixmap(QPixmap(":/images/icon.png"));
msgBox.setWindowTitle("Delete Record - Warning");
msgBox.setText("Do not press the Delete button until you\n"
"have highlighted the row you wish to Delete.\n\n"
"Do You Really Want To Delete This Record?");
QPushButton *deleteButton = msgBox.addButton(tr("Delete"), QMessageBox::ActionRole);
deleteButton->setStyleSheet("QPushButton:hover{background-color:#FFCCCC;border:1px solid #000;color:#000;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}");
deleteButton->setFocusPolicy(Qt::NoFocus);
deleteButton->setMinimumWidth(100);
deleteButton->setMaximumHeight(23);
QPushButton *cancelButton = msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
cancelButton->setStyleSheet("QPushButton:hover{background-color:#E0FFFF;border:1px solid #000;color:#000;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}");
cancelButton->setFocusPolicy(Qt::NoFocus);
cancelButton->setMinimumWidth(100);
cancelButton->setMaximumHeight(23);
msgBox.exec();
if (msgBox.clickedButton() == deleteButton)
{
model->removeRow(ui->tableView->currentIndex().row());
model->submitAll();
}else if (msgBox.clickedButton() == cancelButton)
{
}
}
//void Materials::on_informationButton_clicked()
//{
// InfoDialog * dialog = new InfoDialog(this);
// dialog->exec();
//}
void Materials::on_exitButton_clicked()
{
this->close();
}
To copy to clipboard, switch view to plain text mode
Bookmarks