Implementación de la configuración faltante

Signed-off-by: somebody_master <somebody_master@somebodyserver.mooo.com>
This commit is contained in:
Somebody Master 2020-10-28 00:00:25 +01:00
parent 41ea8e5b13
commit 568d7209e3
Signed by: somebody_master
GPG Key ID: 78315CFDF0B25505
3 changed files with 27 additions and 17 deletions

View File

@ -3,8 +3,8 @@
#define __CONFIG_HPP_ #define __CONFIG_HPP_
class Config { class Config {
private: private:
int8_t *numHilos; int8_t numHilos;
std::string *tiempo; std::string tiempo;
public: public:
Config(int8_t numHilos, std::string tiempo); Config(int8_t numHilos, std::string tiempo);

View File

@ -1,8 +1,8 @@
#include "config.hpp" #include "config.hpp"
Config::Config(int8_t numHilos, std::string tiempo) { Config::Config(int8_t numHilos, std::string tiempo) {
Config::numHilos = &numHilos; Config::numHilos = numHilos;
Config::tiempo = &tiempo; Config::tiempo = tiempo;
} }
// Config::~Config() { // Config::~Config() {
@ -10,17 +10,17 @@ Config::Config(int8_t numHilos, std::string tiempo) {
// delete tiempo; // delete tiempo;
// } // }
int8_t Config::getNumHilos() { int8_t Config::getNumHilos() {
return *numHilos; return numHilos;
} }
std::string Config::getTiempo() { std::string Config::getTiempo() {
return *tiempo; return tiempo;
} }
void Config::setNumHilos(int8_t numHilos) { void Config::setNumHilos(int8_t numHilos) {
Config::numHilos = &numHilos; Config::numHilos = numHilos;
} }
void Config::setTiempo(std::string tiempo) { void Config::setTiempo(std::string tiempo) {
Config::tiempo = &tiempo; Config::tiempo = tiempo;
} }

View File

@ -84,7 +84,7 @@ void userInterface(const int8_t *num_menu, vector<string> *mensaje, Config *conf
case PRIMER_INICIO: { case PRIMER_INICIO: {
vector<string> textos_init = {"Toda la configuración se escribirá en " + cf::g_configFile, "", ""}; vector<string> textos_init = {"Toda la configuración se escribirá en " + cf::g_configFile, "", ""};
vector<string> elemens = {"- Número de hilos\t> ", "- Tiempo\t\t> "}; vector<string> elemens = {"- Número de hilos\t> ", "- Tiempo de ejecución\t> "};
ui::showTopTitle(&TITULO_PRINCIPAL); ui::showTopTitle(&TITULO_PRINCIPAL);
vector<string> entrada = ui::showCentralInputBox(&textos_init, &CONFIGURAR_TODO, &elemens, TITULO_PRINCIPAL.size()); vector<string> entrada = ui::showCentralInputBox(&textos_init, &CONFIGURAR_TODO, &elemens, TITULO_PRINCIPAL.size());
Config config2 = Config(atoi(entrada[0].c_str()), entrada[1]); Config config2 = Config(atoi(entrada[0].c_str()), entrada[1]);
@ -95,12 +95,22 @@ void userInterface(const int8_t *num_menu, vector<string> *mensaje, Config *conf
} }
case CONFIGURAR_HILOS: { case CONFIGURAR_HILOS: {
/*TODO*/ vector<string> textos_init = {"Número de hilos actuales: " + to_string(config->getNumHilos()), "", ""};
vector<string> elemens = {"- Número de hilos\t> "};
vector<string> entrada = ui::showCentralInputBox(&textos_init, &CONFIGURAR_TODO, &elemens, TITULO_PRINCIPAL.size());
config->setNumHilos(atoi(entrada[0].c_str()));
cf::saveConfig(config);
userInterface(&MENU_CONFIGURACION, mensaje, config);
break; break;
} }
case CONFIGURAR_TIEMPO: { case CONFIGURAR_TIEMPO: {
/*TODO*/ vector<string> textos_init = {"Tiempo actual" + config->getTiempo(), "", ""};
vector<string> elemens = {"- Tiempo de ejecución\t> "};
vector<string> entrada = ui::showCentralInputBox(&textos_init, &CONFIGURAR_TODO, &elemens, TITULO_PRINCIPAL.size());
config->setTiempo(entrada[0]);
cf::saveConfig(config);
userInterface(&MENU_CONFIGURACION, mensaje, config);
break; break;
} }
@ -170,12 +180,12 @@ void showMenu(vector<string> *menu_elems, const int8_t *num_menu, Config *config
for (int j = menu_elems->at(i).length(); j < (ui::g_menuWith - 4); j++) { for (int j = menu_elems->at(i).length(); j < (ui::g_menuWith - 4); j++) {
menu_elems->at(i).append(" "); menu_elems->at(i).append(" ");
} }
/*
Por algún motivo los acentos y tildes cuentan como un caracter // Por algún motivo los acentos y tildes cuentan como un caracter
aparte, por lo que hay que añadir un espacio extra en esos // aparte, por lo que hay que añadir un espacio extra en esos
casos. De momento la mejor solución es leer la cadena cada dos // casos. De momento la mejor solución es leer la cadena cada dos
caracteres y ver si cuadra con alguna de las siguientes letras. // caracteres y ver si cuadra con alguna de las siguientes letras.
*/
for (int j = 0; j < menu_elems->at(i).length(); j++) { for (int j = 0; j < menu_elems->at(i).length(); j++) {
if (menu_elems->at(i).substr(j, 2).compare("á") == 0 | if (menu_elems->at(i).substr(j, 2).compare("á") == 0 |
menu_elems->at(i).substr(j, 2).compare("é") == 0 | menu_elems->at(i).substr(j, 2).compare("é") == 0 |