support for the new GUI controls in the server, net yet finished (still buggy)
This commit is contained in:
parent
ead06da44d
commit
c08fe59a68
9 changed files with 166 additions and 33 deletions
|
@ -49,7 +49,11 @@ CLlconServerDlg::CLlconServerDlg ( CServer* pNServP, QWidget* parent )
|
|||
vecpListViewItems[i] = new CServerListViewItem ( ListViewClients );
|
||||
vecpListViewItems[i]->setHidden ( true );
|
||||
}
|
||||
|
||||
|
||||
// update central server name line edit
|
||||
LineEditCentralServerAddress->setText (
|
||||
pServer->GetServerListCentralServerAddress() );
|
||||
|
||||
// update server name line edit
|
||||
LineEditServerName->setText ( pServer->GetServerName() );
|
||||
|
||||
|
@ -81,6 +85,16 @@ CLlconServerDlg::CLlconServerDlg ( CServer* pNServP, QWidget* parent )
|
|||
ComboBoxLocationCountry->findData (
|
||||
static_cast<int> ( pServer->GetServerCountry() ) ) );
|
||||
|
||||
// update register server check box
|
||||
if ( pServer->GetServerListEnabled() )
|
||||
{
|
||||
cbRegisterServer->setCheckState ( Qt::Checked );
|
||||
}
|
||||
else
|
||||
{
|
||||
cbRegisterServer->setCheckState ( Qt::Unchecked );
|
||||
}
|
||||
|
||||
|
||||
// Main menu bar -----------------------------------------------------------
|
||||
pMenu = new QMenuBar ( this );
|
||||
|
@ -91,6 +105,25 @@ CLlconServerDlg::CLlconServerDlg ( CServer* pNServP, QWidget* parent )
|
|||
|
||||
|
||||
// Connections -------------------------------------------------------------
|
||||
// check boxes
|
||||
QObject::connect ( cbRegisterServer, SIGNAL ( stateChanged ( int ) ),
|
||||
this, SLOT ( OnRegisterServerStateChanged ( int ) ) );
|
||||
|
||||
// line edits
|
||||
QObject::connect ( LineEditCentralServerAddress,
|
||||
SIGNAL ( textChanged ( const QString& ) ),
|
||||
this, SLOT ( OnLineEditCentralServerAddressTextChanged ( const QString& ) ) );
|
||||
|
||||
QObject::connect ( LineEditServerName, SIGNAL ( textChanged ( const QString& ) ),
|
||||
this, SLOT ( OnLineEditServerNameTextChanged ( const QString& ) ) );
|
||||
|
||||
QObject::connect ( LineEditLocationCity, SIGNAL ( textChanged ( const QString& ) ),
|
||||
this, SLOT ( OnLineEditLocationCityTextChanged ( const QString& ) ) );
|
||||
|
||||
// combo boxes
|
||||
QObject::connect ( ComboBoxLocationCountry, SIGNAL ( activated ( int ) ),
|
||||
this, SLOT ( OnComboBoxLocationCountryActivated ( int ) ) );
|
||||
|
||||
// timers
|
||||
QObject::connect ( &Timer, SIGNAL ( timeout() ), this, SLOT ( OnTimer() ) );
|
||||
|
||||
|
@ -100,6 +133,52 @@ CLlconServerDlg::CLlconServerDlg ( CServer* pNServP, QWidget* parent )
|
|||
Timer.start ( GUI_CONTRL_UPDATE_TIME );
|
||||
}
|
||||
|
||||
void CLlconServerDlg::OnRegisterServerStateChanged ( int value )
|
||||
{
|
||||
const bool bEnabled = ( value == Qt::Checked );
|
||||
|
||||
// if register server is not enabled, we disable all the configuration
|
||||
// controls for the server list
|
||||
LabelCentralServerAddress->setEnabled ( bEnabled );
|
||||
cbDefaultCentralServer->setEnabled ( bEnabled );
|
||||
LineEditCentralServerAddress->setEnabled ( bEnabled );
|
||||
GroupBoxServerInfo->setEnabled ( bEnabled );
|
||||
|
||||
// apply new setting to the server and update it
|
||||
pServer->SetServerListEnabled ( bEnabled );
|
||||
pServer->UpdateServerList();
|
||||
}
|
||||
|
||||
void CLlconServerDlg::OnLineEditCentralServerAddressTextChanged ( const QString& strNewAddr )
|
||||
{
|
||||
// apply new setting to the server and update it
|
||||
pServer->SetServerListCentralServerAddress ( strNewAddr );
|
||||
pServer->UpdateServerList();
|
||||
}
|
||||
|
||||
void CLlconServerDlg::OnLineEditServerNameTextChanged ( const QString& strNewName )
|
||||
{
|
||||
// apply new setting to the server and update it
|
||||
pServer->SetServerName ( strNewName );
|
||||
pServer->UpdateServerList();
|
||||
}
|
||||
|
||||
void CLlconServerDlg::OnLineEditLocationCityTextChanged ( const QString& strNewCity )
|
||||
{
|
||||
// apply new setting to the server and update it
|
||||
pServer->SetServerCity ( strNewCity );
|
||||
pServer->UpdateServerList();
|
||||
}
|
||||
|
||||
void CLlconServerDlg::OnComboBoxLocationCountryActivated ( int iCntryListItem )
|
||||
{
|
||||
// apply new setting to the server and update it
|
||||
pServer->SetServerCountry ( static_cast<QLocale::Country> (
|
||||
ComboBoxLocationCountry->itemData ( iCntryListItem ).toInt() ) );
|
||||
|
||||
pServer->UpdateServerList();
|
||||
}
|
||||
|
||||
void CLlconServerDlg::OnTimer()
|
||||
{
|
||||
CVector<CHostAddress> vecHostAddresses;
|
||||
|
|
|
@ -70,5 +70,10 @@ protected:
|
|||
void UpdateSliderNetBuf();
|
||||
|
||||
public slots:
|
||||
void OnRegisterServerStateChanged ( int value );
|
||||
void OnLineEditCentralServerAddressTextChanged ( const QString& strNewAddr );
|
||||
void OnLineEditServerNameTextChanged ( const QString& strNewName );
|
||||
void OnLineEditLocationCityTextChanged ( const QString& strNewCity );
|
||||
void OnComboBoxLocationCountryActivated ( int iCntryListItem );
|
||||
void OnTimer();
|
||||
};
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="CheckBoxRegisterServer" >
|
||||
<widget class="QCheckBox" name="cbRegisterServer" >
|
||||
<property name="text" >
|
||||
<string>Register Server</string>
|
||||
</property>
|
||||
|
@ -68,7 +68,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="CheckBoxDefaultCentralServer" >
|
||||
<widget class="QCheckBox" name="cbDefaultCentralServer" >
|
||||
<property name="text" >
|
||||
<string>Default</string>
|
||||
</property>
|
||||
|
@ -80,7 +80,7 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox" >
|
||||
<widget class="QGroupBox" name="GroupBoxServerInfo" >
|
||||
<property name="title" >
|
||||
<string>Server Info</string>
|
||||
</property>
|
||||
|
|
|
@ -353,6 +353,10 @@ int main ( int argc, char** argv )
|
|||
CSettings Settings ( &Server );
|
||||
Settings.Load ( strIniFileName );
|
||||
|
||||
// update server list AFTER restoring the settings from the
|
||||
// settings file
|
||||
Server.UpdateServerList();
|
||||
|
||||
// GUI object for the server
|
||||
CLlconServerDlg ServerDlg ( &Server, 0 );
|
||||
|
||||
|
@ -369,6 +373,9 @@ int main ( int argc, char** argv )
|
|||
}
|
||||
else
|
||||
{
|
||||
// update serverlist
|
||||
Server.UpdateServerList();
|
||||
|
||||
// only start application without using the GUI
|
||||
tsConsole << CAboutDlg::GetVersionAndNameStr ( false ) << endl;
|
||||
|
||||
|
|
|
@ -383,11 +383,6 @@ CServer::CServer ( const QString& strLoggingFileName,
|
|||
QObject::connect ( &vecChannels[9], SIGNAL ( PingReceived ( int ) ), this, SLOT ( OnPingReceivedCh9 ( int ) ) );
|
||||
QObject::connect ( &vecChannels[10], SIGNAL ( PingReceived ( int ) ), this, SLOT ( OnPingReceivedCh10 ( int ) ) );
|
||||
QObject::connect ( &vecChannels[11], SIGNAL ( PingReceived ( int ) ), this, SLOT ( OnPingReceivedCh11 ( int ) ) );
|
||||
|
||||
|
||||
// set enable of the server list, must be done after the connections, we use
|
||||
// the information about the enable status of the serverlist object itself
|
||||
ServerListManager.SetEnabled ( ServerListManager.GetEnabled() );
|
||||
}
|
||||
|
||||
void CServer::OnSendProtMessage ( int iChID, CVector<uint8_t> vecMessage )
|
||||
|
|
15
src/server.h
15
src/server.h
|
@ -126,6 +126,21 @@ public:
|
|||
CVector<int>& veciJitBufNumFrames,
|
||||
CVector<int>& veciNetwFrameSizeFact );
|
||||
|
||||
|
||||
// Server list management --------------------------------------------------
|
||||
void UpdateServerList() { ServerListManager.Update(); }
|
||||
|
||||
void SetServerListEnabled ( const bool bState )
|
||||
{ ServerListManager.SetEnabled ( bState ); }
|
||||
|
||||
bool GetServerListEnabled() { return ServerListManager.GetEnabled(); }
|
||||
|
||||
void SetServerListCentralServerAddress ( const QString& sNCentServAddr )
|
||||
{ ServerListManager.SetCentralServerAddress ( sNCentServAddr ); }
|
||||
|
||||
QString GetServerListCentralServerAddress()
|
||||
{ return ServerListManager.GetCentralServerAddress(); }
|
||||
|
||||
void SetServerName ( const QString& strNewName )
|
||||
{ ServerListManager.SetServerName ( strNewName ); }
|
||||
|
||||
|
|
|
@ -29,27 +29,10 @@
|
|||
CServerListManager::CServerListManager ( const QString& sNCentServAddr,
|
||||
const QString& strServerInfo,
|
||||
CProtocol* pNConLProt )
|
||||
: strCentralServerAddress ( sNCentServAddr ),
|
||||
pConnLessProtocol ( pNConLProt )
|
||||
: pConnLessProtocol ( pNConLProt )
|
||||
{
|
||||
// per definition: If the central server address is empty, the server list
|
||||
// is disabled.
|
||||
// per definition: If we are in server mode and the central server address
|
||||
// is the localhost address, we are in central server mode. For the central
|
||||
// server, the server list is always enabled.
|
||||
if ( !strCentralServerAddress.isEmpty() )
|
||||
{
|
||||
bIsCentralServer =
|
||||
( !strCentralServerAddress.toLower().compare ( "localhost" ) ||
|
||||
!strCentralServerAddress.compare ( "127.0.0.1" ) );
|
||||
|
||||
bEnabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
bIsCentralServer = false;
|
||||
bEnabled = true;
|
||||
}
|
||||
// set the central server address
|
||||
SetCentralServerAddress ( sNCentServAddr );
|
||||
|
||||
// per definition, the very first entry is this server and this entry will
|
||||
// never be deleted
|
||||
|
@ -105,11 +88,35 @@ CServerListManager::CServerListManager ( const QString& sNCentServAddr,
|
|||
this, SLOT ( OnTimerRegistering() ) );
|
||||
}
|
||||
|
||||
void CServerListManager::SetEnabled ( const bool bState )
|
||||
void CServerListManager::SetCentralServerAddress ( const QString sNCentServAddr )
|
||||
{
|
||||
QMutexLocker locker ( &Mutex );
|
||||
|
||||
bEnabled = bState;
|
||||
strCentralServerAddress = sNCentServAddr;
|
||||
|
||||
// per definition: If the central server address is empty, the server list
|
||||
// is disabled.
|
||||
// per definition: If we are in server mode and the central server address
|
||||
// is the localhost address, we are in central server mode. For the central
|
||||
// server, the server list is always enabled.
|
||||
if ( !strCentralServerAddress.isEmpty() )
|
||||
{
|
||||
bIsCentralServer =
|
||||
( !strCentralServerAddress.toLower().compare ( "localhost" ) ||
|
||||
!strCentralServerAddress.compare ( "127.0.0.1" ) );
|
||||
|
||||
bEnabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
bIsCentralServer = false;
|
||||
bEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
void CServerListManager::Update()
|
||||
{
|
||||
QMutexLocker locker ( &Mutex );
|
||||
|
||||
if ( bEnabled )
|
||||
{
|
||||
|
|
|
@ -125,9 +125,16 @@ public:
|
|||
const QString& strServerInfo,
|
||||
CProtocol* pNConLProt );
|
||||
|
||||
void SetEnabled ( const bool bState );
|
||||
// the update has to be called if any change to the server list
|
||||
// properties was done
|
||||
void Update();
|
||||
|
||||
void SetEnabled ( const bool bState ) { bEnabled = bState; }
|
||||
bool GetEnabled() const { return bEnabled; }
|
||||
|
||||
void SetCentralServerAddress ( const QString sNCentServAddr );
|
||||
QString GetCentralServerAddress() { return strCentralServerAddress; }
|
||||
|
||||
bool GetIsCentralServer() const { return bIsCentralServer; }
|
||||
|
||||
void RegisterServer ( const CHostAddress& InetAddr,
|
||||
|
|
|
@ -193,11 +193,21 @@ void CSettings::ReadIniFile ( const QString& sFileName )
|
|||
{
|
||||
// server:
|
||||
|
||||
// central server address
|
||||
pServer->SetServerListCentralServerAddress (
|
||||
GetIniSetting ( IniXMLDocument, "server", "centralservaddr" ) );
|
||||
|
||||
// server list enabled flag
|
||||
if ( GetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", bValue ) )
|
||||
{
|
||||
pServer->SetServerListEnabled ( bValue );
|
||||
}
|
||||
|
||||
// name
|
||||
pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) );
|
||||
|
||||
// city
|
||||
pServer->SetServerCity ( GetIniSetting ( IniXMLDocument, "server", "name" ) );
|
||||
pServer->SetServerCity ( GetIniSetting ( IniXMLDocument, "server", "city" ) );
|
||||
|
||||
// country
|
||||
if ( GetNumericIniSet ( IniXMLDocument, "server", "country",
|
||||
|
@ -295,6 +305,14 @@ void CSettings::WriteIniFile ( const QString& sFileName )
|
|||
{
|
||||
// server:
|
||||
|
||||
// central server address
|
||||
PutIniSetting ( IniXMLDocument, "server", "centralservaddr",
|
||||
pServer->GetServerListCentralServerAddress() );
|
||||
|
||||
// server list enabled flag
|
||||
SetFlagIniSet ( IniXMLDocument, "server", "servlistenabled",
|
||||
pServer->GetServerListEnabled() );
|
||||
|
||||
// name
|
||||
PutIniSetting ( IniXMLDocument, "server", "name",
|
||||
pServer->GetServerName() );
|
||||
|
|
Loading…
Reference in a new issue