summaryrefslogtreecommitdiffstats
path: root/tderesources/caldav/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tderesources/caldav/config.cpp')
-rw-r--r--tderesources/caldav/config.cpp208
1 files changed, 208 insertions, 0 deletions
diff --git a/tderesources/caldav/config.cpp b/tderesources/caldav/config.cpp
new file mode 100644
index 00000000..0a07aafc
--- /dev/null
+++ b/tderesources/caldav/config.cpp
@@ -0,0 +1,208 @@
+/*=========================================================================
+| 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 <tqlabel.h>
+#include <tqlayout.h>
+#include <tqcheckbox.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" << '\n';
+ }
+
+ return res;
+}
+
+CalDavPrefs* ResourceCalDavConfig::getPrefs(ResourceCalDav* res) {
+ CalDavPrefs* p = NULL;
+
+ if (res) {
+ p = res->prefs();
+ if (!p) {
+ kdDebug() << "CalDAV: res->prefs() returned NULL" << '\n';
+ }
+ }
+
+ return p;
+}
+
+/*=========================================================================
+| CONSTRUCTOR / DESTRUCTOR
+ ========================================================================*/
+
+ResourceCalDavConfig::ResourceCalDavConfig( TQWidget *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());
+ mTasksUrl->setText(p->tasksUrl());
+ mJournalsUrl->setText(p->journalsUrl());
+ mUseSTasks->setChecked(p->useSTasks());
+ mUseSJournals->setChecked(p->useSJournals());
+
+ 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());
+ p->setTasksUrl(mTasksUrl->text());
+ p->setUseSTasks(mUseSTasks->isChecked());
+ p->setJournalsUrl(mJournalsUrl->text());
+ p->setUseSJournals(mUseSJournals->isChecked());
+ }
+ }
+}
+
+void ResourceCalDavConfig::setupUI() {
+ TQVBoxLayout *vertical = new TQVBoxLayout(this);
+
+ TQGridLayout *mainLayout = new TQGridLayout( this );
+
+ // URL
+ TQLabel *label = new TQLabel( i18n( "URL:" ), this );
+ mUrl = new TQLineEdit( this );
+ mainLayout->addWidget( label, 1, 0 );
+ mainLayout->addWidget( mUrl, 1, 1 );
+
+ // Tasks URL
+ TQLabel *tlabel = new TQLabel( i18n( "Tasks URL:" ), this );
+ mTasksUrl = new TQLineEdit( this );
+ mainLayout->addWidget( tlabel, 3, 0 );
+ mainLayout->addWidget( mTasksUrl, 3, 1 );
+
+ // Use Task URL checkbox
+ mUseSTasks = new TQCheckBox( i18n("Use separate Tasks URL"), this );
+ mainLayout->addWidget(mUseSTasks, 2, 0 );
+
+ // Journals URL
+ TQLabel *jlabel = new TQLabel( i18n( "Journals URL:" ), this );
+ mJournalsUrl = new TQLineEdit( this );
+ mainLayout->addWidget( jlabel, 5, 0 );
+ mainLayout->addWidget( mJournalsUrl, 5, 1 );
+
+ // Use Journal URL checkbox
+ mUseSJournals = new TQCheckBox( i18n("Use separate Journals URL"), this );
+ mainLayout->addWidget(mUseSJournals, 4, 0 );
+
+ // Username
+ label = new TQLabel( i18n( "Username:" ), this );
+ mUsername = new TQLineEdit( this );
+ mainLayout->addWidget( label, 6, 0 );
+ mainLayout->addWidget( mUsername, 6, 1 );
+
+ // Password
+ label = new TQLabel( i18n( "Password:" ), this );
+ mPassword = new TQLineEdit( this );
+ mPassword->setEchoMode( TQLineEdit::Password );
+ mainLayout->addWidget( label, 7, 0 );
+ mainLayout->addWidget( mPassword, 7, 1 );
+
+ // Remember password checkbox
+ mRememberPassword = new TQCheckBox( i18n("Remember password"), this );
+ mainLayout->addWidget(mRememberPassword, 8, 1);
+
+ mTasksUrl->setEnabled(mUseSTasks->isChecked());
+ connect( mUseSTasks, TQT_SIGNAL( toggled( bool ) ),
+ TQT_SLOT( slotSTasksToggled( bool ) ) );
+
+ mJournalsUrl->setEnabled(mUseSJournals->isChecked());
+ connect( mUseSJournals, TQT_SIGNAL( toggled( bool ) ),
+ TQT_SLOT( slotSJournalsToggled( bool ) ) );
+
+ // configs
+ TQHBoxLayout* horizontal = new TQHBoxLayout(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);
+}
+
+void ResourceCalDavConfig::slotSTasksToggled( bool enabled ) {
+ mTasksUrl->setEnabled(enabled);
+}
+
+void ResourceCalDavConfig::slotSJournalsToggled( bool enabled ) {
+ mJournalsUrl->setEnabled(enabled);
+}
+
+#include "config.moc"
+
+// EOF ========================================================================