/* This file is part of libkcal. Copyright (c) 2004 Cornelius Schumacher Copyright (c) 2004 Till Adam Copyright (c) 2005 Reinhold Kainhofer This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "folderconfig.h" #include "folderlister.h" #include "groupwaredataadaptor.h" #include "folderlistview.h" #include #include #include #include #include #include #include #include #include #include using namespace KPIM; FolderConfig::FolderConfig( TQWidget *parent ) : TQWidget( parent ), mFolderLister( 0 ) { TQBoxLayout *topLayout = new TQVBoxLayout( this ); topLayout->addSpacing( KDialog::spacingHint() ); TQGroupBox *topBox = new TQGroupBox( 1, Qt::Horizontal, i18n("Folder Selection"), this ); topLayout->addWidget( topBox ); TQPushButton *button = new TQPushButton( i18n("Update Folder List"), topBox ); connect( button, TQT_SIGNAL( clicked() ), TQT_SIGNAL( updateFoldersClicked() ) ); mFolderList = new FolderListView( topBox ); /* TQHBox *writeBox = new TQHBox( topBox ); new TQLabel( i18n("Write to:"), writeBox ); mWriteCombo = new TQComboBox( writeBox );*/ } FolderConfig::~FolderConfig() { } void FolderConfig::setFolderLister( FolderLister *f ) { mFolderLister = f; TQValueList types; TQValueList suptypes( mFolderLister->supportedTypes() ); if ( suptypes.contains( FolderLister::Event ) ) types << FolderListView::Event; if ( suptypes.contains( FolderLister::Todo ) ) types << FolderListView::Todo; if ( suptypes.contains( FolderLister::Journal ) ) types << FolderListView::Journal; if ( suptypes.contains( FolderLister::Contact ) ) types << FolderListView::Contact; if ( suptypes.contains( FolderLister::All ) ) types << FolderListView::All; if ( suptypes.contains( FolderLister::Unknown ) ) types << FolderListView::Unknown; mFolderList->setEnabledTypes( types ); connect( mFolderLister, TQT_SIGNAL( foldersRead() ), TQT_SLOT( updateFolderList() ) ); } void FolderConfig::retrieveFolderList( const KURL &url ) { kdDebug(7000) << "FolderConfig::retrieveFolderList()" << endl; if ( !mOldFolderListerURL.isEmpty() ) return; if ( mFolderLister->adaptor() ) { mOldFolderListerURL = mFolderLister->adaptor()->baseURL(); mFolderLister->adaptor()->setBaseURL( url ); } mFolderLister->retrieveFolders( url ); } void FolderConfig::updateFolderList() { mFolderList->clear(); TQStringList write; if ( !mOldFolderListerURL.isEmpty() && mFolderLister->adaptor() ) { mFolderLister->adaptor()->setBaseURL( mOldFolderListerURL ); mOldFolderListerURL = KURL(); } FolderLister::Entry::List folders = mFolderLister->folders(); FolderLister::Entry::List::ConstIterator it; for( it = folders.begin(); it != folders.end(); ++it ) { FolderListItem *item = new FolderListItem( mFolderList, (*it) ); if ( mFolderLister->writeDestinationId( FolderLister::Event ) == (*it).id ) { item->setDefault( FolderListView::Event ); } if ( mFolderLister->writeDestinationId( FolderLister::Todo ) == (*it).id ) { item->setDefault( FolderListView::Todo ); } if ( mFolderLister->writeDestinationId( FolderLister::Journal ) == (*it).id ) { item->setDefault( FolderListView::Journal ); } if ( mFolderLister->writeDestinationId( FolderLister::Contact ) == (*it).id ) { item->setDefault( FolderListView::Contact ); } if ( mFolderLister->writeDestinationId( FolderLister::All ) == (*it).id ) { item->setDefault( FolderListView::All ); } if ( mFolderLister->writeDestinationId( FolderLister::Unknown ) == (*it).id ) { item->setDefault( FolderListView::Unknown ); } } } void FolderConfig::saveSettings() { TQPtrList lst; FolderLister::Entry::List folders; TQListViewItemIterator it( mFolderList ); while ( it.current() ) { FolderListItem *item = dynamic_cast( it.current() ); if ( item ) { FolderLister::Entry folder = item->folder(); folder.active = item->isOn(); folders.append( folder ); if ( item->isDefault( FolderListView::Event ) ) { mFolderLister->setWriteDestinationId( FolderLister::Event, folder.id ); } if ( item->isDefault( FolderListView::Todo ) ) { mFolderLister->setWriteDestinationId( FolderLister::Todo, folder.id ); } if ( item->isDefault( FolderListView::Journal ) ) { mFolderLister->setWriteDestinationId( FolderLister::Journal, folder.id ); } if ( item->isDefault( FolderListView::Contact ) ) { mFolderLister->setWriteDestinationId( FolderLister::Contact, folder.id ); } if ( item->isDefault( FolderListView::All ) ) { mFolderLister->setWriteDestinationId( FolderLister::All, folder.id ); } if ( item->isDefault( FolderListView::Unknown ) ) { mFolderLister->setWriteDestinationId( FolderLister::Unknown, folder.id ); } } ++it; } mFolderLister->setFolders( folders ); } #include "folderconfig.moc"