X-Git-Url: http://git.maemo.org/git/?p=qtmeetings;a=blobdiff_plain;f=src%2FUserInterface%2FViews%2FSettingsView.cpp;fp=src%2FUserInterface%2FViews%2FSettingsView.cpp;h=5471b0cfbb59a74235ff888f49041c6b677ea5ab;hp=1021d7776a60e126c3893d4cf934725d15f5854a;hb=55915c819fb472acaf93f560bad7a11a4ad89828;hpb=83a9dd48d2482f6418c3ee24ddc994b723a1ef9f diff --git a/src/UserInterface/Views/SettingsView.cpp b/src/UserInterface/Views/SettingsView.cpp index 1021d77..5471b0c 100644 --- a/src/UserInterface/Views/SettingsView.cpp +++ b/src/UserInterface/Views/SettingsView.cpp @@ -45,6 +45,9 @@ SettingsView::SettingsView( QWidget *aParent ) : 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; @@ -52,9 +55,11 @@ SettingsView::SettingsView( QWidget *aParent ) : 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() @@ -69,6 +74,11 @@ SettingsView::~SettingsView() delete iOkButton; iOkButton = 0; } + if ( iCancelButton != 0 ) + { + delete iCancelButton; + iCancelButton = 0; + } if ( iSettingsTab != 0 ) { delete iSettingsTab; @@ -159,13 +169,6 @@ QWidget *SettingsView::initSettingsTab() 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" ) ); @@ -216,19 +219,6 @@ QWidget *SettingsView::initWeekViewTab() 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; @@ -393,15 +383,47 @@ void SettingsView::handleOkClicked() 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(); } @@ -413,4 +435,46 @@ void SettingsView::viewResized(const QSize &newSize, const QSize &oldSize) // 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() ); +}