/safeFatPrinter/branch/src/startdlg.cpp

http://cupsfilter.googlecode.com/ · C++ · 194 lines · 142 code · 37 blank · 15 comment · 11 complexity · 401e323f6be614cb413429c94b1c3c90 MD5 · raw file

  1. #include "startdlg.h"
  2. #include "ui_startdlg.h"
  3. StartDlg::StartDlg(QWidget *parent) :
  4. QDialog(parent),
  5. ui(new Ui::StartDlg)
  6. {
  7. ui->setupUi(this);
  8. askDlg = new AskTheUser(this);
  9. wrkDlg = new workReport(this);
  10. templViewer = new View(this);
  11. //templViewer->hide();
  12. connectStep=false;
  13. convertStep=false;
  14. control = new dController(this);
  15. signalMapper = new QSignalMapper(this);
  16. createConnection();
  17. rabbitHole();
  18. control->connect2Demon();
  19. QString msg;
  20. if (control->isUser_Mandat()){
  21. msg= QObject::trUtf8("??????? ???????? ??? ???????????? ? ??? ??????");
  22. getMandatUserStep=true;
  23. }else{
  24. getMandatUserStep=false;
  25. msg= QObject::trUtf8("?????? ????????? ????? ???????????? ??? ??? ???????");
  26. }
  27. this->printToLog(msg);
  28. }
  29. void StartDlg::convertToPDF(QString &filename)
  30. {
  31. control->convert2PDF(filename);
  32. QString msg;
  33. msg=QObject::trUtf8("???? %1 ????????? ?? ???????????").arg(filename);
  34. this->printToLog(msg);
  35. }
  36. //************************************ SLOTS *********************************************
  37. // --------------------------------------------------------------- private slots --------------------------------------------------------------------------------
  38. void StartDlg::fill_docCard4Print(int Mode)
  39. { // ??????? ?????? ????? ??? ?????? ??????
  40. askDlg->setWorkMode(Mode);
  41. askDlg->setModel(control->document_model());
  42. askDlg->setStampModel(control->stamp_model());
  43. askDlg->setTemplatesPath(control->glob_templates());
  44. int ret = askDlg->exec();
  45. if (ret ==QDialog::Accepted){
  46. QString in =control->mainPDF;
  47. QString bg_file="d:\\compl_teml2.pdf";
  48. QString out_file="d:\\out.pdf";
  49. control->mergeTwoPDF(in,bg_file,out_file);
  50. switch (Mode){
  51. case 0:
  52. if (askDlg->isCheckedPAO()){
  53. control->printWithTemplate(1);
  54. QString in =control->mainPDF;
  55. QString bg_file="d:\\compl_teml2.pdf";
  56. QString out_file="d:\\out.pdf";
  57. control->mergeTwoPDF(in,bg_file,out_file);
  58. //emit saveModelToBase(askDlg->getCurrentModelIndex());
  59. }else{
  60. //emit PrintOutSideMark(askDlg->getCurrentModelIndex());
  61. control->printOverSide(1);
  62. }
  63. break;
  64. case 1:
  65. break;
  66. case 2:
  67. break;
  68. }
  69. // ??????? ??????????? ??????
  70. wrkDlg->exec();
  71. }else{
  72. // clearModel
  73. }
  74. }
  75. void StartDlg::enableGUI(steps_t step,QString &message)
  76. {
  77. if (step==CONN_STEP){
  78. connectStep=true;
  79. }else if (step==CONVERT_STEP){
  80. convertStep=true;
  81. }
  82. if (connectStep && convertStep && getMandatUserStep){
  83. ui->printerCBox->addItems(control->printers_list());
  84. ui->printerCBox->setEnabled(true);
  85. ui->printOnMarkPaperBtn->setEnabled(true);
  86. ui->printWithAutoMarkPaperBtn->setEnabled(true);
  87. ui->markPaperBtn->setEnabled(true);
  88. }
  89. this->printToLog(message);
  90. }
  91. void StartDlg::showErrorInfo()
  92. {
  93. QMessageBox msgBox(this);
  94. QPushButton *abortButton;
  95. msgBox.setObjectName("crit_msg_box");
  96. msgBox.setIcon(QMessageBox::Critical);
  97. QString msg=QObject::trUtf8("??? ???????????? %1 ??? ????????? ?????????. ").arg("sva");
  98. msgBox.setInformativeText(QObject::trUtf8("??? ??????? ???? ???????? ?????????? ? ?????????????? ????????????!"));
  99. abortButton=msgBox.addButton(QObject::trUtf8("?????"), QMessageBox::RejectRole);
  100. msgBox.setText(msg);
  101. msgBox.exec();
  102. if (msgBox.clickedButton()==abortButton){
  103. QCoreApplication::quit();
  104. }
  105. }
  106. void StartDlg::do_showTemplatesEditor()
  107. {
  108. askDlg->hide();
  109. templViewer->exec();
  110. }
  111. StartDlg::~StartDlg()
  112. {
  113. delete ui;
  114. }
  115. //************************************ END SLOTS *********************************************
  116. // --------------------------------------------------------------- protected function-------------------------------------------------------------------------
  117. void StartDlg::rabbitHole()
  118. {
  119. // ??????? ?? ???????????
  120. // ?????? ?????????
  121. connect (control, SIGNAL(init_done(steps_t,QString &)), this, SLOT(enableGUI(steps_t,QString &)));
  122. connect (control,SIGNAL(printersNotFound()),this,SLOT(showErrorInfo()));
  123. connect (control,SIGNAL(mbNumberExist(int)),askDlg,SLOT(do_mbExist(int)));
  124. connect (control,SIGNAL(mbNumberNotExist()),askDlg,SLOT(do_mbNumberNotExist()));
  125. // ??????? ?? ??????????
  126. connect (askDlg,SIGNAL(needCheckMB(QString )),control,SLOT(checkMB(QString )));
  127. connect (askDlg,SIGNAL(showTemplatesEditor()),this,SLOT(do_showTemplatesEditor()));
  128. // ??????? ?? ???????_??????????? ?????
  129. // ??????? ?? ????????? ????????
  130. }
  131. void StartDlg::printToLog(QString & log_mes)
  132. {
  133. ui->logList->addItem(QString("%1: %2").arg(QDateTime::currentDateTime ().toString("dd.MM.yyyy hh:mm:ss")).arg(log_mes));
  134. ui->logList->update();
  135. }
  136. void StartDlg::createConnection()
  137. {
  138. // ??????? ????????
  139. connect(ui->markPaperBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
  140. connect(ui->printOnMarkPaperBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
  141. connect(ui->printWithAutoMarkPaperBtn, SIGNAL(clicked()), signalMapper, SLOT(map()));
  142. signalMapper->setMapping(ui->markPaperBtn,0 );
  143. signalMapper->setMapping(ui->printOnMarkPaperBtn,1);
  144. signalMapper->setMapping(ui->printWithAutoMarkPaperBtn,2 );
  145. connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(fill_docCard4Print(int)));
  146. }
  147. void StartDlg::changeEvent(QEvent *e)
  148. {
  149. QDialog::changeEvent(e);
  150. switch (e->type()) {
  151. case QEvent::LanguageChange:
  152. ui->retranslateUi(this);
  153. break;
  154. default:
  155. break;
  156. }
  157. }