// -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*- /* This file is part of the KDE project Copyright (C) 1998, 1999 Reginald Stadlbauer 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 "KPrGotoPage.h" #include #include #include #include #include #include #include "KPrDocument.h" #include "KPrPage.h" KPrGotoPage::KPrGotoPage( const KPrDocument *doc, const TQValueList &slides, int start, TQWidget *tqparent, const char *name ) : KDialogBase( tqparent, name, true, i18n("Goto Slide..."), Ok|Cancel), oldPage(start) { TQWidget *page = new TQWidget( this ); setMainWidget(page); TQVBoxLayout *ml = new TQVBoxLayout( page, KDialog::marginHint(), KDialog::spacingHint()); TQLabel *label = new TQLabel( i18n( "Go to slide:" ), page ); ml->addWidget( label ); spinbox = new TQListBox( page ); connect( spinbox, TQT_SIGNAL(doubleClicked( TQListBoxItem* )), this, TQT_SLOT(accept()) ); connect( spinbox, TQT_SIGNAL(returnPressed( TQListBoxItem* )), this, TQT_SLOT(accept()) ); ml->addWidget( spinbox ); TQPtrList pageList = doc->getPageList(); // because of const doc, we can't do doc->pageList()->at() TQValueList::ConstIterator it = slides.begin(); for ( ; it != slides.end(); ++it ) { TQString t( pageList.at( (*it) - 1 )->pageTitle() ); // cut ultra long titles... if(t.length() > 30) { t.truncate(30); t+="..."; } spinbox->insertItem( TQString( "%1 - %2" ).tqarg( *it ).tqarg( t ), -1 ); if ( *it == start ) spinbox->setCurrentItem( spinbox->count()-1 ); } if ( tqparent ) tqparent->setCursor( TQt::forbiddenCursor ); } int KPrGotoPage::gotoPage( const KPrDocument *doc, const TQValueList &slides, int start, TQWidget *tqparent) { KPrGotoPage dia( doc, slides, start,tqparent, 0L ); dia.exec(); dia.resetCursor(); return dia.page(); } int KPrGotoPage::page() const { if(result()==TQDialog::Accepted) return spinbox->currentText().left( spinbox->currentText().tqfind( "-" ) - 1 ).toInt(); return oldPage; } void KPrGotoPage::resetCursor() { if ( parentWidget() ) parentWidget()->setCursor( TQt::blankCursor ); }