Changeset 41d9f84


Ignore:
Timestamp:
12/02/13 13:20:41 (13 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3, releng/10.1
Children:
d388230
Parents:
17e625c
Message:

Fix the PCDM localization issue: the locale code was not being trandferred properly between the GUI and the user login process. This should now be set properly, all without touching any of the system files!

Location:
src-qt4/PCDM/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/PCDM/src/main.cpp

    r81db2a4 r41d9f84  
    7676    QString pwd = Backend::getALPassword(); 
    7777    QString dsk = Backend::getLastDE(user); 
     78    QString lang = QString( getenv("LANG") ).section(".",0,0); 
    7879    if( user.isEmpty() || dsk.isEmpty() ){ 
    7980         goodAL=FALSE;    
    8081    }else{ 
    81         desktop.loginToXSession(user,pwd, dsk); 
     82        desktop.loginToXSession(user,pwd, dsk,lang); 
    8283        splash.close(); 
    8384        if(desktop.isRunning()){ 
     
    128129    //if(USECLIBS){ QObject::connect( &w,SIGNAL(xLoginAttempt(QString,QString,QString)), &desktop,SLOT(setupDesktop(QString,QString,QString))); } 
    129130    //else{  
    130             QObject::connect( &w,SIGNAL(xLoginAttempt(QString,QString,QString)), &desktop,SLOT(loginToXSession(QString,QString,QString)) );  
     131            QObject::connect( &w,SIGNAL(xLoginAttempt(QString,QString,QString,QString)), &desktop,SLOT(loginToXSession(QString,QString,QString,QString)) );  
    131132    //} 
    132133    //Setup the signals/slots for return information for the GUI 
  • src-qt4/PCDM/src/pcdm-gui.cpp

    rf8b7298 r41d9f84  
    281281    desktop = deSwitcher->currentItem(); 
    282282  } 
     283  QLocale currLocale = this->locale(); 
     284  QString lang = currLocale.name(); 
    283285  //Disable user input while confirming login 
    284286  loginW->setEnabled(FALSE); 
     
    286288  toolbar->setEnabled(FALSE); 
    287289  //Try to login 
    288   emit xLoginAttempt(username, password, desktop); 
     290  emit xLoginAttempt(username, password, desktop, lang); 
    289291  //Return signals are connected to the slotLogin[Success/Failure] functions 
    290292   
  • src-qt4/PCDM/src/pcdm-gui.h

    rb7bd617 r41d9f84  
    8888 
    8989signals: 
    90     void xLoginAttempt(QString, QString, QString); 
     90    void xLoginAttempt(QString, QString, QString, QString); 
    9191 
    9292}; 
  • src-qt4/PCDM/src/pcdm-xprocess.cpp

    r269e8ee r41d9f84  
    3939} 
    4040 
    41 void XProcess::loginToXSession(QString username, QString password, QString desktop){ 
     41void XProcess::loginToXSession(QString username, QString password, QString desktop, QString lang){ 
    4242  //Setup the variables 
    4343  xuser = username; 
     
    4747  xshell = Backend::getUserShell(xuser); 
    4848  xde = desktop; 
     49  xlang = lang; 
    4950  //Now start the login process 
    5051  startXSession(); 
     
    163164  // Setup any specialized environment variables 
    164165  QProcessEnvironment environ = this->processEnvironment(); 
    165   // Get the current locale code 
    166   QLocale mylocale; 
    167   QString langCode = mylocale.name(); 
     166  // Check the current locale code 
     167  QString langCode = xlang; 
    168168  if( langCode.toLower() == "c" ){ langCode = "en_US"; } // default to the US english (PCDM code default), LANG=C causes problems 
    169169  if(!environ.value("MM_CHARSET").isEmpty() ){ langCode.append( "."+environ.value("MM_CHARSET") ); } 
  • src-qt4/PCDM/src/pcdm-xprocess.h

    r72c9698 r41d9f84  
    3737   
    3838  public slots: 
    39         void loginToXSession(QString, QString, QString); //user, pwd, desktop 
     39        void loginToXSession(QString, QString, QString, QString); //user, pwd, desktop, lang 
    4040        void checkPW(QString,QString); //user, pwd 
    4141        //void setupDesktop(QString,QString,QString); //user, pwd, desktop 
     
    4444        int fstatus; //fork status 
    4545        pid_t fpid;  //fork pid 
    46         QString xuser, xcmd, xhome, xpwd, xde, xshell; 
     46        QString xuser, xcmd, xhome, xpwd, xde, xshell, xlang; 
    4747        bool startXSession(); 
    4848         
Note: See TracChangeset for help on using the changeset viewer.