if ( tagName == QString( "serverurl" ) )
{
QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->serverUrl().toString() );
- e.replaceChild( t, e.firstChild() );
+ if ( e.hasChildNodes() )
+ {
+ e.replaceChild( t, e.firstChild() );
+ }
+ else
+ {
+ e.appendChild( e.firstChild() );
+ }
}
else if ( tagName == QString( "username" ) )
{
QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->username() );
- e.replaceChild( t, e.firstChild() );
+ if ( e.hasChildNodes() )
+ {
+ e.replaceChild( t, e.firstChild() );
+ }
+ else
+ {
+ e.appendChild( e.firstChild() );
+ }
}
else if ( tagName == QString( "password" ) )
{
QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->password() );
- e.replaceChild( t, e.firstChild() );
+ if ( e.hasChildNodes() )
+ {
+ e.replaceChild( t, e.firstChild() );
+ }
+ else
+ {
+ e.appendChild( e.firstChild() );
+ }
}
else if ( tagName == QString( "refreshinterval" ) )
{
node = next;
}
+ node = aXML;
QList<Room*>::iterator i;
for ( i = iRooms.begin(); i != iRooms.end(); ++i )
{
bool success = false;
unsigned int weekDayTmp = e.text().toUInt( &success );
- if( success && weekDayTmp >= 0 && weekDayTmp < 7)
+ if( success && weekDayTmp < 7 )
{
dayOfWeek = (DateTimeSettings::weekDay)weekDayTmp;
}
iOkButton = new QPushButton;
iOkButton->setText( tr( "OK" ) );
buttonLayout->addWidget( iOkButton );
+ iCancelButton = new QPushButton;
+ iCancelButton->setText( tr( "Cancel" ));
+ buttonLayout->addWidget( iCancelButton );
// Handle the main layout
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout( buttonLayout );
setLayout( mainLayout );
+ setValues();
// Handle component connections
connect( iOkButton, SIGNAL( clicked() ), this, SLOT( handleOkClicked() ) );
+ connect( iCancelButton, SIGNAL( clicked() ), this, SLOT( handleCancelClicked() ) );
}
SettingsView::~SettingsView()
delete iOkButton;
iOkButton = 0;
}
+ if ( iCancelButton != 0 )
+ {
+ delete iCancelButton;
+ iCancelButton = 0;
+ }
if ( iSettingsTab != 0 )
{
delete iSettingsTab;
QIntValidator *qiv = new QIntValidator( 0 );
iRefreshInterval->setValidator( qiv );
- iUserName->setText( Configuration::instance()->connectionSettings()->username() );
- iPassword->setText( Configuration::instance()->connectionSettings()->password() );
- iServerAddress->setText( Configuration::instance()->connectionSettings()->serverUrl().toString() );
- QString refreshIntervalStr;
- refreshIntervalStr.setNum( Configuration::instance()->connectionSettings()->refreshInterval() );
- iRefreshInterval->setText( refreshIntervalStr );
-
// Create the group boxes
QGroupBox *userInformationGroup = new QGroupBox( tr( "User Information" ) );
QGroupBox *serverInformationGroup = new QGroupBox( tr( "Server Information" ) );
iDayStartTime = new QTimeEdit;
iDayEndTime = new QTimeEdit;
- if ( Configuration::instance()->displaySettings()->daysInSchedule() == DisplaySettings::WeekdaysInSchedule )
- {
- iFiveDays->setChecked( true );
- iSevenDays->setChecked( false );
- }
- else
- {
- iFiveDays->setChecked( false );
- iSevenDays->setChecked( true );
- }
- iDayStartTime->setTime( Configuration::instance()->displaySettings()->dayStartsAt() );
- iDayEndTime->setTime( Configuration::instance()->displaySettings()->dayEndsAt() );
-
// Create group box and the grid layout
QGroupBox *weeklyInformation = new QGroupBox( tr( "Weekly View" ) );
QGridLayout *wgl = new QGridLayout;
QString userName = iUserName->text();
QString password = iPassword->text();
QString serverAddress = iServerAddress->text();
- QString refreshInterval = iRefreshInterval->text();
+ bool ok;
+ uint refreshInterval = iRefreshInterval->text().toUInt(&ok, 10);
bool fiveDays = iFiveDays->isChecked();
bool sevenDays = iSevenDays->isChecked();
bool powerSaveEnabled = iPowerSaveEnabled->isChecked();
- // TODO : Set the values to configuration and save it
+ // set values to Configuration
+ // set user information
+ Configuration::instance()->connectionSettings()->setUsername( userName );
+ Configuration::instance()->connectionSettings()->setPassword( password );
+
+ // set server information
+ Configuration::instance()->connectionSettings()->setServerUrl( serverAddress );
+ if ( ok )
+ {
+ Configuration::instance()->connectionSettings()->setRefreshInterval( refreshInterval );
+ }
+
+ // set weekly view settings
+ if ( fiveDays )
+ {
+ Configuration::instance()->displaySettings()->setDaysInSchedule( DisplaySettings::WeekdaysInSchedule );
+ }
+ else if ( sevenDays )
+ {
+ Configuration::instance()->displaySettings()->setDaysInSchedule( DisplaySettings::WholeWeekInSchedule );
+ }
+ Configuration::instance()->displaySettings()->setDayStartsAt( calendarStart );
+ Configuration::instance()->displaySettings()->setDayEndsAt( calendarEnd );
+
+ // set power save settings
+ Configuration::instance()->startupSettings()->setPowersavingEnabled( powerSaveEnabled );
+ Configuration::instance()->startupSettings()->setTurnOnAt( powerSaveStart );
+ Configuration::instance()->startupSettings()->setTurnOffAt( powerSaveEnd );
+
+ // save configuration
+ Configuration::instance()->save();
// Emit the signal to notify that ok is pressed and data is saved.
+ setValues();
emit okClicked();
}
// the ok button is hidden under the keyboard.
size().rheight() += iOkButton->size().height();
}
-}
\ No newline at end of file
+}
+
+void SettingsView::handleCancelClicked()
+{
+ setValues();
+ emit cancelClicked();
+}
+
+void SettingsView::setValues()
+{
+ // set user information
+ iUserName->setText( Configuration::instance()->connectionSettings()->username() );
+ iPassword->setText( Configuration::instance()->connectionSettings()->password() );
+ // set server information
+ iServerAddress->setText( Configuration::instance()->connectionSettings()->serverUrl().toString() );
+ QString refreshIntervalStr;
+ refreshIntervalStr.setNum( Configuration::instance()->connectionSettings()->refreshInterval() );
+ iRefreshInterval->setText( refreshIntervalStr );
+ // set weekly view display settings
+ if ( Configuration::instance()->displaySettings()->daysInSchedule() == DisplaySettings::WeekdaysInSchedule )
+ {
+ iFiveDays->setChecked( true );
+ iSevenDays->setChecked( false );
+ }
+ else
+ {
+ iFiveDays->setChecked( false );
+ iSevenDays->setChecked( true );
+ }
+ iDayStartTime->setTime( Configuration::instance()->displaySettings()->dayStartsAt() );
+ iDayEndTime->setTime( Configuration::instance()->displaySettings()->dayEndsAt() );
+ // set startup settings
+ if ( Configuration::instance()->startupSettings()->isPowersavingEnabled() )
+ {
+ iPowerSaveEnabled->setChecked( true );
+ }
+ else
+ {
+ iPowerSaveEnabled->setChecked( false );
+ }
+ iPowerSaveStartTime->setTime( Configuration::instance()->startupSettings()->turnOnAt() );
+ iPowerSaveEndTime->setTime( Configuration::instance()->startupSettings()->turnOffAt() );
+}