configuracion.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2003 by Tomeu Borras Riera                              *
00003  *   tborras@conetxia.com                                                  *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 
00026 
00027 #include "QTextStream"
00028 #include <QDir>
00029 
00030 #include <sys/types.h>
00031 #include <sys/stat.h>
00032 #include <fcntl.h>
00033 #ifndef WIN32
00034 #include <unistd.h>
00035 #endif
00036 
00037 #include "configuracion.h"
00038 #include "funcaux.h"
00039 
00040 
00041 #include "abreempresaview.h"
00042 
00043 
00046 configuracion *confpr;
00047 
00066 
00067 
00069 
00072 configuracion::configuracion(QString nombreprograma) {
00073 //    _depura("configuracion::configuracion", 0);
00074 
00076 #ifdef WIN32
00077     m_dirGlobalConf = "C:/bulmages/";
00078 #else
00079     m_dirGlobalConf = "/etc/bulmages/";
00080 #endif
00081     QString mensaje;
00082     QFile genericGlobalConfFile;
00083     QFile programGlobalConfFile;
00084     QFile genericLocalConfFile;
00085     QFile programLocalConfFile;
00086     QDir dirGlobalConf(m_dirGlobalConf);
00087     QString dirusuario = getenv("HOME");
00088     m_dirLocalConf = dirusuario + "/.bulmages/";
00089     m_genericGlobalConfFile = "bulmages.conf";
00090     m_programGlobalConfFile = nombreprograma + ".conf";
00091     m_genericLocalConfFile = m_genericGlobalConfFile;
00092     m_programLocalConfFile = m_programGlobalConfFile;
00093 
00096     if (!dirGlobalConf.exists()) {
00097         mensaje = "--> ERROR: El directorio '" + m_dirGlobalConf + "' no existe. Debe crearlo. <--\n";
00098         fprintf(stderr, mensaje.toAscii().constData());
00099         exit(-1);
00100     } else {
00101         if (!genericGlobalConfFile.exists(m_dirGlobalConf + m_genericGlobalConfFile)) {
00102             mensaje = "--> ERROR: El archivo '" + m_dirGlobalConf + m_genericGlobalConfFile + "' no existe. Debe crearlo. <--\n";
00103             fprintf(stderr, mensaje.toAscii().constData());
00104             exit(-1);
00105         } else {
00107             mensaje = "--> El archivo '" + m_dirGlobalConf + m_genericGlobalConfFile + "' existe. Se va a leer.<--\n";
00108             fprintf(stderr, mensaje.toAscii().constData());
00109             leeconfig(m_dirGlobalConf + m_genericGlobalConfFile);
00110         }// end if
00111     } // end if
00112 
00114     if (!programGlobalConfFile.exists(m_dirGlobalConf + m_programGlobalConfFile)) {
00115         mensaje = "--> El archivo '" + m_dirGlobalConf + m_programGlobalConfFile + "' no existe. <--\n";
00116         fprintf(stderr, mensaje.toAscii().constData());
00117     } else {
00119         mensaje = "--> El archivo '" + m_dirGlobalConf + m_programGlobalConfFile + "' existe. Se va a leer.<--\n";
00120         fprintf(stderr, mensaje.toAscii().constData());
00121         leeconfig(m_dirGlobalConf + m_programGlobalConfFile);
00122     }// end if
00123 
00126     if (!dirGlobalConf.exists(m_dirLocalConf)) {
00127         if (dirGlobalConf.mkdir(m_dirLocalConf) == TRUE) {
00128             mensaje = "--> Se ha creado el directorio '" + m_dirLocalConf + "'. <--\n";
00129             fprintf(stderr, mensaje.toAscii().constData());
00130         } else {
00131             mensaje = "--> ERROR: No se ha podido crear el directorio '" + m_dirLocalConf + "'. <--\n";
00132             fprintf(stderr, mensaje.toAscii().constData());
00133             exit(-1);
00134         }// end if
00135     } // end if
00136 
00137     if (!genericLocalConfFile.exists(m_dirLocalConf + m_genericLocalConfFile)) {
00138         mensaje = "--> El archivo '" + m_dirLocalConf + m_genericLocalConfFile + "' no existe. <--\n";
00139         fprintf(stderr, mensaje.toAscii().constData());
00140     } else {
00142         mensaje = "--> El archivo '" + m_dirLocalConf + m_genericLocalConfFile + "' existe. Se va a leer.<--\n";
00143         fprintf(stderr, mensaje.toAscii().constData());
00144         leeconfig(m_dirLocalConf + m_genericLocalConfFile);
00145     }// end if
00146 
00147     if (!programLocalConfFile.exists(m_dirLocalConf + m_programLocalConfFile)) {
00148         mensaje = "--> El archivo '" + m_dirLocalConf + m_programLocalConfFile + "' no existe. <--\n";
00149         fprintf(stderr, mensaje.toAscii().constData());
00150     } else {
00152         mensaje = "--> El archivo '" + m_dirLocalConf + m_programLocalConfFile + "' existe. Se va a leer.<--\n";
00153         fprintf(stderr, mensaje.toAscii().constData());
00154         leeconfig(m_dirLocalConf + m_programLocalConfFile);
00155     }// end if
00156 
00157     setValor(CONF_DIR_USER, m_dirLocalConf);
00158     setValor(CONF_PRIVILEGIOS_USUARIO, "1");
00159     setValor(CONF_LOGIN_USER, "");
00160     setValor(CONF_PASSWORD_USER, "");
00161 
00162 //    _depura("END configuracion::configuracion", 0);
00163 }
00164 
00165 
00167 
00169 configuracion::~configuracion() {
00170 //    _depura("configuracion::~configuracion", 0);
00171 //    _depura("END configuracion::~configuracion", 0);
00172 }
00173 
00174 
00179 
00183 QString configuracion::nombre(int i) {
00184 //    _depura("configuracion::nombre", 0);
00185     if (i == CONF_BG_APUNTES)
00186         return "CONF_BG_APUNTES";
00187     if (i == CONF_FG_APUNTES)
00188         return "CONF_FG_APUNTES";
00189     if (i == CONF_BG_APUNTESA)
00190         return "CONF_BG_APUNTESA";
00191     if (i == CONF_FG_APUNTESA)
00192         return "CONF_FG_APUNTESA";
00193     if (i == CONF_FONTSIZE_APUNTES)
00194         return "CONF_FONTSIZE_APUNTES";
00195     if (i == CONF_FONTFAMILY_APUNTES)
00196         return "CONF_FONTFAMILY_APUNTES";
00197     if (i == CONF_BG_DIARIO)
00198         return "CONF_BG_DIARIO";
00199     if (i == CONF_BG_ALT_DIARIO)
00200         return "CONF_BG_ALT_DIARIO";
00201     if (i == CONF_FG_DIARIO1)
00202         return "CONF_FG_DIARIO1";
00203     if (i == CONF_FG_DIARIO2)
00204         return "CONF_FG_DIARIO2";
00205     if (i == CONF_FONTFAMILY_DIARIO)
00206         return "CONF_FONTFAMILY_DIARIO";
00207     if (i == CONF_FONTSIZE_DIARIO)
00208         return "CONF_FONTSIZE_DIARIO";
00209     if (i == CONF_CONTRAPARTIDA_DIARIO)
00210         return "CONF_CONTRAPARTIDA_DIARIO";
00211     if (i == CONF_CANAL_DIARIO)
00212         return "CONF_CANAL_DIARIO";
00213     if (i == CONF_CCOSTE_DIARIO)
00214         return "CONF_CCOSTE_DIARIO";
00215     if (i == CONF_BG_EXTRACTO)
00216         return "CONF_BG_EXTRACTO";
00217     if (i == CONF_BG_BALANCE)
00218         return "CONF_BG_BALANCE";
00219     if (i == CONF_BG_BALANCETREE)
00220         return "CONF_BG_BALANCETREE";
00221     if (i == CONF_CONTRAPARTIDA_EXTRACTO)
00222         return "CONF_CONTRAPARTIDA_EXTRACTO";
00223     if (i == CONF_CANAL_EXTRACTO)
00224         return "CONF_CANAL_EXTRACTO";
00225     if (i == CONF_CCOSTE_EXTRACTO)
00226         return "CONF_CCOSTE_EXTRACTO";
00227     if (i == CONF_CONTRAPARTIDA_APUNTES)
00228         return "CONF_CONTRAPARTIDA_APUNTES";
00229     if (i == CONF_CANAL_APUNTES)
00230         return "CONF_CANAL_APUNTES";
00231     if (i == CONF_CCOSTE_APUNTES)
00232         return "CONF_CCOSTE_APUNTES";
00233     if (i == CONF_METABASE)
00234         return "CONF_METABASE";
00235     if (i == CONF_SERVIDOR)
00236         return "CONF_SERVIDOR";
00237     if (i == CONF_PUERTO)
00238         return "CONF_PUERTO";
00239     if (i == CONF_FLIP)
00240         return "CONF_FLIP";
00241     if (i == CONF_PYTHON)
00242         return "CONF_PYTHON";
00243     if (i == CONF_DIR_TMP)
00244         return "CONF_DIR_TMP";
00245     if (i == CONF_PDF)
00246         return "CONF_PDF";
00247     if (i == CONF_NAVEGADOR)
00248         return "CONF_NAVEGADOR";
00249     if (i == CONF_EDITOR)
00250         return "CONF_EDITOR";
00251     if (i == CONF_SPLASH)
00252         return "CONF_SPLASH";
00253     if (i == CONF_SPLASH_BULMACONT)
00254         return "CONF_SPLASH_BULMACONT";
00255     if (i == CONF_SPLASH_BULMAFACT)
00256         return "CONF_SPLASH_BULMAFACT";
00257     if (i == CONF_SPLASH_BULMATPV)
00258         return "CONF_SPLASH_BULMATPV";
00259     if (i == CONF_BACKGROUND)
00260         return "CONF_BACKGROUND";
00261     if (i == CONF_EJECUTABLES)
00262         return "CONF_EJECUTABLES";
00263     if (i == CONF_PLANTILLA)
00264         return "CONF_PLANTILLA";
00265     if (i == CONF_TRADUCCION)
00266         return "CONF_TRADUCCION";
00267     if (i == CONF_DIR_TRADUCCION)
00268         return "CONF_DIR_TRADUCCION";
00269     if (i == CONF_ARCHIVO_LOG)
00270         return "CONF_ARCHIVO_LOG";
00271     if (i == CONF_DIR_REPORTS)
00272         return "CONF_DIR_REPORTS";
00273     if (i == CONF_DIR_KUGAR)
00274         return "CONF_DIR_KUGAR";
00275     if (i == CONF_DIR_OPENREPORTS)
00276         return "CONF_DIR_OPENREPORTS";
00277     if (i == CONF_PLUGINS_BULMACONT)
00278         return "CONF_PLUGINS_BULMACONT";
00279     if (i == CONF_PLUGINS_BULMAFACT)
00280         return "CONF_PLUGINS_BULMAFACT";
00281     if (i == CONF_PLUGINS_BULMAGES)
00282         return "CONF_PLUGINS_BULMAGES";
00283     if (i == CONF_PLUGINS_BULMATPV)
00284         return "CONF_PLUGINS_BULMATPV";
00285     if (i == CONF_DIR_IMG_ARTICLES)
00286         return "CONF_DIR_IMG_ARTICLES";
00287     if (i == CONF_DIR_THUMB_ARTICLES)
00288         return "CONF_DIR_THUMB_ARTICLES";
00289     if (i == CONF_DIR_IMG_PERSONAL)
00290         return "CONF_DIR_IMG_PERSONAL";
00291     if (i == CONF_FONTFAMILY_BULMAGES)
00292         return "CONF_FONTFAMILY_BULMAGES";
00293     if (i == CONF_FONTSIZE_BULMAGES)
00294         return "CONF_FONTSIZE_BULMAGES";
00295     if (i == CONF_PROGDATA)
00296         return "CONF_PROGDATA";
00297     if (i == CONF_NUM_AUT_PRESUP)
00298         return "CONF_NUM_AUT_PRESUP";
00299     if (i == CONF_NUM_AUT_FACTURA)
00300         return "CONF_NUM_AUT_FACTURA";
00301     if (i == CONF_NUM_AUT_ALBARAN)
00302         return "CONF_NUM_AUT_ALBARAN";
00303     if (i == CONF_MOSTRAR_ALMACEN)
00304         return "CONF_MOSTRAR_ALMACEN";
00305     if (i == CONF_BG_LISTPRESUPUESTOS)
00306         return "CONF_BG_LISTPRESUPUESTOS";
00307     if (i == CONF_BG_LINPRESUPUESTOS)
00308         return "CONF_BG_LINPRESUPUESTOS";
00309     if (i == CONF_BG_DESCPRESUPUESTOS)
00310         return "CONF_BG_DESCPRESUPUESTOS";
00311     if (i == CONF_BG_LISTPEDIDOSCLIENTE)
00312         return "CONF_BG_LISTPEDIDOSCLIENTE";
00313     if (i == CONF_BG_LINPEDIDOSCLIENTE)
00314         return "CONF_BG_LINPEDIDOSCLIENTE";
00315     if (i == CONF_BG_DESCPEDIDOSCLIENTE)
00316         return "CONF_BG_DESCPEDIDOSCLIENTE";
00317     if (i == CONF_BG_LISTALBARANESCLIENTE)
00318         return "CONF_BG_LISTALBARANESCLIENTE";
00319     if (i == CONF_BG_LINALBARANESCLIENTE)
00320         return "CONF_BG_LINALBARANESCLIENTE";
00321     if (i == CONF_BG_DESCALBARANESCLIENTE)
00322         return "CONF_BG_DESCALBARANESCLIENTE";
00323     if (i == CONF_BG_LISTFACTURASCLIENTE)
00324         return "CONF_BG_LISTFACTURASCLIENTE";
00325     if (i == CONF_BG_LINFACTURASCLIENTE)
00326         return "CONF_BG_LINFACTURASCLIENTE";
00327     if (i == CONF_BG_DESCFACTURASCLIENTE )
00328         return "CONF_BG_DESCFACTURASCLIENTE";
00329     if (i == CONF_BG_LISTARTICULOS)
00330         return "CONF_BG_LISTARTICULOS";
00331     if (i == CONF_DIR_CANUALES)
00332         return "CONF_DIR_CANUALES";
00333     if (i == CONF_TICKET_PRINTER_FILE)
00334         return "CONF_TICKET_PRINTER_FILE";
00335     if (i == CONF_DEBUG)
00336         return "CONF_DEBUG";
00337     if (i == CONF_ALERTAS_DB)
00338         return "CONF_ALERTAS_DB";
00339     if (i == CONF_IDCLIENTE_DEFECTO)
00340         return "CONF_IDCLIENTE_DEFECTO";
00341     if (i == CONF_IDALMACEN_DEFECTO)
00342         return "CONF_IDALMACEN_DEFECTO";
00343     if (i == CONF_IDARTICULO_DEFECTO)
00344         return "CONF_IDARTICULO_DEFECTO";
00345     return "";
00346 //    _depura("END configuracion::nombre", 0);
00347 }
00348 
00349 
00353 
00355 void configuracion::saveconfig() {
00356 //    _depura("configuracion::saveconfig", 0);
00357     QString dir1 = getenv("HOME");
00358     dir1 = dir1 + "/.bulmages/" + m_dirLocalConf;
00359 
00360     QFile file(dir1);
00361     if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
00362         return;
00363 
00364     QTextStream filestr(&file);
00365     for (int i = 0; i < 1000; i++) {
00366         if (nombre(i) != "") {
00367             filestr << nombre(i).toAscii().data();
00368             filestr << "   ";
00369             filestr << valor(i).toAscii().data();
00370             filestr << endl;
00371         } // end if
00372     } // end for
00373     file.close();
00374 //    _depura("END configuracion::saveconfig", 0);
00375 }
00376 
00377 
00381 
00385 bool configuracion::leeconfig(QString fich) {
00386 //    _depura("configuracion::leeconfig", 0);
00387     QFile arch(fich);
00388     if (arch.open(QIODevice::ReadOnly)) {
00389         fprintf(stderr, "Leyendo configuracion\n");
00390         QTextStream in(&arch);
00391         while (!in.atEnd()) {
00392             QString cad = in.readLine();
00394             while (cad.endsWith("\\")) {
00395                 cad = cad.left(cad.length() - 2) + in.readLine().trimmed();
00396             } // end while
00397 
00398             for (int i = 0; i < 1000; i++) {
00399                 if (cad.startsWith(nombre(i)) && nombre(i) != "") {
00400                     _depura("[" + nombre(i) + "]" + "--->" + cad, 0);
00401                     cad = cad.right(cad.length() - nombre(i).length());
00402                     cad = cad.trimmed();
00403                     m_valores[i] = cad;
00404                 } // end if
00405             } // end for
00406         } // end while
00407         arch.close();
00408         fprintf(stderr, "FIN Leyendo configuracion\n");
00409         return TRUE;
00410     } // end if
00411 //    _depura("END configuracion::leeconfig", 0);
00412     return FALSE;
00413 }
00414 
00415 
00417 
00421 QString configuracion::valor(int i) {
00422 //    _depura("configuracion::valor", 0);
00423     if (m_valores.contains(i)) {
00424         return (m_valores[i]);
00425     } // end if
00426     return "";
00427 //    _depura("END configuracion::valor", 0);
00428 }
00429 
00430 
00432 
00436 void configuracion::setValor(int i, QString valor) {
00437 //    _depura("configuracion::setValor", 0);
00438     m_valores[i] = valor;
00439 //    _depura("END configuracion::setValor", 0);
00440 }
00441 

Generated on Sat Dec 15 00:01:20 2007 for BulmaGes by  doxygen 1.5.1