Advertisement
Guest User

Untitled

a guest
Nov 16th, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QPushButton>
  4. #include <QHBoxLayout>
  5. #include <QFile>
  6. #include <QTextStream>
  7. #include <QtSql/QSqlDatabase>
  8. #include <QtSql/QSqlQuery>
  9. #include <train_handler.h>
  10. #include <QSqlError>
  11. #include <QException>
  12. #include <train.h>
  13. #include <windows.h>
  14. #include <dialog.h>
  15. #include <QProgressBar>
  16. MainWindow::MainWindow(QWidget *parent) :
  17.     QMainWindow(parent),
  18.     ui(new Ui::MainWindow)
  19. {
  20.     ui->setupUi(this);
  21.     ui->tableWidget->setColumnWidth(0, 120);
  22.     ui->tableWidget->setColumnWidth(1, 120);
  23.     ui->tableWidget->setColumnWidth(2, 160);
  24.     ui->tableWidget->setColumnWidth(3, 160);
  25.     ui->tableWidget->setColumnWidth(4, 170);
  26.     ui->tableWidget->setColumnWidth(5, 200);
  27.      ui->tableWidget->setColumnWidth(6, 200);
  28.    ui->progressBar->setValue(0);
  29. //db.open();
  30.   /*  db_ = QSqlDatabase::addDatabase("QSQLITE");
  31.    db_.setDatabaseName("C:\\SQLiteDatabaseBrowserPortable\\Data\\cities.db");
  32.     db_.open();
  33.  
  34.     if(db_.isOpen())
  35.     {
  36.         ui->lineEdit->setText("oPEN ");
  37.     }
  38.     else
  39.     {
  40.         db_.open();
  41.         ui->lineEdit->setText("notoPENed ");
  42.     }
  43.  
  44.     if(db_.isOpen())
  45.     {
  46.         ui->lineEdit->setText("oPENwssss " );
  47.     }
  48.     else
  49.     {
  50.         db_.open();
  51.        // ui->lineEdit->setText("oPENed " + e.train_name);
  52.     }
  53.      QSqlQuery R;
  54.     QString s = "eeee";
  55.    if(R.exec("create table "+s+" "
  56.                                                 "(id integer primary key, "
  57.                                                 "name varchar(9))"
  58.                                                 ))         //таблиця міст через які йде поїзд
  59.             ui->lineEdit->setText("Created");*/
  60.  
  61. }
  62.  
  63. void MainWindow::RemoveTrain()
  64. {
  65.  
  66. }
  67. void MainWindow::Edit()
  68. {
  69.  
  70. }
  71. void MainWindow::details()
  72. {
  73.  
  74. }
  75. MainWindow::~MainWindow()
  76. {
  77.     delete ui;
  78. }
  79.  bool MainWindow::Add(vector<cities> &s,QString& name,vector<train>&train_)
  80.  {
  81.  
  82.      ui->tableWidget->insertRow(ui->tableWidget->rowCount());//вставка нового маршруту
  83.      for(int i = 0; i<ui->tableWidget->columnCount(); i++)
  84.      {
  85.          if(i==0)//опція видалення маршруту
  86.          {
  87.              QWidget* pWidget = new QWidget(this);
  88.              QPushButton* btn_edit = new QPushButton();
  89.              btn_edit->setText("Remove");
  90.              connect(btn_edit, &QPushButton::clicked, this, &MainWindow::RemoveTrain);
  91.              QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
  92.              pLayout->addWidget(btn_edit);
  93.              pLayout->setAlignment(Qt::AlignCenter);
  94.              pLayout->setContentsMargins(0, 0, 0, 0);
  95.              pWidget->setLayout(pLayout);
  96.              ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
  97.              continue;
  98.          }
  99.          if(i == 1)//опція редагування маршруту
  100.          {
  101.              QWidget* pWidget = new QWidget(this);
  102.              QPushButton* btn_edit = new QPushButton();
  103.              btn_edit->setText("Edit");
  104.              connect(btn_edit, &QPushButton::clicked, this, &MainWindow::Edit);
  105.              QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
  106.              pLayout->addWidget(btn_edit);
  107.              pLayout->setAlignment(Qt::AlignCenter);
  108.              pLayout->setContentsMargins(0, 0, 0, 0);
  109.              pWidget->setLayout(pLayout);
  110.              ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
  111.              continue;
  112.          }
  113.          if(i==2)// показати деталі
  114.          {
  115.              QWidget* pWidget = new QWidget(this);
  116.              QPushButton* btn_edit = new QPushButton();
  117.              btn_edit->setText("Show details");
  118.              connect(btn_edit, &QPushButton::clicked, this, &MainWindow::details);
  119.              QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
  120.              pLayout->addWidget(btn_edit);
  121.              pLayout->setAlignment(Qt::AlignCenter);
  122.              pLayout->setContentsMargins(0, 0, 0, 0);
  123.              pWidget->setLayout(pLayout);
  124.              ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
  125.              continue;
  126.          }
  127.          if(i == 3)//імя стартового міста
  128.          {
  129.              QTableWidgetItem*item = new QTableWidgetItem(s[0].city_);
  130.              item->setFlags(item->flags() ^ Qt::ItemIsEditable);
  131.              item->setTextAlignment(Qt::AlignCenter);
  132.              ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, i, item);
  133.              ui->tableWidget->item(ui->tableWidget->rowCount()-1,3)->setToolTip(ui->tableWidget->item(ui->tableWidget->rowCount()-1,3)->text());
  134.          }
  135.          if(i==4)//імя кінцевого міста
  136.          {
  137.              QTableWidgetItem*item = new QTableWidgetItem(s[s.size()-1].city_);
  138.              item->setFlags(item->flags() ^ Qt::ItemIsEditable);
  139.              item->setTextAlignment(Qt::AlignCenter);
  140.              ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, i, item);
  141.              ui->tableWidget->item(ui->tableWidget->rowCount()-1,4)->setToolTip(ui->tableWidget->item(ui->tableWidget->rowCount()-1,4)->text());
  142.          }
  143.          if(i==5)//імена проміжних міст
  144.          {
  145.              QString between = "";
  146.              for(int i = 1; i< s.size()-1;i++)
  147.              {
  148.                  if(i != s.size()-2)
  149.                  between += s[i].city_ + " - ";
  150.                  else
  151.                   between += s[i].city_ ;
  152.              }
  153.              QTableWidgetItem*item = new QTableWidgetItem(between);
  154.              item->setFlags(item->flags() ^ Qt::ItemIsEditable);
  155.              ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, i, item);
  156.              ui->tableWidget->item(ui->tableWidget->rowCount()-1,5)->setToolTip(ui->tableWidget->item(ui->tableWidget->rowCount()-1,5)->text());
  157.  
  158.  
  159.              //CreateTrain(name,train_);
  160.          }
  161.          if(i == 6)//загрузка полоса
  162.          {
  163.              QWidget* pWidget = new QWidget(this);
  164.             QProgressBar* btn_edit = new QProgressBar();
  165.           //   btn_edit->setText("Show details");
  166.            btn_edit->setValue(0);
  167.             btn_edit->setMinimum(0);
  168.         //     connect(btn_edit, &QPushButton::clicked, this, &MainWindow::details);
  169.              QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
  170.              pLayout->addWidget(btn_edit);
  171.              pLayout->setAlignment(Qt::AlignCenter);
  172.              pLayout->setContentsMargins(0, 0, 0, 0);
  173.              pWidget->setLayout(pLayout);
  174.              ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
  175.              continue;
  176.          }
  177.      }
  178.     // Sleep(10000);
  179.    //  ui->lineEdit->setText("eeeee");
  180.     CreateTrain(name,train_[0]);
  181.     return true;
  182.  }
  183.   void MainWindow::CreateTrain(QString& name,train&train_)
  184.   {
  185.  
  186.   // db = QSqlDatabase::addDatabase("QSQLITE");
  187.           //  db.setDatabaseName("C:\\SQLiteDatabaseBrowserPortable\\Data\\cities.db");
  188.  
  189.             QSqlQuery r;
  190.             if(db.isOpen())
  191.             {
  192.                 QProgressBar *l = ui->tableWidget->cellWidget(ui->tableWidget->rowCount()-1,6)->findChild<QProgressBar*>();
  193.                l->setMinimum(0);
  194.                l->setMaximum(train_.passangers.size());
  195.                 l->setValue(0);
  196.              for(int i = 0; i< train_.passangers.size();i++)
  197.              {
  198.                  //ui->progressBar->setValue(i+1);
  199.                        l->setValue(i+1);
  200.                      // ui->progressBar->setValue(i);
  201.                  r.clear();
  202.         r.prepare("INSERT INTO "+name+" (depart_city,arrival_city,firstname,lastname,bot,vagon,place,privileges,distance,ticket_price)"
  203.                                           "VALUES (:depart_city,:arrival_city,:first_name,:lastname,:bot,:vagon,:place,:privileges,:distance,:ticket_price)");
  204.                       Sleep(3);
  205.           r.bindValue(":depart_city",train_.passangers[i].left_city);
  206.                             r.bindValue(":arrival_city",train_.passangers[i].arrival_city);
  207.                             r.bindValue(":first_name",train_.passangers[i].name);
  208.                            r.bindValue(":lastname",train_.passangers[i].surname);
  209.                             r.bindValue(":bot","bot");
  210.                            r.bindValue(":vagon",train_.passangers[i].wagon);
  211.                             r.bindValue(":place",train_.passangers[i].place);
  212.                             r.bindValue(":privileges","NO");
  213.                             r.bindValue(":distance",train_.passangers[i].way_distance);
  214.                             r.bindValue(":ticket_price",train_.passangers[i].ticket_cost);
  215.                             Sleep(3);
  216.                            r.exec();
  217.                      Sleep(3);
  218.              }
  219.                     db.close();
  220.             }
  221.  
  222.   }
  223.  void MainWindow::on_actionAdd_train_triggered()
  224. {
  225.     QString s = "";
  226.     Dialog e;
  227.     vector<train>t;
  228.     if(e.exec())
  229.     {
  230.  
  231.            if(e.train_name == "")
  232.                return;
  233.            else
  234.            s = e.train_name+"_people";
  235.            t.push_back(e.a[0]);
  236.  
  237.    }
  238.  
  239.     if(!db.isOpen())
  240.     {
  241.     db = QSqlDatabase::addDatabase("QSQLITE");
  242.                          db.setDatabaseName("C:\\SQLiteDatabaseBrowserPortable\\Data\\cities.db");
  243.                           db.open();
  244.                           ui->textBrowser_2->append("OPen");
  245.     }
  246.     else
  247.         ui->textBrowser_2->append("yes");
  248. Add(e.Cities,s,t);
  249.  
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement