26#include <tqpopupmenu.h>
28#include <tqtabwidget.h>
32#include <tdemessagebox.h>
34#include <kinputdialog.h>
35#include <knotifyclient.h>
39#include "KPrSideBar.h"
41#include "KPrDocument.h"
45#include <tqapplication.h>
46#include "KPrCommand.h"
47#include <tqvalidator.h>
48#include "KPrFreehandObject.h"
49#include "KPrBezierCurveObject.h"
50#include "KPrTextObject.h"
51#include "KPrPolylineObject.h"
52#include "KPrClosedLineObject.h"
53#include "KPrGroupObject.h"
56TQValidator::State KPrRenamePageValidator::validate( TQString & input,
int& )
const
58 TQString str = input.stripWhiteSpace();
62 if ( mStringList.find( str ) == mStringList.end() )
68class ThumbToolTip :
public TQToolTip
71 ThumbToolTip( KPrThumbBar *parent )
72 : TQToolTip( parent->viewport() )
73 , m_thumbBar( parent )
77 void maybeTip(
const TQPoint &pos)
80 TQRect r( m_thumbBar->tip( pos, title ) );
87 KPrThumbBar *m_thumbBar;
91class OutlineSlideItem:
public TDEListViewItem
94 OutlineSlideItem( TDEListView * parent, KPrPage* page,
bool _masterPage );
95 OutlineSlideItem( TDEListView * parent, OutlineSlideItem *after, KPrPage* page,
bool _masterPage );
97 KPrPage* page()
const {
return m_page; }
99 void setPage( KPrPage* p );
109class OutlineObjectItem:
public TDEListViewItem
112 OutlineObjectItem( OutlineSlideItem * parent, KPrObject*
object,
113 const TQString& name = TQString() );
115 KPrObject* object()
const {
return m_object; }
117 void setObject( KPrObject* o );
123class ThumbItem :
public TQIconViewItem
126 ThumbItem( TQIconView *parent,
const TQString & text,
const TQPixmap & icon )
127 : TQIconViewItem( parent, text, icon )
129 ThumbItem( TQIconView *parent, TQIconViewItem *after,
const TQString & text,
const TQPixmap & icon )
130 : TQIconViewItem( parent, after, text, icon )
133 virtual bool isUptodate() {
return uptodate; };
134 virtual void setUptodate(
bool _uptodate) { uptodate = _uptodate; };
140KPrSideBar::KPrSideBar(TQWidget *parent, KPrDocument *d, KPrView *v)
141 :TQTabWidget(parent), m_doc(d), m_view(v)
143 setTabPosition(TQTabWidget::Top);
144 setTabShape(TQTabWidget::Triangular);
146 m_outline =
new KPrOutline(
this, m_doc, m_view);
147 addTab(m_outline, i18n(
"Structure of the presentation",
"Outline"));
149 m_thb =
new KPrThumbBar(
this, m_doc, m_view);
150 addTab(m_thb,i18n(
"Preview"));
154 connect(m_outline, TQ_SIGNAL(showPage(
int)),
155 this, TQ_SIGNAL(showPage(
int)));
157 connect(m_thb, TQ_SIGNAL(showPage(
int)),
158 this, TQ_SIGNAL(showPage(
int)));
160 connect(m_outline, TQ_SIGNAL(movePage(
int,
int)),
161 this, TQ_SIGNAL(movePage(
int,
int)));
163 connect(m_outline, TQ_SIGNAL(selectPage(
int,
bool)),
164 this, TQ_SIGNAL(selectPage(
int,
bool)));
166 connect(
this, TQ_SIGNAL(currentChanged(TQWidget *)),
167 this, TQ_SLOT(currentChanged(TQWidget *)));
171void KPrSideBar::currentChanged(TQWidget *tab)
174 if (!m_thb->uptodate && m_thb->isVisible())
175 m_thb->rebuildItems();
177 m_thb->refreshItems();
181void KPrSideBar::addItem(
int pos )
183 m_outline->addItem( pos );
184 m_thb->addItem( pos );
187void KPrSideBar::moveItem(
int oldPos,
int newPos )
189 m_outline->moveItem( oldPos, newPos );
190 m_thb->moveItem( oldPos, newPos );
193void KPrSideBar::removeItem(
int pos )
195 m_outline->removeItem( pos );
196 m_thb->removeItem( pos );
199void KPrSideBar::updateItem( KPrPage *page )
203 if ( page == m_doc->masterPage() )
210 pos = m_doc->pageList().findRef( page );
213 m_outline->updateItem( pos, sticky );
214 m_thb->updateItem( pos, sticky );
217void KPrSideBar::setViewMasterPage(
bool _masterPage )
219 m_outline->setViewMasterPage( _masterPage );
220 m_thb->setViewMasterPage( _masterPage );
221 m_outline->rebuildItems();
222 m_thb->rebuildItems();
225KPrSideBarBase::KPrSideBarBase(KPrDocument *_doc, KPrView *_view)
226 : m_doc( _doc ), m_view( _view ), m_viewMasterPage( false )
230void KPrSideBarBase::setViewMasterPage(
bool _b )
232 m_viewMasterPage = _b;
235KPrThumbBar::KPrThumbBar(TQWidget *parent, KPrDocument *d, KPrView *v)
236 :TDEIconView(parent), KPrSideBarBase( d,v)
242 setArrangement(TQIconView::LeftToRight);
243 setAutoArrange(
true);
245 setItemsMovable(
false);
246 setResizeMode(TQIconView::Adjust);
248 m_thumbTip =
new ThumbToolTip(
this);
250 connect(
this, TQ_SIGNAL(currentChanged(TQIconViewItem *)),
251 this, TQ_SLOT(itemClicked(TQIconViewItem *)));
252 connect(
this, TQ_SIGNAL(contentsMoving(
int,
int)),
253 this, TQ_SLOT(slotContentsMoving(
int,
int)));
256KPrThumbBar::~KPrThumbBar()
261void KPrThumbBar::setCurrentPage(
int pg )
263 for ( TQIconViewItem *it = firstItem(); it; it = it->nextItem() )
265 if ( it->text().toInt() - 1 == pg ) {
266 blockSignals(
true );
267 setCurrentItem( it );
268 setSelected( it,
false );
269 ensureItemVisible(it);
271 blockSignals(
false );
277TQRect KPrThumbBar::tip(
const TQPoint &pos, TQString &title)
279 TQIconViewItem *item = findItem(viewportToContents(pos));
281 return TQRect(0, 0, -1, -1);
283 int pagenr = item->index();
284 title = m_doc->pageList().at(pagenr)->pageTitle();
286 TQRect r = item->pixmapRect(
false);
287 r = TQRect(contentsToViewport(TQPoint(r.x(), r.y())), TQSize(r.width(), r.height()));
291void KPrThumbBar::rebuildItems()
293 kdDebug()<<
" void KPrThumbBar::rebuildItems() beofre \n";
296 kdDebug(33001) <<
"KPrThumbBar::rebuildItems" << endl;
298 TQApplication::setOverrideCursor( TQt::waitCursor );
301 if ( m_viewMasterPage )
306 for (
unsigned int i = 0; i < m_doc->getPageNums(); i++ ) {
308 TQRect rect = m_doc->pageList().at(i)->getZoomPageRect( );
310 int w = rect.width();
311 int h = rect.height();
314 float diff = (float)rect.width() / (float)w;
315 h = (int) (rect.height() / diff);
318 float diff = (float)rect.height() / (float)h;
319 w = (int) (rect.width() / diff);
324 float diff = (float)rect.height() / (float)h;
325 w = (int) (rect.width() / diff);
328 float diff = (float)rect.width() / (float)w;
329 h = (int) (rect.height() / diff);
339 pix.fill( TQt::white );
342 p.setPen(TQt::black);
343 p.drawRect(pix.rect());
345 ThumbItem *item =
new ThumbItem(
static_cast<TQIconView *
>(
this), TQString::number(i+1), pix);
346 item->setUptodate(
false );
347 item->setDragEnabled(
false);
350 TQTimer::singleShot( 10,
this, TQ_SLOT( slotRefreshItems() ) );
354 TQApplication::restoreOverrideCursor();
357void KPrThumbBar::refreshItems(
bool offset)
359 TQRect vRect = visibleRect();
361 vRect.moveBy( m_offsetX, m_offsetY );
363 vRect.moveBy( contentsX(), contentsY() );
365 TQIconViewItem *it = findFirstVisibleItem( vRect );
368 kdDebug(33001) <<
"visible page = " << it->text().toInt() << endl;
369 if ( !
dynamic_cast<ThumbItem *
>(it)->isUptodate( ) ){
371 it->setPixmap( getSlideThumb( it->text().toInt() - 1 ) );
372 static_cast<ThumbItem *
>(it)->setUptodate(
true );
375 if ( it == findLastVisibleItem( vRect ) )
384void KPrThumbBar::updateItem(
int pagenr ,
bool sticky )
386 if ( m_viewMasterPage )
392 TQRect vRect = visibleRect();
393 vRect.moveBy( contentsX(), contentsY() );
396 TQIconViewItem *it = firstItem();
399 if ( it == findFirstVisibleItem( vRect ) ) {
402 if ( sticky || it->text().toInt() == pagenr + 1 ) {
403 it->setPixmap(getSlideThumb( pagecnt ));
404 static_cast<ThumbItem *
>(it)->setUptodate(
true );
409 if ( it == findLastVisibleItem( vRect ) )
415 else if ( sticky || it->text().toInt() == pagenr + 1 ) {
416 static_cast<ThumbItem *
>(it)->setUptodate(
false );
425 kdWarning(33001) <<
"Item for page " << pagenr <<
" not found" << endl;
429void KPrThumbBar::addItem(
int pos )
431 kdDebug(33001)<<
"KPrThumbBar::addItem" << endl;
433 for ( TQIconViewItem *it = firstItem(); it; it = it->nextItem() ) {
436 if ( pos == 0 && page == pos ){
437 ThumbItem *item =
new ThumbItem(
static_cast<TQIconView *
>(
this), it, TQString::number(2), getSlideThumb(1));
438 item->setDragEnabled(
false);
439 it->setPixmap(getSlideThumb( 0 ));
443 else if ( (page + 1) == pos ) {
444 ThumbItem *item =
new ThumbItem(
static_cast<TQIconView *
>(
this), it, TQString::number(pos+1), getSlideThumb(pos));
445 item->setDragEnabled(
false);
450 it->setText( TQString::number(page+2) );
456void KPrThumbBar::moveItem(
int oldPos,
int newPos )
458 kdDebug(33001)<<
"KPrThumbBar::moveItem " << oldPos <<
" to " << newPos << endl;
460 TQIconViewItem *after = 0;
461 TQIconViewItem *take = 0;
462 for ( TQIconViewItem *it = firstItem(); it; it = it->nextItem() ) {
464 if ( page == oldPos )
469 if ( page == newPos )
470 after = page == 0 ? it : newPos > oldPos ? it : it->prevItem();
481 ThumbItem *item =
new ThumbItem(
static_cast<TQIconView *
>(
this), after, TQString::number( newPos ), *(take->pixmap()) );
482 item->setDragEnabled(
false);
488 after->setPixmap(getSlideThumb( 0 ));
490 item->setPixmap(getSlideThumb( 1 ));
494 int lowPage = oldPos > newPos ? newPos : oldPos;
495 int highPage = oldPos < newPos ? newPos : oldPos;
497 for ( TQIconViewItem *it = firstItem(); it; it = it->nextItem() ) {
498 if ( page >= lowPage && page <= highPage)
499 it->setText( TQString::number(page+1) );
504void KPrThumbBar::removeItem(
int pos )
506 kdDebug(33001)<<
"KPrThumbBar::removeItem" << endl;
509 TQIconViewItem *itemToDelete = 0;
511 for ( TQIconViewItem *it = firstItem(); it; it = it->nextItem() ) {
514 if ( it->nextItem() )
519 it->setText( TQString::number( page + 1 ) );
525TQPixmap KPrThumbBar::getSlideThumb(
int slideNr)
const
528 TQPixmap pix( 10, 10 );
530 m_view->getCanvas()->drawPageInPix( pix, slideNr, 60 );
533 int h = pix.height();
548 const TQImage img(pix.convertToImage().smoothScale( w, h, TQImage::ScaleMin ));
549 pix.convertFromImage(img);
553 p.setPen(TQt::black);
554 p.drawRect(pix.rect());
559void KPrThumbBar::itemClicked(TQIconViewItem *i)
563 emit showPage( i->index() );
566void KPrThumbBar::slotContentsMoving(
int x,
int y)
570 kdDebug(33001) <<
"offset x,y = " << x <<
", " << y << endl;
571 refreshItems(
true );
574void KPrThumbBar::slotRefreshItems()
579OutlineSlideItem::OutlineSlideItem( TDEListView* parent, KPrPage* _page,
bool _masterPage )
580 : TDEListViewItem( parent ), m_page( _page ), m_masterPage( _masterPage )
582 setDragEnabled(
true);
584 setPixmap( 0, KPBarIcon(
"slide" ) );
587OutlineSlideItem::OutlineSlideItem( TDEListView* parent, OutlineSlideItem * after, KPrPage* _page,
bool _masterPage )
588 : TDEListViewItem( parent, after ), m_page( _page ), m_masterPage( _masterPage )
590 setDragEnabled(
true);
592 setPixmap( 0, KPBarIcon(
"slide" ) );
595void OutlineSlideItem::setPage( KPrPage* p )
602void OutlineSlideItem::update()
604 if( !m_page )
return;
605 KPrDocument *doc = m_page->kPresenterDoc();
609 OutlineObjectItem *ooi = 0;
610 while ( ( ooi =
dynamic_cast<OutlineObjectItem*
>( this->firstChild() ) ) )
616 TQPtrListIterator<KPrObject> it( m_page->objectList() );
620 for ( ; it.current(); ++it ) {
621 OutlineObjectItem *item =
new OutlineObjectItem(
this, it.current() );
622 item->setDragEnabled(
false );
623 if ( it.current()->isSelected() )
629 KPrObject* header = 0;
630 KPrObject* footer = 0;
633 it = doc->masterPage()->objectList();
634 for ( ; it.current() ; ++it )
636 KPrObject*
object = it.current();
638 if( m_page->hasHeader() && doc->isHeader(
object ) )
640 else if( m_page->hasFooter() && doc->isFooter(
object ) )
642 else if( !doc->isHeader(
object ) && !doc->isFooter(
object ) ) {
643 OutlineObjectItem *item =
new OutlineObjectItem(
this,
object );
644 if ( object->isSelected() )
652 OutlineObjectItem *item =
new OutlineObjectItem(
this, footer, i18n(
"Footer") );
653 if ( footer->isSelected() )
658 OutlineObjectItem *item =
new OutlineObjectItem(
this, header, i18n(
"Header") );
659 if ( header->isSelected() )
666 if ( ooi && doc->activePage() == m_page )
667 (ooi->listView())->setSelected( ooi,
true );
670void OutlineSlideItem::updateTitle()
672 TQString title = m_page->pageTitle();
673 if ( ! m_page->isSlideSelected() )
674 title = i18n(
"(%1)" ).arg( title );
678OutlineObjectItem::OutlineObjectItem( OutlineSlideItem* parent, KPrObject* _object,
679 const TQString& name )
680 : TDEListViewItem( parent ), m_object( _object )
682 setObject( m_object );
683 setDragEnabled(
false );
685 TQString objectName = name.isEmpty() ? m_object->getObjectName() : name;
687 setText( 0, objectName );
690void OutlineObjectItem::setObject( KPrObject*
object )
692 if( !
object )
return;
695 switch ( m_object->getType() ) {
697 setPixmap( 0, KPBarIcon(
"frame_image" ) );
700 setPixmap( 0, KPBarIcon(
"mini_line" ) );
703 setPixmap( 0, KPBarIcon(
"mini_rect" ) );
706 setPixmap( 0, KPBarIcon(
"mini_circle" ) );
709 setPixmap( 0, KPBarIcon(
"frame_text" ) );
712 setPixmap( 0, KPBarIcon(
"mini_autoform" ) );
715 setPixmap( 0, KPBarIcon(
"mini_clipart" ) );
718 setPixmap( 0, KPBarIcon(
"mini_pie" ) );
721 setPixmap( 0, KPBarIcon(
"frame_query" ) );
724 setPixmap( 0, KPBarIcon(
"freehand" ) );
727 setPixmap( 0, KPBarIcon(
"polyline" ) );
729 case OT_QUADRICBEZIERCURVE:
730 setPixmap( 0, KPBarIcon(
"quadricbeziercurve" ) );
732 case OT_CUBICBEZIERCURVE:
733 setPixmap( 0, KPBarIcon(
"cubicbeziercurve" ) );
736 setPixmap( 0, KPBarIcon(
"mini_polygon" ) );
738 case OT_CLOSED_LINE: {
739 TQString name = m_object->getTypeString();
740 if ( name == i18n(
"Closed Freehand" ) )
741 setPixmap( 0, KPBarIcon(
"closed_freehand" ) );
742 else if ( name == i18n(
"Closed Polyline" ) )
743 setPixmap( 0, KPBarIcon(
"closed_polyline" ) );
744 else if ( name == i18n(
"Closed Quadric Bezier Curve" ) )
745 setPixmap( 0, KPBarIcon(
"closed_quadricbeziercurve" ) );
746 else if ( name == i18n(
"Closed Cubic Bezier Curve" ) )
747 setPixmap( 0, KPBarIcon(
"closed_cubicbeziercurve" ) );
750 setPixmap( 0, KPBarIcon(
"group" ) );
757KPrOutline::KPrOutline( TQWidget *parent, KPrDocument *d, KPrView *v )
758 : TDEListView( parent ), KPrSideBarBase( d, v)
763 addColumn( i18n(
"Slide" ) );
764 setSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Expanding ) );
766 connect(
this, TQ_SIGNAL( currentChanged( TQListViewItem * ) ),
this, TQ_SLOT( itemClicked( TQListViewItem * ) ) );
767 connect(
this, TQ_SIGNAL( rightButtonPressed( TQListViewItem *,
const TQPoint &,
int ) ),
768 this, TQ_SLOT( rightButtonPressed( TQListViewItem *,
const TQPoint &,
int ) ) );
769 connect(
this, TQ_SIGNAL( contextMenu( TDEListView*, TQListViewItem*,
const TQPoint& ) ),
770 this, TQ_SLOT( slotContextMenu( TDEListView*, TQListViewItem*,
const TQPoint&) ) );
772 connect(
this, TQ_SIGNAL( doubleClicked ( TQListViewItem * )),
773 this, TQ_SLOT(renamePageTitle()));
774 connect(
this, TQ_SIGNAL( dropped( TQDropEvent*, TQListViewItem*, TQListViewItem* ) ),
775 this, TQ_SLOT( slotDropped( TQDropEvent*, TQListViewItem*, TQListViewItem* ) ));
777 setItemsMovable(
false );
778 setDragEnabled(
true );
779 setAcceptDrops(
true );
780 setDropVisualizer(
true );
781 setFullWidth(
true );
782 this->setRootIsDecorated(
true );
785KPrOutline::~KPrOutline()
789void KPrOutline::rebuildItems()
792 if ( m_viewMasterPage )
794 KPrPage *page=m_doc->masterPage();
795 new OutlineSlideItem(
this, page,
true );
800 for (
int i = m_doc->getPageNums() - 1; i >= 0; --i ) {
801 KPrPage *page=m_doc->pageList().at( i );
802 new OutlineSlideItem(
this, page,
false );
809OutlineSlideItem* KPrOutline::slideItem(
int pageNumber )
811 TQListViewItem* item = firstChild();
812 for(
int index = 0; item; ++index, item = item->nextSibling() ) {
813 if( index == pageNumber )
814 return dynamic_cast<OutlineSlideItem*
>( item );
822void KPrOutline::updateItem(
int pagenr ,
bool sticky )
825 OutlineSlideItem *item = slideItem( pagenr );
833 for( TQListViewItem *item = this->firstChild(); item; item = item->nextSibling() )
834 dynamic_cast<OutlineSlideItem*
>(item)->update();
839void KPrOutline::addItem(
int pos )
841 kdDebug(33001)<<
"KPrOutline::addItem" << endl;
843 KPrPage *page=m_doc->pageList().at( pos );
844 OutlineSlideItem *item;
846 item =
new OutlineSlideItem(
this, page,m_viewMasterPage );
849 OutlineSlideItem *after = slideItem( pos - 1 );
850 item =
new OutlineSlideItem(
this, after, page,m_viewMasterPage );
853 item =
dynamic_cast<OutlineSlideItem*
>( item->nextSibling() );
855 for( ; item; item =
dynamic_cast<OutlineSlideItem*
>( item->nextSibling() ) )
860void KPrOutline::moveItem(
int oldPos,
int newPos )
862 kdDebug(33001)<<
"KPrOutline::moveItem " << oldPos <<
" to " << newPos << endl;
864 int lowPage = oldPos > newPos ? newPos : oldPos;
865 int highPage = oldPos < newPos ? newPos : oldPos;
867 OutlineSlideItem *item =
dynamic_cast<OutlineSlideItem*
>( firstChild() );
868 TQListViewItem *itemToMove = 0;
869 TQListViewItem *itemAfter = 0;
872 if ( newPos < oldPos )
875 for (
int index = 0; item; ++index, item =
dynamic_cast<OutlineSlideItem*
>( item->nextSibling() ) )
877 if ( index == oldPos )
879 if ( index == newPos )
881 if ( index >= lowPage && index <= highPage )
885 TDEListView::moveItem( itemToMove, 0, itemAfter );
888void KPrOutline::removeItem(
int pos )
890 kdDebug(33001)<<
"KPrOutline::removeItem" << endl;
892 OutlineSlideItem* item = slideItem( pos );
894 OutlineSlideItem* temp =
dynamic_cast<OutlineSlideItem*
>(item->nextSibling());
898 for ( item = temp; item; item =
dynamic_cast<OutlineSlideItem*
>( item->nextSibling() ) )
902void KPrOutline::itemClicked( TQListViewItem *item )
907 OutlineSlideItem* slideItem =
dynamic_cast<OutlineSlideItem*
>(item);
910 KPrPage* page = slideItem->page();
912 if ( !m_viewMasterPage )
913 emit showPage( m_doc->pageList().findRef( page ) );
917 OutlineObjectItem* objectItem =
dynamic_cast<OutlineObjectItem*
>(item);
920 KPrObject *
object = objectItem->object();
921 if( !
object )
return;
924 OutlineSlideItem* slideItem =
dynamic_cast<OutlineSlideItem*
>(objectItem->parent());
925 if( slideItem && m_doc->activePage() != slideItem->page() )
927 KPrPage* page = slideItem->page();
929 if ( !m_viewMasterPage )
930 emit showPage( m_doc->pageList().findRef( page ) );
934 m_doc->deSelectAllObj();
935 m_view->getCanvas()->selectObj(
object );
936 m_view->showObjectRect(
object );
937 m_doc->repaint(
false );
948void KPrOutline::slotDropped( TQDropEvent * , TQListViewItem *parent, TQListViewItem *target )
950 kdDebug(33001) <<
"slotDropped" << endl;
957 for (TQListViewItem *i = firstChild(), *iNext = 0; i != 0; i = iNext)
959 iNext = i->itemBelow();
960 if ( !i->isSelected() )
968 i->setSelected(
false );
971 moveItem(i, parent, target );
980bool KPrOutline::acceptDrag( TQDropEvent* e )
const
982 return acceptDrops() && (e->source()==viewport());
986void KPrOutline::setCurrentPage(
int pg )
988 OutlineSlideItem *item = slideItem( pg );
989 if( item && ( item!=currentItem()->parent() ) )
991 blockSignals(
true );
992 setCurrentItem( item );
993 setSelected( item,
true );
994 ensureItemVisible( item );
995 blockSignals(
false );
999void KPrOutline::contentsDropEvent( TQDropEvent *e )
1001 disconnect(
this, TQ_SIGNAL( currentChanged( TQListViewItem * ) ),
this, TQ_SLOT( itemClicked( TQListViewItem * ) ) );
1002 TDEListView::contentsDropEvent( e );
1003 connect(
this, TQ_SIGNAL( currentChanged( TQListViewItem * ) ),
this, TQ_SLOT( itemClicked( TQListViewItem * ) ) );
1006void KPrOutline::moveItem( TQListViewItem *i, TQListViewItem *, TQListViewItem *newAfter )
1008 OutlineSlideItem* srcItem =
dynamic_cast<OutlineSlideItem*
>( i );
1012 int num = m_doc->pageList().findRef( srcItem->page() );
1017 OutlineSlideItem* dstItem =
dynamic_cast<OutlineSlideItem*
>( newAfter );
1021 numNow = m_doc->pageList().findRef( dstItem->page() );
1027 m_doc->movePage( num, numNow );
1030void KPrOutline::rightButtonPressed( TQListViewItem *,
const TQPoint &pnt,
int )
1032 if ( !m_doc->isReadWrite() || m_viewMasterPage )
return;
1034 TQListViewItem *item = TQListView::selectedItem();
1037 OutlineSlideItem* slideItem =
dynamic_cast<OutlineSlideItem*
>(item);
1040 m_view->openPopupMenuSideBar(pnt);
1042 OutlineObjectItem* objectItem =
dynamic_cast<OutlineObjectItem*
>(item);
1045 KPrObject * kpobject = objectItem->object();
1052 canvas->deSelectAllObj();
1053 canvas->selectObj( kpobject );
1060void KPrOutline::slotContextMenu( TDEListView*, TQListViewItem* item,
const TQPoint& p )
1062 rightButtonPressed( item, p, 0 );
1065void KPrOutline::renamePageTitle()
1067 TQListViewItem *item = TQListView::selectedItem();
1068 if( !item || m_viewMasterPage)
return;
1070 OutlineSlideItem* slideItem =
dynamic_cast<OutlineSlideItem*
>(item);
1071 if( !slideItem )
return;
1073 KPrPage* page = slideItem->page();
1077 TQString activeTitle = item->text( 0 );
1079 TQStringList page_titles;
1081 for ( it = m_doc->pageList().first(); it; it = m_doc->pageList().next() )
1082 if ( it->pageTitle() != activeTitle )
1083 page_titles.append( it->pageTitle() );
1085 KPrRenamePageValidator validator( page_titles );
1086 TQString newTitle = KInputDialog::getText( i18n(
"Rename Slide"),
1087 i18n(
"Slide title:"), activeTitle, &ok,
this, 0,
1092 if ( newTitle != activeTitle ) {
1094 m_doc, activeTitle, newTitle.stripWhiteSpace(), page );
1096 m_doc->addCommand(cmd);
1101TQDragObject* KPrOutline::dragObject()
1103 if( !selectedItem()->dragEnabled() ) {
1107 return TDEListView::dragObject();
1110#include "KPrSideBar.moc"
Class KPCanvas - There is a single instance of this class for a given view.
void objectPopup(KPrObject *object, const TQPoint &point)
Open the object popup.
Command to change title page name.