/* This file is part of the KDE project Copyright (C) 2004 Tobias Koenig 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 #include #include #include #include #include #include #include "kwmailmerge_kspread.h" #include "kwmailmerge_kspread_config.h" using namespace KSpread; KWMailMergeKSpreadConfig::KWMailMergeKSpreadConfig( TQWidget *parent, KWMailMergeKSpread *object ) : KDialogBase( Plain, i18n( "Mail Merge - Editor" ), Ok | Cancel, Ok, parent, "", true ), _document( 0 ), _initialPage( 1 ) { _object = object; initGUI(); _urlRequester->setURL( _object->url().url() ); _initialPage = _object->spreadSheetNumber(); connect( _urlRequester, TQT_SIGNAL( urlSelected( const TQString& ) ), TQT_SLOT( loadDocument() ) ); loadDocument(); slotTextChanged( _urlRequester->lineEdit()->text() ); } KWMailMergeKSpreadConfig::~KWMailMergeKSpreadConfig() { } void KWMailMergeKSpreadConfig::slotOk() { _object->setURL( _urlRequester->url() ); _object->setSpreadSheetNumber( _pageNumber->currentText().toInt() ); KDialogBase::slotOk(); } void KWMailMergeKSpreadConfig::loadDocument() { delete _document; _document = 0; _pageNumber->setEnabled( false ); if ( !_urlRequester->url().isEmpty() ) { _document = new Doc(); connect( _document, TQT_SIGNAL( completed() ), TQT_SLOT( documentLoaded() ) ); _document->openURL( _urlRequester->url() ); } } void KWMailMergeKSpreadConfig::documentLoaded() { _pageNumber->clear(); TQPtrListIterator it( _document->map()->sheetList() ); int counter = 1; for ( it.toFirst(); it.current(); ++it ) { _pageNumber->insertItem( TQString::number( counter ) ); counter++; } _pageNumber->setEnabled( true ); _pageNumber->setCurrentText( TQString::number( _initialPage ) ); } void KWMailMergeKSpreadConfig::initGUI() { TQFrame *page = plainPage(); TQGridLayout *layout = new TQGridLayout( page, 2, 2, marginHint(), spacingHint() ); TQLabel *label = new TQLabel( i18n( "URL:" ), page ); layout->addWidget( label, 0, 0 ); _urlRequester = new KURLRequester( page ); layout->addWidget( _urlRequester, 0, 1 ); label = new TQLabel( i18n( "Page number:" ), page ); layout->addWidget( label, 1, 0 ); _pageNumber = new KComboBox( page ); _pageNumber->setEnabled( false ); layout->addWidget( _pageNumber, 1, 1 ); connect( _urlRequester->lineEdit() , TQT_SIGNAL( textChanged ( const TQString & ) ), this, TQT_SLOT( slotTextChanged( const TQString & ) ) ); } void KWMailMergeKSpreadConfig::slotTextChanged( const TQString & _text ) { enableButtonOK( !_text.isEmpty() ); } #include "kwmailmerge_kspread_config.moc"