Advertisement
Guest User

Untitled

a guest
May 31st, 2021
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.58 KB | None | 0 0
  1.  
  2.  
  3. #pragma GCC diagnostic push
  4. #pragma GCC diagnostic ignored "-Wdeprecated-copy"
  5. #include <QApplication>
  6. #include <QLineEdit>
  7. #include <QObject>
  8. #include <QMessageBox>
  9. #include <QSqlDatabase> // crea conecciones a base de datos
  10. #include <QSqlQuery> // hace las busquedas y agrega data a los registros
  11. #include <QSqlError> //hacer debug sql
  12. #include <QPixmap>
  13. #include <QLabel>
  14.  
  15. #include "Silo_SaS.h"  // #include "Pantalla_Principal.cpp"  Cambiado a Silo_SaS.cpp, main window where lives every function
  16. #include "Serial.h"    // Coneccion Serial a los puertos not working skip
  17. #include "Login.h"     // login screen
  18.  
  19. //  framework DarkStyle de Jurgen-VikingGod
  20. #include "../Qt-Frameless-Window-DarkStyle/DarkStyle.h"  // se debia agregar el DarkStyle.cpp a sources files del projecto
  21. #include "../Qt-Frameless-Window-DarkStyle/framelesswindow/framelesswindow.h"  // tambien se agrega el Framelesswindow.cpp al sources files
  22.  
  23. #pragma GCC diagnostic pop
  24.  
  25.    //extern QString ciclo_actual(){return QStringLiteral("CICLO-OI-19-20.db");}
  26.  
  27.    //extern QString users(){return QStringLiteral("Utilisateurs.db");}
  28.  
  29.    //extern QString adeudos(){return QStringLiteral("Dettes_OI_19-20.db");}
  30.  
  31. int main(int argc, char *argv[]) {
  32.    
  33.     QApplication app(argc, argv);
  34.     //app.setWindowIcon(QIcon("/images/Logo.png"));
  35.     app.setWindowIcon(QIcon("/images/Icono_App_Silo_1"));
  36.    
  37.     Silo* base = new Silo;
  38.     base->Log(".                   ");
  39.     base->Log(".                   ");
  40.     base->Log("Inicio del programa");
  41.    
  42.     //********** Muestra la pantalla Principal del sistema*****//  
  43.    
  44.     FramelessWindow winPrin;
  45.     winPrin.setStyle(new DarkStyle);
  46.     winPrin.setContent(base);
  47.     winPrin.setFixedSize(1920,1080);
  48.     winPrin.setWindowState(Qt::WindowMaximized);
  49.     winPrin.setWindowTitle("SAAS");
  50.     winPrin.setWindowIcon(QIcon("images/Icono_App_Silo_1.png"));
  51.    
  52.    
  53.     //*********** Pagina de Login*****************************//
  54.     FramelessWindow winLog;
  55.     Login* login = new Login;
  56.     winLog.setStyle(new DarkStyle);
  57.     winLog.setContent(login);
  58.     winLog.setFixedSize(460,635);
  59.     winLog.setWindowTitle("Login");
  60.     winLog.setWindowIcon(QIcon("images/Icono_App_Silo_2.png"));
  61.    
  62.  
  63.     // winPrin.hide();   usar el hide asta que login sea true
  64.    
  65.     // revisar mariadbcpp y mariadb-connector-c
  66.     // usar mysql_install_db para incializar la estructura de datos de mariadb, si existe pasar de largo
  67.     // mysql.server start inicia el servidor mariadb
  68.     // mysql -u root -p  conecta a la base de datos (poner usuario y contraseña aqui)
  69.    /****************************  Activar Serial  ******************/
  70.     Serial* Conecserial = new Serial;
  71.     Conecserial->Connect_RS232();
  72.    
  73.     //*******************  Fondos  ****************************//
  74.     QString icon_boletas = app.applicationDirPath() + "/images/Bascula1_edit.png";
  75.     QString icon_liqui = app.applicationDirPath() + "/images/Liquidacion1_edit.png";
  76.     QString icon_Salidas = app.applicationDirPath() + "/images/Bascula1_edit.png";
  77.     QString icon_reg = app.applicationDirPath() + "/images/Registros1_edit.png";
  78.     QString icon_produ = app.applicationDirPath() + "/images/Silo1_edit.png";
  79.     QString icon_comp = app.applicationDirPath() + "/images/Compradores1_edit.png";
  80.     QString icon_Silos = app.applicationDirPath() + "/images/Silo1_edit.png";
  81.     QString Logo_Emp = app.applicationDirPath() + "/images/Logo.png";
  82.     QString fondo = app.applicationDirPath() + "/images/SorgoPlanta1.jpg";
  83.     QString fondoApp = app.applicationDirPath() + "/images/SorgoPlanta2.jpg" ;
  84.     QPixmap logo;
  85.    
  86.     if (!logo.load(fondo)){
  87.         base->Log("imposible cargar la imagen: " + fondo);
  88.     }else{
  89.        base->findChild<QLabel*>("SplashScreenLogo")->setPixmap(logo);    
  90.        login->findChild<QLabel*>("LoginSplash")->setPixmap(logo);
  91.     }
  92.    
  93.     if (!logo.load(fondoApp)){
  94.         base->Log("imposible cargar la imagen: " + fondoApp);
  95.     }else{
  96.         base->findChild<QLabel*>("Fondo_1")->setPixmap(logo);
  97.         base->findChild<QLabel*>("Fondo_2")->setPixmap(logo);
  98.         base->findChild<QLabel*>("Fondo_3")->setPixmap(logo);
  99.         base->findChild<QLabel*>("Fondo_4")->setPixmap(logo);
  100.         base->findChild<QLabel*>("Fondo_5")->setPixmap(logo);
  101.         base->findChild<QLabel*>("Fondo_6")->setPixmap(logo);
  102.         base->findChild<QLabel*>("Fondo_7")->setPixmap(logo);
  103.         base->findChild<QLabel*>("Fondo_8")->setPixmap(logo);
  104.         base->findChild<QLabel*>("Fondo_9")->setPixmap(logo);
  105.         base->findChild<QLabel*>("Fondo_10")->setPixmap(logo);
  106.         base->findChild<QLabel*>("Fondo_11")->setPixmap(logo);
  107.     }
  108.    
  109.     // operadores terciarios son igual al if
  110.     !logo.load(icon_boletas) ? base->Log("imposible cargar la imagen: " + icon_boletas) : base->findChild<QLabel*>("icon_Boletas")->setPixmap(logo);
  111.     !logo.load(icon_liqui) ? base->Log("imposible cargar la imagen: " + icon_liqui) : base->findChild<QLabel*>("icon_Liq")->setPixmap(logo);    
  112.     !logo.load(icon_Salidas) ? base->Log("imposible cargar la imagen: " + icon_Salidas) : base->findChild<QLabel*>("icon_Salidas")->setPixmap(logo);    
  113.     !logo.load(icon_reg)? base->Log("imposible cargar la imagen: " + icon_reg) : base->findChild<QLabel*>("icon_Reg")->setPixmap(logo);
  114.     !logo.load(icon_Silos) ? base->Log("imposible cargar la imagen: " + icon_Silos) : base->findChild<QLabel*>("icon_Silos")->setPixmap(logo);
  115.     !logo.load(icon_produ) ? base->Log("imposible cargar la imagen: " + icon_produ) : base->findChild<QLabel*>("icon_Prod")->setPixmap(logo);
  116.     !logo.load(icon_comp) ? base->Log("imposible cargar la imagen: " + icon_comp) : base->findChild<QLabel*>("icon_Comp")->setPixmap(logo);
  117.     !logo.load(Logo_Emp) ? base->Log("imposible cargar la imagen: " + Logo_Emp) : base->findChild<QLabel*>("Nombre_Programa_Landing")->setPixmap(logo);
  118.     !logo.load(Logo_Emp) ? base->Log("imposible cargar la imagen: " + Logo_Emp) : base->findChild<QLabel*>("Nombre_Programa")->setPixmap(logo);
  119.     base->findChild<QLabel*>("Nombre_Programa_Landing")->setFixedSize(430,620);
  120.     base->findChild<QLabel*>("Nombre_Programa")->setFixedSize(290,250);
  121.     /****************  Creacion de las Bases de Datos  *************************/
  122.    
  123.     // usar los if para revisar que existan las bases de datos, si no crearlas
  124.    
  125.     base->Log("Creacion de Bases de Datos");
  126.    
  127.     QMessageBox MBox;
  128.     QPushButton *boton_OK = MBox.addButton("Ok", QMessageBox::AcceptRole);
  129.     QPushButton *boton_CANCEL = MBox.addButton(QMessageBox::Cancel);
  130.     MBox.setWindowTitle("Error de Base Datos");
  131.     MBox.setDefaultButton(boton_OK);
  132.     if (base->ChecarDB(app.applicationDirPath(), base->ciclo_actual()) == false){
  133.        // QMessageBox::critical( base, "Error de Database", "No se pudo encontrar la Base de Datos " + base->ciclo_actual(), QMessageBox::Ok | QMessageBox::Cancel);
  134.        MBox.setText("No se Pudo encontrar la base de datos: " + base->ciclo_actual());
  135.        MBox.setInformativeText("Desea crearla?");
  136.        MBox.exec();
  137.        if (MBox.clickedButton() == boton_OK){
  138.         base->CrearDB(app.applicationDirPath(), base->ciclo_actual());
  139.         base->Log("Se creo la DB: " + base->ciclo_actual());
  140.        }else if(MBox.clickedButton() == boton_CANCEL){
  141.            
  142.        }
  143.     }/*else{
  144.         base->CrearDB(app.applicationDirPath(), base->ciclo_actual());
  145.     }*/
  146.        
  147.     if (base->ChecarDB(app.applicationDirPath(), base->users()) == false){
  148.        // QMessageBox::critical( base, "Error de Database", "No se pudo encontrar la Base de Datos " + base->users() ,QMessageBox::Ok);
  149.        MBox.setText("No se Pudo encontrar la base de datos: " + base->users());
  150.        MBox.setInformativeText("Desea crearla?");
  151.        MBox.exec();
  152.        if (MBox.clickedButton() == boton_OK){
  153.         base->CrearDB(app.applicationDirPath(), base->users());
  154.         base->Log("Se creo la DB: " + base->users());
  155.        } else if(MBox.clickedButton() == boton_CANCEL){
  156.            
  157.        }
  158.     }/*else{
  159.         base->ChecarDB(app.applicationDirPath(), base->users());
  160.     }*/
  161.    
  162.     if (base->ChecarDB(app.applicationDirPath(), base->adeudos()) == false){
  163.         //QMessageBox::critical( base, "Error de Database", "No se pudo encontrar la Base de Datos " + base->adeudos() ,QMessageBox::Ok);
  164.        MBox.setText("No se Pudo encontrar la base de datos: " + base->adeudos());
  165.        MBox.setInformativeText("Desea crearla?");
  166.        MBox.exec();
  167.        if (MBox.clickedButton() == boton_OK){
  168.         base->CrearDB(app.applicationDirPath(), base->adeudos());
  169.         base->Log("Se creo la DB: " + base->adeudos());
  170.        } else if(MBox.clickedButton() == boton_CANCEL){
  171.            
  172.        }
  173.     }/*else{
  174.         base->ChecarDB(app.applicationDirPath(), base->adeudos());
  175.     }*/
  176.    
  177.     base->Contrasenas();
  178.     base->Creditos();
  179.     base->Ciclo();
  180.     base->Dry_n_Wet();  // secado
  181.    
  182.     //********* Manejo del Serial y mostrar pantallas *********************//
  183.    
  184.     //login(); //(app.applicationDirPath(), app); // le paso la direccion de la app
  185.     winLog.show();    //login.show()  pantalla de login;
  186.    
  187.     if(login->checkConfigFile(app.applicationDirPath()) == true){   //check if file exist
  188.        // check mac inside config vs machines mac  
  189.        QSqlQuery mac(QSqlDatabase::database("Config.db"));
  190.        mac.exec("SELECT Mac FROM Config");
  191.        if(mac.lastError().isValid()){
  192.            base->Log("No se Puede obtener la Mac" + mac.lastError().text());
  193.        }
  194.        if(login->SortMAC(login->getMacAddress(), mac.value("Mac").toString())){   // return true or false SortMac mac comparision goes here  
  195.            login->findChild<QPushButton*>("Aceptar")->setCheckable(true);   // aceptar its checkable
  196.            login->findChild<QPushButton*>("Aceptar")->setStyleSheet("background-color:green;");
  197.            login->findChild<QLineEdit*>("Serial_edit")->setVisible(false);  // hide or show serial_edit
  198.        } else{
  199.            base->Log("No se puede comparar la Mac");
  200.        }
  201.    
  202.       }else{
  203.        login->findChild<QPushButton*>("Aceptar")->setCheckable(false);  // hide the button
  204.        login->findChild<QPushButton*>("Aceptar")->setStyleSheet("border-width:0px;background-color:white;");  // change button color
  205.        login->findChild<QLineEdit*>("Serial_edit")->setVisible(true);  // show lineedit for serial
  206.        login->findChild<QLabel*>("Serial_aviso")->setText("Por favor Introduzca un Serial Valido");  
  207.        base->Log("antes del connect");
  208.        
  209.        QObject::connect(login->findChild<QLineEdit*>("Serial_edit"), &QLineEdit::returnPressed, [=] {    //login->Check();
  210.            login->Check();
  211.            if(login->validSerial == true){  //if serial is valid, triger when Check() happends   como carajos llamo la funcion Check aqui???
  212.            login->findChild<QPushButton*>("Aceptar")->setCheckable(true); //
  213.            login->findChild<QPushButton*>("Aceptar")->setStyleSheet("border-width:1px; background-color:transparent; color:red");  // change button color
  214.            //winPrin.show();    // base.show()  pantalla principal;
  215.            base->CreateConfigFile(app.applicationDirPath(), "");  // Create config File, pass the valid serial here
  216.          }
  217.          if (login->validSerial == true){base->Log("Hubo un cambio, valid serial es true ");} else{base->Log("valid serial es False"); }
  218.        });
  219.     }
  220.     //winLog.show();    //login.show()  pantalla de login;
  221.     //if(login->validSerial == true){
  222.    //     winPrin.show();    // base.show()  pantalla principal;
  223.     //}
  224.    
  225.    
  226.     base->Log("Se Muestran las pantallas");
  227.  
  228.     return app.exec();
  229. }
  230.  
  231.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement