CHANGED: #1471 CDBGroupComboBox no longer depends on the isLoggedin global Ryzom game variable.
This commit is contained in:
parent
f5091dacd4
commit
88f45b1ae4
5 changed files with 53 additions and 33 deletions
|
@ -1351,6 +1351,7 @@ void CFarTP::onDssDown(bool forceReturn)
|
|||
}
|
||||
|
||||
extern bool loginFinished;
|
||||
void setLoginFinished( bool f );
|
||||
extern bool loginOK;
|
||||
|
||||
void CFarTP::joinSessionResult(uint32 /* userId */, TSessionId /* sessionId */, uint32 /* result */, const std::string &/* shardAddr */, const std::string &/* participantStatus */)
|
||||
|
@ -1365,7 +1366,7 @@ void CFarTP::joinSessionResult(uint32 /* userId */, TSessionId /* sessionId */,
|
|||
//
|
||||
// FSAddr = shardAddr;
|
||||
//
|
||||
// loginFinished = true;
|
||||
// setLoginFinished( true );
|
||||
// loginOK = true;
|
||||
//
|
||||
// LoginSM.pushEvent(CLoginStateMachine::ev_connect);
|
||||
|
|
|
@ -15,24 +15,22 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
#include "stdpch.h"
|
||||
#include "dbgroup_combo_box.h"
|
||||
#include "nel/gui/group_menu.h"
|
||||
#include "nel/misc/xml_auto_ptr.h"
|
||||
#include "interface_manager.h"
|
||||
#include "nel/gui/ctrl_button.h"
|
||||
#include "nel/gui/action_handler.h"
|
||||
#include "nel/gui/lua_ihm.h"
|
||||
|
||||
#include "nel/gui/lua_ihm.h"
|
||||
#include "nel/gui/widget_manager.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace NLMISC;
|
||||
|
||||
NLMISC_REGISTER_OBJECT(CViewBase, CDBGroupComboBox, std::string, "combo_box");
|
||||
|
||||
extern bool loginFinished;
|
||||
std::string CDBGroupComboBox::measureMenu;
|
||||
std::string CDBGroupComboBox::selectMenu;
|
||||
std::string CDBGroupComboBox::selectMenuOut;
|
||||
|
||||
// ***************************************************************************
|
||||
CDBGroupComboBox::CDBGroupComboBox(const TCtorParam ¶m)
|
||||
|
@ -56,9 +54,8 @@ CDBGroupComboBox::~CDBGroupComboBox()
|
|||
// ***************************************************************************
|
||||
sint32 CDBGroupComboBox::evalContentWidth() const
|
||||
{
|
||||
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||
// get the menu to open.
|
||||
CGroupMenu *groupMenu= dynamic_cast<CGroupMenu*>(CWidgetManager::getInstance()->getElementFromId( loginFinished ? WIN_COMBO_BOX_MEASURE_MENU : WIN_COMBO_BOX_MEASURE_MENU_LOGIN ));
|
||||
CGroupMenu *groupMenu= dynamic_cast<CGroupMenu*>(CWidgetManager::getInstance()->getElementFromId( CDBGroupComboBox::measureMenu ));
|
||||
if( !groupMenu )
|
||||
{
|
||||
return 0;
|
||||
|
@ -543,7 +540,6 @@ class CHandlerComboBoxSelectStart : public IActionHandler
|
|||
public:
|
||||
virtual void execute (CCtrlBase *pCaller, const std::string &/* Params */)
|
||||
{
|
||||
CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
||||
CDBGroupComboBox *pCB = dynamic_cast<CDBGroupComboBox*>(pCaller->getParent());
|
||||
if (pCB == NULL) return;
|
||||
// if no choice, return.
|
||||
|
@ -551,10 +547,10 @@ public:
|
|||
return;
|
||||
|
||||
// get the menu to open.
|
||||
CGroupMenu *groupMenu= dynamic_cast<CGroupMenu*>(CWidgetManager::getInstance()->getElementFromId(loginFinished ? WIN_COMBO_BOX_SELECT_MENU: WIN_COMBO_BOX_SELECT_MENU_LOGIN ));
|
||||
CGroupMenu *groupMenu= dynamic_cast<CGroupMenu*>(CWidgetManager::getInstance()->getElementFromId( CDBGroupComboBox::selectMenu ));
|
||||
if( !groupMenu )
|
||||
{
|
||||
groupMenu= dynamic_cast<CGroupMenu*>(CWidgetManager::getInstance()->getElementFromId(WIN_COMBO_BOX_SELECT_MENU_OUTGAME));
|
||||
groupMenu= dynamic_cast<CGroupMenu*>(CWidgetManager::getInstance()->getElementFromId( CDBGroupComboBox::selectMenuOut ));
|
||||
}
|
||||
if( !groupMenu )
|
||||
return;
|
||||
|
@ -606,7 +602,6 @@ class CHandlerComboBoxSelectEnd : public IActionHandler
|
|||
public:
|
||||
virtual void execute (CCtrlBase * /* pCaller */, const std::string &Params)
|
||||
{
|
||||
CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
||||
CDBGroupComboBox *pCB = dynamic_cast<CDBGroupComboBox*>(CWidgetManager::getInstance()->getCtrlLaunchingModal());
|
||||
if (pCB == NULL) return;
|
||||
|
||||
|
|
|
@ -30,17 +30,6 @@ namespace NLGUI
|
|||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
#define WIN_COMBO_BOX_SELECT_MENU "ui:interface:combo_box_select_menu"
|
||||
#define WIN_COMBO_BOX_MEASURE_MENU "ui:interface:combo_box_measure_menu"
|
||||
|
||||
#define WIN_COMBO_BOX_SELECT_MENU_OUTGAME "ui:outgame:combo_box_select_menu"
|
||||
|
||||
#define WIN_COMBO_BOX_SELECT_MENU_LOGIN "ui:login:combo_box_select_menu"
|
||||
#define WIN_COMBO_BOX_MEASURE_MENU_LOGIN "ui:login:combo_box_measure_menu"
|
||||
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
/**
|
||||
* Widget: ComboBox of text
|
||||
|
@ -155,12 +144,16 @@ protected:
|
|||
|
||||
|
||||
private:
|
||||
|
||||
void setup();
|
||||
void dirt();
|
||||
public:
|
||||
// private : fill a menu with current content
|
||||
void fillMenu(CGroupMenu *groupMenu) const;
|
||||
|
||||
|
||||
static std::string measureMenu;
|
||||
static std::string selectMenu;
|
||||
static std::string selectMenuOut;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -174,6 +174,7 @@ using namespace NLNET;
|
|||
// ------------------------------------------------------------------------------------------------
|
||||
|
||||
extern bool loginFinished;
|
||||
void setLoginFinished( bool f );
|
||||
// Edit actions
|
||||
CActionsManager EditActions;
|
||||
|
||||
|
@ -788,7 +789,7 @@ void badXMLParseMessageBox()
|
|||
// ------------------------------------------------------------------------------------------------
|
||||
void CInterfaceManager::initInGame()
|
||||
{
|
||||
loginFinished = true;
|
||||
setLoginFinished( true );
|
||||
_LogState = false;
|
||||
|
||||
// Whole initInGame profile
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "nel/gui/view_text.h"
|
||||
#include "nel/gui/ctrl_button.h"
|
||||
#include "nel/gui/ctrl_text_button.h"
|
||||
#include "interface_v3/dbgroup_combo_box.h"
|
||||
#include "sound_manager.h"
|
||||
#include "far_tp.h"
|
||||
|
||||
|
@ -143,6 +144,33 @@ uint32 TotalPatchSize;
|
|||
|
||||
CLoginStateMachine LoginSM;
|
||||
|
||||
// ***************************************************************************
|
||||
#define WIN_COMBO_BOX_SELECT_MENU "ui:interface:combo_box_select_menu"
|
||||
#define WIN_COMBO_BOX_MEASURE_MENU "ui:interface:combo_box_measure_menu"
|
||||
#define WIN_COMBO_BOX_SELECT_MENU_OUTGAME "ui:outgame:combo_box_select_menu"
|
||||
#define WIN_COMBO_BOX_SELECT_MENU_LOGIN "ui:login:combo_box_select_menu"
|
||||
#define WIN_COMBO_BOX_MEASURE_MENU_LOGIN "ui:login:combo_box_measure_menu"
|
||||
|
||||
bool isLoginFinished()
|
||||
{
|
||||
return loginFinished;
|
||||
}
|
||||
|
||||
void setLoginFinished( bool f )
|
||||
{
|
||||
loginFinished = f;
|
||||
if( loginFinished )
|
||||
{
|
||||
CDBGroupComboBox::measureMenu.assign( WIN_COMBO_BOX_MEASURE_MENU );
|
||||
CDBGroupComboBox::selectMenu.assign( WIN_COMBO_BOX_SELECT_MENU );
|
||||
}
|
||||
else
|
||||
{
|
||||
CDBGroupComboBox::measureMenu.assign( WIN_COMBO_BOX_MEASURE_MENU_LOGIN );
|
||||
CDBGroupComboBox::selectMenu.assign( WIN_COMBO_BOX_SELECT_MENU_LOGIN );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
// Pop a fatal error message box, giving the option to 'quit' the client, plus a help button
|
||||
|
@ -349,6 +377,7 @@ static void updatePatchingInfoText(const std::string &baseUIPath)
|
|||
// Main loop of the login step
|
||||
void loginMainLoop()
|
||||
{
|
||||
CDBGroupComboBox::selectMenuOut.assign( WIN_COMBO_BOX_SELECT_MENU_OUTGAME );
|
||||
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||
CPatchManager *pPM = CPatchManager::getInstance();
|
||||
|
||||
|
@ -757,7 +786,7 @@ void initLoginScreen()
|
|||
CCtrlTextButton *pCB = dynamic_cast<CCtrlTextButton*>(CWidgetManager::getInstance()->getElementFromId(CTRL_BUTTON_CONNECT));
|
||||
if (pCB != NULL) pCB->setActive(false);
|
||||
|
||||
loginFinished = false;
|
||||
setLoginFinished( false );
|
||||
loginOK = false;
|
||||
}
|
||||
|
||||
|
@ -882,6 +911,7 @@ bool login()
|
|||
// CCtrlTextButton *pCB = dynamic_cast<CCtrlTextButton*>(CWidgetManager::getInstance()->getElementFromId(CTRL_BUTTON_CONNECT));
|
||||
// if (pCB != NULL) pCB->setActive(false);
|
||||
//
|
||||
// setLoginFinished( false );
|
||||
// loginFinished = false;
|
||||
// loginOK = false;
|
||||
|
||||
|
@ -1280,7 +1310,7 @@ class CAHOnGameConfiguration : public IActionHandler
|
|||
{
|
||||
// launch the ryzom configurator
|
||||
launchProgram(Configurator, "");
|
||||
loginFinished = true;
|
||||
setLoginFinished( true );
|
||||
loginOK = false;
|
||||
|
||||
LoginSM.pushEvent(CLoginStateMachine::ev_quit);
|
||||
|
@ -1301,7 +1331,7 @@ class CAHLoginQuit : public IActionHandler
|
|||
{
|
||||
nlinfo("CAHLoginQuit called");
|
||||
|
||||
loginFinished = true;
|
||||
setLoginFinished( true );
|
||||
loginOK = false;
|
||||
|
||||
LoginSM.pushEvent(CLoginStateMachine::ev_quit);
|
||||
|
@ -1400,7 +1430,7 @@ void ConnectToShard()
|
|||
if (ClientCfg.R2Mode)
|
||||
{
|
||||
// r2 mode
|
||||
loginFinished = true;
|
||||
setLoginFinished( true );
|
||||
loginOK = true;
|
||||
|
||||
LoginSM.pushEvent(CLoginStateMachine::ev_enter_game);
|
||||
|
@ -1414,7 +1444,7 @@ void ConnectToShard()
|
|||
|
||||
if(res.empty())
|
||||
{
|
||||
loginFinished = true;
|
||||
setLoginFinished( true );
|
||||
loginOK = true;
|
||||
|
||||
LoginSM.pushEvent(CLoginStateMachine::ev_enter_game);
|
||||
|
@ -2625,7 +2655,7 @@ class CAHOnConnectToShard: public IActionHandler
|
|||
Cookie[i] = '|';
|
||||
}
|
||||
|
||||
loginFinished = true;
|
||||
setLoginFinished( true );
|
||||
loginOK = true;
|
||||
|
||||
LoginSM.pushEvent(CLoginStateMachine::ev_connect);
|
||||
|
@ -2639,7 +2669,7 @@ class CAHOnBackToLogin: public IActionHandler
|
|||
{
|
||||
virtual void execute (CCtrlBase * /* pCaller */, const string &/* Params */)
|
||||
{
|
||||
loginFinished = false;
|
||||
setLoginFinished( false );
|
||||
loginOK = false;
|
||||
LoginSM.pushEvent(CLoginStateMachine::ev_relog);
|
||||
|
||||
|
|
Loading…
Reference in a new issue