Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая по ООП / qt / interface
.cpp#include "interface.h"
#include <QtGui>
#include <QTableWidget>
#include <QGridLayout>
#include <QPushButton>
#include "..\classes\man.h"
#include "..\classes\commodity.h"
#include "..\classes\shop.h"
#include "..\classes\comm_base.h"
#include "..\classes\saler_base.h"
#include "..\classes\shop_base.h"
gwMainForm::gwMainForm(QApplication &app) : QMainWindow() {
//init help units
launchDialog=1;
QWidget *w=new QWidget(this);
MainLayout = new QGridLayout(w);
setCentralWidget(w);
Tabs = new QTabWidget(this);
Tabs->setTabPosition(QTabWidget::North);
MainLayout->addWidget(Tabs);
shop=new Shop;
p=&app;
openDialog = new QFileDialog(w);
mess = new QMessageBox(w);
//Create Information Tab
ShopTab = new QWidget(this);
Tabs->addTab(ShopTab,tr("Full Infromation"));
ShopLayout = new QGridLayout(ShopTab);
directorBox = new QGroupBox(ShopTab); directorBox->setTitle("Shop Information");
directorLayout = new QGridLayout(directorBox);
//init labels
sFirstNameLabel = new QLabel("First Name ",directorBox);
sIndividualTaxNumberLabel = new QLabel("Individual Tax Number",directorBox);
sLastNameLabel = new QLabel("Last Name",directorBox);
sPensionCertificateLabel = new QLabel("Pension Certificate",directorBox);
sRegistrationCertificateLabel = new QLabel("Registration Certificate",directorBox);
sTelephoneLabel = new QLabel("Telephone",directorBox);
sAddressLabel = new QLabel("Address",directorBox);
sSpecializationLabel = new QLabel("Specialization",directorBox);
salersPathLabel = new QLabel("Salers Database Path",ShopTab);
goodsPathLabel = new QLabel("Goods Database Path",ShopTab);
sFirstNameEdit = new QLineEdit(directorBox);
sLastNameEdit = new QLineEdit(directorBox);
sRegistrationCertificateEdit = new QLineEdit(directorBox); sRegistrationCertificateEdit->setInputMask("9999 999999 from 99.99.9999 \\by 999-999");
sPensionCertificateEdit = new QLineEdit(directorBox);
sIndividualTaxNumberEdit = new QLineEdit(directorBox); sIndividualTaxNumberEdit->setInputMask("9999 9999 9999 9999");
sAddressEdit = new QLineEdit(directorBox);
sTelephoneEdit = new QLineEdit(directorBox); sTelephoneEdit->setInputMask("+7(999)999-9999;_");
sSpecializationEdit = new QLineEdit(directorBox);
saveContactButton = new QPushButton("Save contact sheet",ShopTab);
salersPathEdit = new QLineEdit(ShopTab);
browseSalersPathButton = new QPushButton("Browse",ShopTab);
goodsPathEdit = new QLineEdit(ShopTab);
browseGoodsPathButton = new QPushButton("Browse",ShopTab);
loadAllButton = new QPushButton("Load ALL",ShopTab);
saveAllButton = new QPushButton("Save ALL",ShopTab);
//init topology
ShopLayout->addWidget(directorBox,0,0,1,4);
ShopLayout->addWidget(salersPathLabel,1,0,1,1);
ShopLayout->addWidget(goodsPathLabel,2,0,1,1);
ShopLayout->addWidget(salersPathEdit,1,1,1,1);
ShopLayout->addWidget(goodsPathEdit,2,1,1,1);
ShopLayout->addWidget(salersPathEdit,1,2,1,1);
ShopLayout->addWidget(goodsPathEdit,2,2,1,1);
ShopLayout->addWidget(browseSalersPathButton,1,3,1,1);
ShopLayout->addWidget(browseGoodsPathButton,2,3,1,1);
ShopLayout->addWidget(loadAllButton,3,0,1,2);
ShopLayout->addWidget(saveAllButton,3,1,1,2);
directorLayout->addWidget(sFirstNameLabel,0,0,1,1);
directorLayout->addWidget(sLastNameLabel,1,0,1,1);
directorLayout->addWidget(sRegistrationCertificateLabel,2,0,1,1);
directorLayout->addWidget(sPensionCertificateLabel,3,0,1,1);
directorLayout->addWidget(sIndividualTaxNumberLabel,4,0,1,1);
directorLayout->addWidget(sAddressLabel,5,0,1,1);
directorLayout->addWidget(sTelephoneLabel,6,0,1,1);
directorLayout->addWidget(sSpecializationLabel,7,0,1,1);
directorLayout->addWidget(sFirstNameEdit,0,1,1,1);
directorLayout->addWidget(sLastNameEdit,1,1,1,1);
directorLayout->addWidget(sRegistrationCertificateEdit,2,1,1,1);
directorLayout->addWidget(sPensionCertificateEdit,3,1,1,1);
directorLayout->addWidget(sIndividualTaxNumberEdit,4,1,1,1);
directorLayout->addWidget(sAddressEdit,5,1,1,1);
directorLayout->addWidget(sTelephoneEdit,6,1,1,1);
directorLayout->addWidget(sSpecializationEdit,7,1,1,1);
directorLayout->addWidget(saveContactButton,8,0,1,1);
//Create Goods Tab
GoodsTab = new QWidget(this);
Tabs->addTab(GoodsTab,tr("Goods"));
GoodsLayout = new QGridLayout(GoodsTab);
//init table
GoodsTable = new QTableWidget(0,5,GoodsTab);
//init labels
codeLabel = new QLabel("Code :",GoodsTab);
titleLabel = new QLabel("Title :",GoodsTab);
supplierLabel = new QLabel("Supplier :",GoodsTab);
priceLabel = new QLabel("Price :", GoodsTab);
countLabel = new QLabel("Count :", GoodsTab);
codeEdit = new QLineEdit(GoodsTab); codeEdit->setInputMask("999999 99");
titleEdit = new QLineEdit(GoodsTab);
supplierEdit = new QLineEdit(GoodsTab);
priceEdit = new QLineEdit(GoodsTab); priceEdit->setInputMask("0000000000.00$");
countEdit = new QLineEdit(GoodsTab); countEdit->setInputMask("000000");
addGoodButton = new QPushButton("Add",GoodsTab);
delGoodButton = new QPushButton("Delete",GoodsTab);
//init topology
GoodsLayout->addWidget(GoodsTable,0,0,4,6);
GoodsLayout->addWidget(codeLabel ,4,0,1,1);
GoodsLayout->addWidget(titleLabel ,5,0,1,1);
GoodsLayout->addWidget(supplierLabel,6,0,1,1);
GoodsLayout->addWidget(priceLabel ,7,0,1,1);
GoodsLayout->addWidget(countLabel ,8,0,1,1);
GoodsLayout->addWidget(codeEdit ,4,1,1,1);
GoodsLayout->addWidget(titleEdit ,5,1,1,1);
GoodsLayout->addWidget(supplierEdit ,6,1,1,1);
GoodsLayout->addWidget(priceEdit ,7,1,1,1);
GoodsLayout->addWidget(countEdit ,8,1,1,1);
GoodsLayout->addWidget(addGoodButton,4,2,2,4);
GoodsLayout->addWidget(delGoodButton,6,2,2,4);
//init Titles of Goods Table
QStringList TableTitles;
TableTitles<< "code" <<"title" << "supplier" << "price" << "count";
GoodsTable->setHorizontalHeaderLabels(TableTitles);
//Create Salers Tab
SalersTab = new QWidget(this);
Tabs->addTab(SalersTab,tr("Salers"));
SalersLayout = new QGridLayout(SalersTab);
//init Table
SalersTable = new QTableWidget(0,6,SalersTab);
//init labels
firstNameLabel = new QLabel("First Name :",SalersTab);
individualTaxNumberLabel = new QLabel("Individual Taxnumber :",SalersTab);
lastNameLabel = new QLabel("Last Name :",SalersTab);
pensionCertificateLabel = new QLabel("Pension Certificate :", SalersTab);
registrationCertificateLabel = new QLabel("Registration Certificate :", SalersTab);
telephoneLabel = new QLabel("Telephone :", SalersTab);
//init edits
firstNameEdit = new QLineEdit(SalersTab);
lastNameEdit = new QLineEdit(SalersTab);
registrationCertificateEdit = new QLineEdit(SalersTab);
pensionCertificateEdit = new QLineEdit(SalersTab);
individualTaxNumberEdit = new QLineEdit(SalersTab);
telephoneEdit = new QLineEdit(SalersTab);
//init buttons
addSalerButton = new QPushButton("Add", SalersTab);
delSalerButton = new QPushButton("Delete",SalersTab);
//init topology
SalersLayout->addWidget(SalersTable,0,0,4,6);
SalersLayout->addWidget(firstNameLabel ,4,0,1,1);
SalersLayout->addWidget(lastNameLabel ,5,0,1,1);
SalersLayout->addWidget(registrationCertificateLabel,6,0,1,1); registrationCertificateEdit->setInputMask("9999 999999 from 99.99.9999 \\by 999-999");
SalersLayout->addWidget(pensionCertificateLabel ,7,0,1,1);
SalersLayout->addWidget(individualTaxNumberLabel ,8,0,1,1); individualTaxNumberEdit->setInputMask("9999 9999 9999 9999");
SalersLayout->addWidget(telephoneLabel ,9,0,1,1); telephoneEdit->setInputMask("+7(999)999-9999;_");
SalersLayout->addWidget(firstNameEdit ,4,1,1,1);
SalersLayout->addWidget(lastNameEdit ,5,1,1,1);
SalersLayout->addWidget(registrationCertificateEdit ,6,1,1,1);
SalersLayout->addWidget(pensionCertificateEdit ,7,1,1,1);
SalersLayout->addWidget(individualTaxNumberEdit ,8,1,1,1);
SalersLayout->addWidget(telephoneEdit ,9,1,1,1);
SalersLayout->addWidget(addSalerButton,8,2,3,3);
SalersLayout->addWidget(delSalerButton,4,2,1,3);
//init Titles of Salers Table
TableTitles.clear();
TableTitles << "firstName" << "lastName" << "registrationCertificate" << "individualTaxNumber" << "pensionCertificate" << "telephone";
SalersTable->setHorizontalHeaderLabels(TableTitles);
//Create Return Tab
ReturnTab = new QWidget(w);
Tabs->addTab(ReturnTab,tr("Returns"));
ReturnLayout = new QGridLayout(ReturnTab);
ReturnTable = new QTableWidget(0,5,ReturnTab);
makeReturn = new QPushButton("Make",ReturnTab);
saveReturn = new QPushButton("Save",ReturnTab);
ReturnLayout->addWidget(ReturnTable,0,0,8,2);
ReturnLayout->addWidget(makeReturn,9,0);
ReturnLayout->addWidget(saveReturn,9,1);
TableTitles.clear();
TableTitles<< "code" <<"title" << "supplier" << "price" << "count";
ReturnTable->setHorizontalHeaderLabels(TableTitles);
//init MainWindow
setWindowTitle("OOC Application (QT edition) v0.9.3 with Classes v0.9.5");
//connecting signals and slots
//connect(this,SIGNAL(close()),this,SLOT(~gwMainForm()));
//adding Buttons
connect(addGoodButton,SIGNAL(clicked()),this,SLOT(addGood()));
connect(addSalerButton,SIGNAL(clicked()),this,SLOT(addSaler()));
//deleting Buttons
connect(delGoodButton,SIGNAL(clicked()),this,SLOT(delCurGood()));
connect(delSalerButton,SIGNAL(clicked()),this,SLOT(delCurSaler()));
connect(GoodsTable,SIGNAL(cellChanged(int,int)),this,SLOT(editedItemGood(int,int)));
connect(SalersTable,SIGNAL(cellChanged(int,int)),this,SLOT(editedItemSaler(int,int)));
//returning Buttons
connect(makeReturn,SIGNAL(clicked()),this,SLOT(doMakeReturn()));
connect(saveReturn,SIGNAL(clicked()),this,SLOT(doSaveReturn()));
//Information buttons
connect(saveAllButton,SIGNAL(clicked()),this,SLOT(saveAll()));
connect(loadAllButton,SIGNAL(clicked()),this,SLOT(loadAll()));
connect(saveContactButton,SIGNAL(clicked()),this,SLOT(saveContact()));
connect(browseGoodsPathButton,SIGNAL(clicked()),this,SLOT(browseGoodsPath()));
connect(browseSalersPathButton,SIGNAL(clicked()),this,SLOT(browseSalersPath()));
//testing izvrats
createActions();
initMenus();
}
void gwMainForm::show(void) {
QWidget::show();
}
void gwMainForm::saveBase(void){
short launched=0;
mess->information(this,"saveBase(void)","starts");
if(focusWidget()==SalersTable){
if(launchDialog){
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptSave);
openDialog->setWindowTitle(tr("Save Salers Base"));
openDialog->setFilter(tr("Saler base files (*.scsv)"));
launched=openDialog->exec();
}
if((launched)||(!launchDialog)){
if(launchDialog){
mess->information(this,"openBase(void)","Dialog finished :: "+openDialog->selectedFiles()[0]);
salersBase = new SalerDatabase((char*)(const char *)(openDialog->selectedFiles()[0]).toAscii());
} else {
mess->information(this,"openBase(void)","Pre-definefinished :: "+salersPathEdit->text());
salersBase = new SalerDatabase((char*)(const char *)(salersPathEdit->text().toAscii()));
}
salersBase->Launch(1);
unsigned i;
for(i=1;i<=shop->SalersList->GetCount();i++)
((*salersBase)<<((*(shop->SalersList))[i]).value).Write();
salersBase->Commit();
delete salersBase;
}
return ;
}
if(focusWidget()==GoodsTable){
if(launchDialog){
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptSave);
openDialog->setWindowTitle(tr("Save Goods Base"));
openDialog->setFilter(tr("Good base files (*.gcsv)"));
launched=openDialog->exec();
}
if((launched)||(!launchDialog)){
if(launchDialog){
mess->information(this,"openBase(void)","finished :: "+openDialog->selectedFiles()[0]);
goodsBase = new CommodityDatabase((char*)(const char *)(openDialog->selectedFiles()[0]).toAscii());
} else {
mess->information(this,"openBase(void)","Pre-definefinished :: "+goodsPathEdit->text());
goodsBase = new CommodityDatabase((char*)(const char *)(goodsPathEdit->text().toAscii()));
}
goodsBase = new CommodityDatabase("base.gcsv");
goodsBase->Launch(1);
unsigned i;
for(i=1;i<=shop->PriceList->GetCount();i++)
((*goodsBase)<<((*(shop->PriceList))[i]).value).Write();
goodsBase->Commit();
delete goodsBase;
}
return ;
}
saveAll();
}
void gwMainForm::openBase(void){
short launched=0;
mess->information(this,"openBase(void)","starts");
if(focusWidget()==GoodsTable){
if(launchDialog){
openDialog->setFileMode(QFileDialog::ExistingFile);
openDialog->setAcceptMode(QFileDialog::AcceptOpen);
openDialog->setWindowTitle(tr("Open Goods Base"));
openDialog->setFilter(tr("Good base files (*.gcsv)"));
launched=openDialog->exec();
}
if((launched)||(!launchDialog)){
if(launchDialog){
mess->information(this,"openBase(void)","finished :: "+openDialog->selectedFiles()[0]);
goodsBase = new CommodityDatabase((char*)(const char *)(openDialog->selectedFiles()[0]).toAscii());
} else {
mess->information(this,"openBase(void)","Pre-definefinished :: "+goodsPathEdit->text());
goodsBase = new CommodityDatabase((char*)(const char *)(goodsPathEdit->text().toAscii()));
}
goodsBase->Launch(2);
while(!goodsBase->Ends()){
goodsBase->Read();
if(!goodsBase->Ends()){
QString buffer;
buffer=goodsBase->title.ToStr();
titleEdit->setText(buffer);
buffer=goodsBase->code.ToStr();
codeEdit->setText(buffer);
buffer=goodsBase->supplier.ToStr();
supplierEdit->setText(buffer);
buffer=goodsBase->price.ToStr();
priceEdit->setText(buffer);
buffer=goodsBase->count.ToStr();
countEdit->setText(buffer);
addGood();
}
}
goodsBase->Commit();
countEdit->clear();
codeEdit->clear();
titleEdit->clear();
supplierEdit->clear();
priceEdit->clear();
delete goodsBase;
}
return ;
}
if(focusWidget()==SalersTable){
if(launchDialog){
openDialog->setFileMode(QFileDialog::ExistingFile);
openDialog->setAcceptMode(QFileDialog::AcceptOpen);
openDialog->setWindowTitle(tr("Open Saler Base"));
openDialog->setFilter(tr("Saler base files (*.scsv)"));
launched=openDialog->exec();
}
if((launched)||(!launchDialog)){
if(launchDialog){
mess->information(this,"openBase(void)","Dialog finished :: "+openDialog->selectedFiles()[0]);
salersBase = new SalerDatabase((char*)(const char *)(openDialog->selectedFiles()[0]).toAscii());
} else {
mess->information(this,"openBase(void)","Pre-definefinished :: "+salersPathEdit->text());
salersBase = new SalerDatabase((char*)(const char *)(salersPathEdit->text().toAscii()));
}
salersBase->Launch(2);
while(!salersBase->Ends()){
salersBase->Read();
if(!salersBase->Ends()){
QString buffer;
buffer=salersBase->FirstName.ToStr();
firstNameEdit->setText(buffer);
buffer=salersBase->LastName.ToStr();
lastNameEdit->setText(buffer);
buffer=salersBase->RegistrationCertificate.ToStr();
registrationCertificateEdit->setText(buffer);
buffer=salersBase->IndividualTaxNumber.ToStr();
individualTaxNumberEdit->setText(buffer);
buffer=salersBase->PensionCertificate.ToStr();
pensionCertificateEdit->setText(buffer);
buffer=salersBase->Telephone.ToStr();
telephoneEdit->setText(buffer);
addSaler();
}
}
salersBase->Commit();
delete salersBase;
firstNameEdit->clear();
lastNameEdit->clear();
registrationCertificateEdit->clear();
individualTaxNumberEdit->clear();
pensionCertificateEdit->clear();
telephoneEdit->clear();
}
return ;
}
loadAll();
}
void gwMainForm::addSaler(void){
Man *newM=new Man(NULL,NULL,NULL,NULL,NULL,NULL);
shop->SalersList->Add(newM);
unsigned currentRow=0;
SalersTable->setRowCount((currentRow=SalersTable->rowCount())+1);
SalersTable->setItem(currentRow,0,new QTableWidgetItem(firstNameEdit->text()));
SalersTable->setItem(currentRow,1,new QTableWidgetItem(lastNameEdit->text()));
SalersTable->setItem(currentRow,2,new QTableWidgetItem(registrationCertificateEdit->text()));
SalersTable->setItem(currentRow,3,new QTableWidgetItem(individualTaxNumberEdit->text()));
SalersTable->setItem(currentRow,4,new QTableWidgetItem(pensionCertificateEdit->text()));
SalersTable->setItem(currentRow,5,new QTableWidgetItem(telephoneEdit->text()));
}
void gwMainForm::addGood(void){
Commodity *newC = new Commodity(NULL,NULL,NULL,NULL,NULL);
shop->PriceList->Add(newC);
unsigned currentRow=0;
short found=0;
int i=0;
QSpinBox *spinBox;
QString number;
if(GoodsTable->rowCount()>=0)
for(i=0;i<GoodsTable->rowCount();i++)
if((found|=(GoodsTable->item(i,0)->text()==codeEdit->text())))
break;
if(!found){
spinBox = new QSpinBox(GoodsTable);
spinBox->setMaximum(9999);
GoodsTable->setRowCount((currentRow=GoodsTable->rowCount())+1);
GoodsTable->setItem(currentRow,0,new QTableWidgetItem(codeEdit->text()));
GoodsTable->setItem(currentRow,1,new QTableWidgetItem(titleEdit->text()));
GoodsTable->setItem(currentRow,2,new QTableWidgetItem(supplierEdit->text()));
GoodsTable->setItem(currentRow,3,new QTableWidgetItem(priceEdit->text()));
GoodsTable->setCellWidget(currentRow,4,spinBox);
number.sprintf("%d",GoodsTable->rowCount());
//mess->information(this,"SpinEdit",number);
spinBox->setAccessibleDescription(number);
spinBox->setFocus();
connect(spinBox,SIGNAL(valueChanged(QString)),this,SLOT(goodsCountEdit(const QString&)));
spinBox->setValue(countEdit->text().toInt());
//GoodsTable->setItem(currentRow,4,new QTableWidgetItem(countEdit->text()));
} else {
//record allready exsists
spinBox=(QSpinBox*)GoodsTable->cellWidget(i,4);
spinBox->setFocus();
spinBox->setValue(spinBox->value()+countEdit->text().toInt());
}
}
void gwMainForm::delCurGood(void){
QString m;
if(GoodsTable->currentRow()+1) {
m="Code :"+GoodsTable->item(GoodsTable->currentRow(),0)->text()+"\n"+"Title: "+GoodsTable->item(GoodsTable->currentRow(),1)->text();
if(mess->critical(this,"Deleting...",m,QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes){
if(GoodsTable->currentRow()+1){
delete (*(shop->PriceList))[GoodsTable->currentRow()+1].value;
shop->PriceList->Del(&(*(shop->PriceList))[GoodsTable->currentRow()+1]);
GoodsTable->removeRow(GoodsTable->currentRow());
}
}
}
}
void gwMainForm::delCurSaler(void){
QString m;
if(SalersTable->currentRow()+1) {
m="Name :"+SalersTable->item(SalersTable->currentRow(),0)->text()+"\n"+"Surname: "+SalersTable->item(SalersTable->currentRow(),1)->text();
if(mess->critical(this,"Deleting...",m,QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes){
delete (*(shop->SalersList))[SalersTable->currentRow()+1].value;
shop->SalersList->Del(&(*(shop->SalersList))[SalersTable->currentRow()+1]);
SalersTable->removeRow(SalersTable->currentRow());
SalersTable->repaint();
}
}
}
void gwMainForm::editDel(void){
QWidget *cur=focusWidget();
if(cur==GoodsTable){
delCurGood();
}
if(cur==SalersTable){
delCurSaler();
}
}
void gwMainForm::editAdd(void){
QWidget *cur=focusWidget();
if(cur==SalersTable){
delCurSaler();
}
if(cur==GoodsTable){
delCurGood();
}
}
void gwMainForm::editedItemGood(int row,int column){
char *w=strdup((char*)(const char *)(GoodsTable->item(row,column)->text().toAscii()));
switch(column){
case 0:
(*(shop->PriceList))[row+1].value->setCode(w);
//mess->critical(this,"Edit",(*(shop->PriceList))[row+1].value->getCode());
//mess->information(this,"Code",p);
break;
case 1:
(*(shop->PriceList))[row+1].value->setTitle(w);
//mess->critical(this,"Edit",(*(shop->PriceList))[row+1].value->getTitle());
break;
case 2:
(*(shop->PriceList))[row+1].value->setSupplier(w);
//mess->critical(this,"Edit",(*(shop->PriceList))[row+1].value->getSupplier());
break;
case 3:
(*(shop->PriceList))[row+1].value->setPrice(w);
//mess->critical(this,"Edit",(*(shop->PriceList))[row+1].value->getPrice());
break;
}
free(w);
}
void gwMainForm::editedItemSaler(int row,int column){
switch(column){
case 0:
(*(shop->SalersList))[row+1].value->setFirstName((char*)(SalersTable->item(row,column)->text().toAscii().operator const char * ()));
break;
case 1:
(*(shop->SalersList))[row+1].value->setLastName((char*)(SalersTable->item(row,column)->text().toAscii().operator const char * ()));
break;
case 2:
(*(shop->SalersList))[row+1].value->setRegistrationCertificate((char*)(SalersTable->item(row,column)->text().toAscii().operator const char * ()));
break;
case 3:
(*(shop->SalersList))[row+1].value->setIndividualTaxNumber((char*)(SalersTable->item(row,column)->text().toAscii().operator const char * ()));
break;
case 4:
(*(shop->SalersList))[row+1].value->setPensionCertificate((char*)(SalersTable->item(row,column)->text().toAscii().operator const char * ()));
break;
case 5:
(*(shop->SalersList))[row+1].value->setTelephone((char*)(SalersTable->item(row,column)->text().toAscii().operator const char * ()));
break;
}
}
void gwMainForm::goodsCountEdit(const QString& t){
int row=GoodsTable->focusWidget()->accessibleDescription().toInt();
char *w=strdup((char*)(t.toAscii().operator const char * ()));
(*(shop->PriceList))[row].value->setCount(w);
free(w);
}
void gwMainForm::doQuit(void){
p->closeAllWindows();
}
void gwMainForm::about(void){
mess->information(this,"About","Application for OOP \n creator: SPbSETU.FCS&CT.CT['Gering'] \n library: TrollTech © QT v4.1.2GPB \n interface: gwQInterface v0.3.1 \n classes: gwSTL v 0.9.1 \n 2006 year");
}
void gwMainForm::createActions(void){
fileSaveBase = new QAction(tr("S&ave Base as..."),this);
fileSaveBase->setShortcut(tr("Ctrl+S"));
fileSaveBase->setStatusTip(tr("Save Goods Base to HDD, FDD && other"));
connect(fileSaveBase, SIGNAL(triggered()),this,SLOT(saveBase()));
fileOpenBase = new QAction(tr("Op&en Base"),this);
fileOpenBase->setShortcut(tr("Ctrl+O"));
fileOpenBase->setStatusTip(tr("Load Goods Base from HDD, FDD && other"));
connect(fileOpenBase, SIGNAL(triggered()),this,SLOT(openBase()));
fileDoQuit = new QAction(tr("&Quit"),this);
fileDoQuit->setShortcut(tr("Ctrl+Q"));
fileDoQuit->setStatusTip(tr("Quit Program"));
connect(fileDoQuit, SIGNAL(triggered()),this,SLOT(doQuit()));
editDeleteRecord = new QAction(tr("Delete Record"),this);
editDeleteRecord->setShortcut(tr("Ctrl+T"));
editDeleteRecord->setStatusTip(tr("Delete Current Record"));
connect(editDeleteRecord, SIGNAL(triggered()),this,SLOT(editDel()));
editNewRecord = new QAction(tr("Add Record"),this);
editNewRecord->setShortcut(tr("Ctrl+D"));
editNewRecord->setStatusTip(tr("Add new Record"));
connect(editNewRecord, SIGNAL(triggered()),this,SLOT(editAdd()));
helpAboutQt = new QAction(tr("About Trolltech QT"),this);
helpAboutQt->setShortcut(tr("Ctrl+U"));
helpAboutQt->setStatusTip(tr("About QT"));
connect(helpAboutQt, SIGNAL(triggered()),p,SLOT(aboutQt()));
helpAbout = new QAction(tr("About Application"),this);
helpAbout->setShortcut(tr("F1"));
//helpAbout->setShortcut(tr("About this Application"));
connect(helpAbout, SIGNAL(triggered()),this,SLOT(about()));
}
void gwMainForm::initMenus(void) {
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(fileOpenBase);
fileMenu->addAction(fileSaveBase);
fileMenu->addSeparator();
fileMenu->addAction(fileDoQuit);
editMenu = menuBar()->addMenu(tr("&Edit"));
editMenu->addAction(editNewRecord);
editMenu->addAction(editDeleteRecord);
helpMenu = menuBar()->addMenu(tr("&Help"));
helpMenu->addAction(helpAbout);
helpMenu->addAction(helpAboutQt);
}
gwMainForm::~gwMainForm(){
if(shop){
delete shop;
}
}
void gwMainForm::doMakeReturn(void){
ReturnTable->setRowCount(0);
QString val;
for(int i=0;i<GoodsTable->rowCount();i++)
if(((QSpinBox*)GoodsTable->cellWidget(i,4))->value()>0){
ReturnTable->setRowCount(ReturnTable->rowCount()+1);
for(int k=0;k<4;k++){
val = GoodsTable->item(i,k)->text();
ReturnTable->setItem(ReturnTable->rowCount()-1,k,new QTableWidgetItem(val));
ReturnTable->item(ReturnTable->rowCount()-1,k)->setFlags(0);
}
val = ((QSpinBox*)GoodsTable->cellWidget(i,4))->cleanText();
ReturnTable->setItem(ReturnTable->rowCount()-1,4,new QTableWidgetItem(val));
ReturnTable->item(ReturnTable->rowCount()-1,4)->setFlags(0);
}
}
void gwMainForm::doSaveReturn(void) {
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptSave);
openDialog->setFilter("Text Documents (*.txt)");
QFile fl;
QString data;
if(openDialog->exec()){
fl.setFileName(openDialog->selectedFiles()[0]);
fl.open(QIODevice::WriteOnly);
for(int i=0;i<ReturnTable->rowCount();i++){
data="";
for(int k=0;k<ReturnTable->columnCount();k++){
data+=ReturnTable->item(i,k)->text();
if(ReturnTable->columnCount()-1!=k)
data+=(char)9;
}
if(ReturnTable->rowCount()-1!=i)
data+="\n";
fl.write(data.toAscii());
}
fl.close();
}
}
void gwMainForm::saveContact(void){
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptSave);
openDialog->setFilter("Text File (*.txt)");
QFile fl;
QString data;
if(openDialog->exec()){
fl.setFileName(openDialog->selectedFiles()[0]);
fl.open(QIODevice::WriteOnly);
data="Director:\n";
data+="First Name";data+=(char)9;data+=sFirstNameEdit->text();data+="\n";
data+="Last Name";data+=(char)9;data+=sLastNameEdit->text();data+="\n";
data+="Registration Certificate";data+=(char)9;data+=sRegistrationCertificateEdit->text();data+="\n";
data+="Pension Certificate";data+=(char)9;data+=sPensionCertificateEdit->text();data+="\n";
data+="Individual Tax Number";data+=(char)9;data+=sIndividualTaxNumberEdit->text();data+="\n";
data+="Shop:\n";
data+="Address";data+=(char)9;data+=sAddressEdit->text();data+="\n";
data+="Telephone";data+=(char)9;data+=sTelephoneEdit->text();data+="\n";
data+="Specialization";data+=(char)9;data+=sSpecializationEdit->text();data+="\n";
fl.write(data.toAscii());
fl.close();
mess->information(this,"Contact Sheet","Done");
}
}
void gwMainForm::loadAll(void){
ShopDatabase *shopDB;
openDialog->setFileMode(QFileDialog::ExistingFile);
openDialog->setAcceptMode(QFileDialog::AcceptOpen);
openDialog->setFilter("Shop Base (*.mcsv)");
if(openDialog->exec()){
shopDB = new ShopDatabase((char*)(const char*)openDialog->selectedFiles()[0].toAscii());
shopDB->Launch(2);
shopDB->Read();
shopDB->Commit();
sFirstNameEdit->setText(shopDB->FirstName.ToStr());
sLastNameEdit->setText(shopDB->LastName.ToStr());
sRegistrationCertificateEdit->setText(shopDB->RegistrationCertificate.ToStr());
sPensionCertificateEdit->setText(shopDB->PensionCertificate.ToStr());
sIndividualTaxNumberEdit->setText(shopDB->IndividualTaxNumber.ToStr());
sAddressEdit->setText(shopDB->Address.ToStr());
sTelephoneEdit->setText(shopDB->Telephone.ToStr());
sSpecializationEdit->setText(shopDB->Specialization.ToStr());
salersPathEdit->setText(shopDB->SalersPath.ToStr());
goodsPathEdit->setText(shopDB->GoodsPath.ToStr());
delete shopDB;
launchDialog=0;
GoodsTable->setFocus();
openBase();
SalersTable->setFocus();
openBase();
mess->information(this,"Loaded","Done");
launchDialog=1;
}
}
void gwMainForm::saveAll(void){
ShopDatabase *shopDB;
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptSave);
openDialog->setFilter("Shop Base (*.mcsv)");
if(openDialog->exec()){
shopDB = new ShopDatabase((char*)(const char*)openDialog->selectedFiles()[0].toAscii());
shopDB->Launch(1);
shopDB->FirstName=(char*)(const char *)sFirstNameEdit->text().toAscii();
shopDB->LastName=(char*)(const char *)sLastNameEdit->text().toAscii();
shopDB->RegistrationCertificate=(char*)(const char *)sRegistrationCertificateEdit->text().toAscii();
shopDB->PensionCertificate=(char*)(const char *)sPensionCertificateEdit->text().toAscii();
shopDB->IndividualTaxNumber=(char*)(const char *)sIndividualTaxNumberEdit->text().toAscii();
shopDB->Telephone=(char*)(const char *)sTelephoneEdit->text().toAscii();
shopDB->Address=(char*)(const char *)sAddressEdit->text().toAscii();
shopDB->Specialization=(char*)(const char *)sSpecializationEdit->text().toAscii();
shopDB->SalersPath=(char*)(const char *)salersPathEdit->text().toAscii();
shopDB->GoodsPath=(char*)(const char *)goodsPathEdit->text().toAscii();
shopDB->Write();
shopDB->Commit();
delete shopDB;
launchDialog=0;
GoodsTable->setFocus();
saveBase();
SalersTable->setFocus();
saveBase();
mess->information(this,"Saved","Done");
launchDialog=1;
}
}
void gwMainForm::browseGoodsPath(void){
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptOpen);
openDialog->setWindowTitle(tr("Open Goods Base"));
openDialog->setFilter(tr("Good base files (*.gcsv)"));
if(openDialog->exec()){
goodsPathEdit->setText(openDialog->selectedFiles()[0]);
}
}
void gwMainForm::browseSalersPath(void){
openDialog->setFileMode(QFileDialog::AnyFile);
openDialog->setAcceptMode(QFileDialog::AcceptOpen);
openDialog->setWindowTitle(tr("Open Salers Base"));
openDialog->setFilter(tr("Saler base files (*.scsv)"));
if(openDialog->exec()){
salersPathEdit->setText(openDialog->selectedFiles()[0]);
}
}
Соседние файлы в папке qt