SVN commit 840349 by fyanardi: Split the KPrPresenterViewInterface.{cpp,h} files so that each class has its own cpp and h file M +3 -0 CMakeLists.txt A KPrPresenterViewBaseInterface.cpp [License: LGPL (v2+)] A KPrPresenterViewBaseInterface.h [License: LGPL (v2+)] M +0 -161 KPrPresenterViewInterface.cpp M +6 -69 KPrPresenterViewInterface.h A KPrPresenterViewSlidesInterface.cpp [License: LGPL (v2+)] A KPrPresenterViewSlidesInterface.h [License: LGPL (v2+)] A KPrPresenterViewToolWidget.cpp [License: LGPL (v2+)] A KPrPresenterViewToolWidget.h [License: LGPL (v2+)] M +2 -0 KPrPresenterViewWidget.cpp --- trunk/koffice/kpresenter/part/CMakeLists.txt #840348:840349 @@ -31,7 +31,10 @@ KPrPageApplicationData.cpp KPrShapeApplicationData.cpp KPrCustomSlideShows.cpp + KPrPresenterViewBaseInterface.cpp KPrPresenterViewInterface.cpp + KPrPresenterViewSlidesInterface.cpp + KPrPresenterViewToolWidget.cpp KPrPresenterViewWidget.cpp KPrEndOfSlideShowPage.cpp --- trunk/koffice/kpresenter/part/KPrPresenterViewInterface.cpp #840348:840349 @@ -19,11 +19,9 @@ #include "KPrPresenterViewInterface.h" -#include #include #include #include -#include #include #include #include @@ -46,22 +44,6 @@ #include "KPrNotes.h" #include "KPrPage.h" -/* KPrPresenterViewBaseInterface */ -KPrPresenterViewBaseInterface::KPrPresenterViewBaseInterface( const QList &pages, QWidget *parent ) - : QWidget( parent ) - , m_pages( pages ) -{ -} - -void KPrPresenterViewBaseInterface::setActivePage( KoPAPageBase *page ) -{ - m_activePage = page; -} - -/* KPrPresenterViewInterface - * This widget is the main interface, this widget shows current slide, next slide - * and the presenter's notes - */ KPrPresenterViewInterface::KPrPresenterViewInterface( const QList &pages, KoPACanvas *canvas, QWidget *parent ) : KPrPresenterViewBaseInterface( pages, parent ) , m_canvas( canvas ) @@ -158,148 +140,5 @@ m_nextSlidePreview->setPixmap( nextPage->thumbnail( m_previewSize ) ); } -/* KPrPresenterViewSlidesInterface - * This widget shows all slides in the presentation - */ -KPrPresenterViewSlidesInterface::KPrPresenterViewSlidesInterface( const QList &pages, QWidget *parent ) - : KPrPresenterViewBaseInterface( pages, parent ) -{ - QVBoxLayout *vLayout = new QVBoxLayout; - - m_listView = new QListView; - m_thumbnailModel = new KoPAPageThumbnailModel( m_pages, this ); - m_listView->setModel( m_thumbnailModel ); - m_listView->setDragDropMode( QListView::NoDragDrop ); - m_listView->setIconSize( QSize( 128, 128 ) ); - m_listView->setViewMode( QListView::IconMode ); - m_listView->setFlow( QListView::LeftToRight ); - m_listView->setWrapping( true ); - m_listView->setResizeMode( QListView::Adjust ); - m_listView->setSelectionMode( QAbstractItemView::SingleSelection ); - m_listView->setMovement( QListView::Static ); - - connect( m_listView, SIGNAL( clicked( const QModelIndex & ) ), this, - SLOT( itemClicked( const QModelIndex & ) ) ); - connect( m_listView, SIGNAL( doubleClicked( const QModelIndex & ) ), this, - SLOT( itemDoubleClicked( const QModelIndex & ) ) ); - - vLayout->addWidget( m_listView ); - - setLayout( vLayout ); -} - -void KPrPresenterViewSlidesInterface::setActivePage( KoPAPageBase *page ) -{ - KPrPresenterViewBaseInterface::setActivePage( page ); -} - -void KPrPresenterViewSlidesInterface::itemClicked( const QModelIndex &index ) -{ - KoPAPageBase *page = static_cast( index.internalPointer() ); - emit selectedPageChanged( page, false ); -} - -void KPrPresenterViewSlidesInterface::itemDoubleClicked( const QModelIndex &index ) -{ - KoPAPageBase *page = static_cast( index.internalPointer() ); - emit selectedPageChanged( page, true ); -} - -/* KPrPresenterViewToolWidget - * This widget shows all navigation functions (previous and next slide) together - * with clock and timer - */ -KPrPresenterViewToolWidget::KPrPresenterViewToolWidget(QWidget *parent) - : QFrame(parent) -{ - QSize iconSize( 32, 32 ); - QHBoxLayout *mainLayout = new QHBoxLayout; - - QHBoxLayout *hLayout = new QHBoxLayout; - QToolButton *toolButton = new QToolButton; - toolButton->setIcon( KIcon( "go-previous" ) ); - toolButton->setIconSize( iconSize ); - connect( toolButton, SIGNAL( clicked() ), this, SIGNAL( previousSlideClicked() ) ); - hLayout->addWidget(toolButton); - toolButton = new QToolButton; - toolButton->setIcon( KIcon( "go-next" ) ); - toolButton->setIconSize( iconSize ); - connect( toolButton, SIGNAL( clicked() ), this, SIGNAL( nextSlideClicked() ) ); - hLayout->addWidget( toolButton ); - - mainLayout->addLayout(hLayout); - mainLayout->addSpacing( 5 ); - QFrame *frame = new QFrame; - frame->setFrameStyle(QFrame::VLine | QFrame::Sunken); - mainLayout->addWidget(frame); - mainLayout->addSpacing( 5 ); - - m_slidesToolButton = new QToolButton; - m_slidesToolButton->setCheckable( true ); - m_slidesToolButton->setIcon( KIcon( "view-list-icons.png" ) ); - m_slidesToolButton->setIconSize( iconSize ); - connect( m_slidesToolButton, SIGNAL( toggled( bool ) ), this, SIGNAL( slideThumbnailsToggled( bool ) ) ); - mainLayout->addWidget( m_slidesToolButton ); - - mainLayout->addSpacing( 5 ); - frame = new QFrame; - frame->setFrameStyle( QFrame::VLine | QFrame::Raised ); - mainLayout->addWidget( frame ); - mainLayout->addSpacing( 5 ); - - hLayout = new QHBoxLayout; - QLabel *iconLabel = new QLabel; - iconLabel->setPixmap( KIcon( "user-away").pixmap( iconSize ) ); - hLayout->addWidget( iconLabel ); - m_clockLabel = new QLabel( QTime::currentTime().toString( "hh:mm:ss ap" ) ); - m_clockLabel->setStyleSheet("QLabel { font-size: 24px }"); - hLayout->addWidget( m_clockLabel ); - mainLayout->addLayout( hLayout ); - - mainLayout->addSpacing( 5 ); - frame = new QFrame; - frame->setFrameStyle( QFrame::VLine | QFrame::Plain ); - mainLayout->addWidget(frame); - mainLayout->addSpacing(5); - - hLayout = new QHBoxLayout; - iconLabel = new QLabel; - iconLabel->setPixmap( KIcon( "chronometer" ).pixmap( iconSize ) ); - hLayout->addWidget(iconLabel); - m_timerLabel = new QLabel( "00:00:00"); - m_timerLabel->setStyleSheet("QLabel { font-size: 24px }"); - hLayout->addWidget( m_timerLabel ); - mainLayout->addLayout(hLayout); - - setLayout(mainLayout); - setFrameStyle(QFrame::StyledPanel | QFrame::Raised); - - m_currentTime.start(); - m_clockTimer = new QTimer( this ); - connect( m_clockTimer, SIGNAL( timeout() ), this, SLOT( updateClock() ) ); - m_clockTimer->start( 1000 ); -} - -void KPrPresenterViewToolWidget::toggleSlideThumbnails( bool toggle ) -{ - m_slidesToolButton->setChecked( toggle ); -} - -void KPrPresenterViewToolWidget::updateClock() -{ - QTime time = QTime::currentTime(); - m_clockLabel->setText( time.toString( "hh:mm:ss a" ) ); - int sec = m_currentTime.elapsed() / 1000; - - int hour = sec / 3600; - sec -= hour * 3600; - int min = sec / 60; - sec -= min * 60; - - // display the timer, with 0 appended if only 1 digit - m_timerLabel->setText( QString( "%1:%2:%3").arg( hour, 2, 10, QChar( '0' ) ) - .arg( min, 2, 10, QChar( '0' ) ).arg( sec, 2, 10, QChar( '0' ) ) ); -} - #include "KPrPresenterViewInterface.moc" --- trunk/koffice/kpresenter/part/KPrPresenterViewInterface.h #840348:840349 @@ -20,38 +20,20 @@ #ifndef KPRPRESENTERVIEWINTERFACE #define KPRPRESENTERVIEWINTERFACE +#include "KPrPresenterViewBaseInterface.h" + #include -#include class QLabel; -class QListView; -class QModelIndex; class QTextEdit; -class QTime; -class QToolButton; class KoPACanvas; -class KoPADocument; class KoPAPageBase; -class KoPAPageThumbnailModel; -class KPrPresenterViewBaseInterface : public QWidget -{ - Q_OBJECT -public: - KPrPresenterViewBaseInterface( const QList &pages, QWidget *parent = 0 ); - -public slots: - virtual void setActivePage( KoPAPageBase *page ); - -signals: - void activeSlideChanged( KoPAPageBase *page ); - -protected: - QList m_pages; - KoPAPageBase *m_activePage; -}; - +/* KPrPresenterViewInterface + * This widget is the main interface, this widget shows current slide, next slide + * and the presenter's notes + */ class KPrPresenterViewInterface : public KPrPresenterViewBaseInterface { Q_OBJECT @@ -72,50 +54,5 @@ QSize m_previewSize; }; -class KPrPresenterViewSlidesInterface : public KPrPresenterViewBaseInterface -{ - Q_OBJECT -public: - KPrPresenterViewSlidesInterface( const QList &pages, QWidget *parent = 0 ); - -signals: - void selectedPageChanged( KoPAPageBase *page, bool doubleClicked ); - -public slots: - virtual void setActivePage( KoPAPageBase *page ); - -private slots: - void itemClicked( const QModelIndex &index ); - void itemDoubleClicked( const QModelIndex &index ); - -private: - KoPAPageThumbnailModel *m_thumbnailModel; - QListView *m_listView; -}; - -class KPrPresenterViewToolWidget : public QFrame -{ - Q_OBJECT -public: - KPrPresenterViewToolWidget( QWidget *parent = 0 ); - void toggleSlideThumbnails( bool toggle ); - -signals: - void slideThumbnailsToggled( bool toggle ); - void previousSlideClicked(); - void nextSlideClicked(); - -private slots: - void updateClock(); - -private: - QToolButton *m_slidesToolButton; - QLabel *m_clockLabel; - QLabel *m_timerLabel; - - QTime m_currentTime; - QTimer *m_clockTimer; -}; - #endif --- trunk/koffice/kpresenter/part/KPrPresenterViewWidget.cpp #840348:840349 @@ -38,6 +38,8 @@ #include "KPrAnimationDirector.h" #include "KPrPresenterViewInterface.h" +#include "KPrPresenterViewSlidesInterface.h" +#include "KPrPresenterViewToolWidget.h" #include "KPrViewModePresentation.h" KPrPresenterViewWidget::KPrPresenterViewWidget( KPrViewModePresentation *viewMode, const QList &pages, KoPACanvas *canvas, QWidget *parent )