You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepim/kresources/caldav/config.cpp

163 lines
4.9 KiB

/*=========================================================================
| KCalDAV
|--------------------------------------------------------------------------
| (c) 2010 Timothy Pearson
| (c) 2009 Kumaran Santhanam (initial KDE4 version)
|
| This project is released under the GNU General Public License.
| Please see the file COPYING for more details.
|--------------------------------------------------------------------------
| Configuration and properties dialog
========================================================================*/
/*=========================================================================
| INCLUDES
========================================================================*/
#include "resource.h"
#include "config.h"
#include "configwidgets.h"
#include <kcombobox.h>
#include <kdebug.h>
#include <kdialog.h>
#include <klocale.h>
#include <klineedit.h>
#include <klistview.h>
#include <kurlrequester.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qcheckbox.h>
/*=========================================================================
| NAMESPACE
========================================================================*/
using namespace KCal;
/*=========================================================================
| CONSTANTS
========================================================================*/
/*=========================================================================
| STATIC METHODS
========================================================================*/
ResourceCalDav* ResourceCalDavConfig::getCalDavResource(KRES::Resource* resource) {
ResourceCalDav *res = dynamic_cast<ResourceCalDav *>( resource );
if (!res) {
kdDebug() << "invalid resource type";
}
return res;
}
CalDavPrefs* ResourceCalDavConfig::getPrefs(ResourceCalDav* res) {
CalDavPrefs* p = NULL;
if (res) {
p = res->prefs();
if (!p) {
kdDebug() << "CalDAV: res->prefs() returned NULL";
}
}
return p;
}
/*=========================================================================
| CONSTRUCTOR / DESTRUCTOR
========================================================================*/
ResourceCalDavConfig::ResourceCalDavConfig( QWidget *parent )
: KRES::ConfigWidget( parent )
{
setupUI();
}
/*=========================================================================
| METHODS
========================================================================*/
void ResourceCalDavConfig::loadSettings( KRES::Resource *resource ) {
ResourceCalDav* res = getCalDavResource(resource);
CalDavPrefs* p = getPrefs(res);
if (NULL != p) {
mUrl->setText(p->url());
mUsername->setText(p->username());
mRememberPassword->setChecked(p->rememberPassword());
mPassword->setText(p->password());
mReloadConfig->loadSettings(res);
mSaveConfig->loadSettings(res);
}
}
void ResourceCalDavConfig::saveSettings( KRES::Resource *resource ) {
ResourceCalDav* res = getCalDavResource(resource);
if (NULL != res) {
mReloadConfig->saveSettings(res);
mSaveConfig->saveSettings(res);
CalDavPrefs* p = getPrefs(res);
if (NULL != p) {
p->setUrl(mUrl->text());
p->setUsername(mUsername->text());
p->setRememberPassword(mRememberPassword->isChecked());
p->setPassword(mPassword->text());
}
}
}
void ResourceCalDavConfig::setupUI() {
QVBoxLayout *vertical = new QVBoxLayout(this);
QGridLayout *mainLayout = new QGridLayout( this );
// URL
QLabel *label = new QLabel( i18n( "URL:" ), this );
mUrl = new QLineEdit( this );
mainLayout->addWidget( label, 1, 0 );
mainLayout->addWidget( mUrl, 1, 1 );
// Username
label = new QLabel( i18n( "Username:" ), this );
mUsername = new QLineEdit( this );
mainLayout->addWidget( label, 2, 0 );
mainLayout->addWidget( mUsername, 2, 1 );
// Password
label = new QLabel( i18n( "Password:" ), this );
mPassword = new QLineEdit( this );
mPassword->setEchoMode( QLineEdit::Password );
mainLayout->addWidget( label, 3, 0 );
mainLayout->addWidget( mPassword, 3, 1 );
// Remember password checkbox
mRememberPassword = new QCheckBox( i18n("Remember password"), this );
mainLayout->addWidget(mRememberPassword, 4, 1);
// configs
QHBoxLayout* horizontal = new QHBoxLayout(this);
// Reload config
mReloadConfig = new CalDavReloadConfig(this);
horizontal->addWidget(mReloadConfig);
// Save config
mSaveConfig = new CalDavSaveConfig(this);
horizontal->addWidget(mSaveConfig);
// FIXME: This feature does not work; hide the UI elements for later use
mRememberPassword->hide();
label->hide();
mPassword->hide();
// combining layouts
vertical->addLayout(mainLayout);
vertical->addLayout(horizontal);
}
// EOF ========================================================================