{
QDomElement e = node.toElement();
QString tagName = e.tagName().toLower();
-
if ( tagName == QString( "serverurl" ) )
{
QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->serverUrl().toString() );
- e.replaceChild( t, e.firstChild() );
+ if ( e.childNodes().length() == 0 )
+ {
+ e.appendChild( t );
+ }
+ else
+ {
+ e.replaceChild( t, e.firstChild() );
+ }
}
else if ( tagName == QString( "username" ) )
{
QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->username() );
- e.replaceChild( t, e.firstChild() );
+ if ( e.childNodes().length() == 0 )
+ {
+ e.appendChild( t );
+ }
+ else
+ {
+ e.replaceChild( t, e.firstChild() );
+ }
}
else if ( tagName == QString( "password" ) )
{
QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->password() );
- e.replaceChild( t, e.firstChild() );
+ if ( e.childNodes().length() == 0 )
+ {
+ e.appendChild( t );
+ }
+ else
+ {
+ e.replaceChild( t, e.firstChild() );
+ }
}
else if ( tagName == QString( "refreshinterval" ) )
{
void Configuration::saveRooms( const QDomNode &aXML )
{
+ qDebug() << "saveRooms";
//! List of rooms must be cleared and rewritten again
QDomDocument doc = aXML.ownerDocument();
QDomNode root = aXML;
int count = root.childNodes().count();
QDomNode node = root.firstChild();
QDomNode next;
- for (int i=0; i<count; i++)
+ for (int i = 0; i < count; i++)
{
qDebug() << "remove " << node.toElement().text();
next = node.nextSibling();
node = root.removeChild(node);
node = next;
}
-
QList<Room*>::iterator i;
for ( i = iRooms.begin(); i != iRooms.end(); ++i )
{
QDomElement tag = doc.createElement( "room" );
- node.appendChild( tag );
+ qDebug() << "write room: " << ( *i )->name() << " to node " << node.toElement().tagName();
+ root.appendChild( tag );
// First room in the list is a dafault room
if ( i == iRooms.begin() )
if ( tagName == QString( "name" ) )
{
name = roomElem.text();
+ qDebug() << "got room: " << name;
}
else if ( tagName == QString( "address" ) )
{
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()
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.
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() );
+}