[prev in list] [next in list] [prev in thread] [next in thread] 

List:       koffice-devel
Subject:    Re: Review Request: Master Notes for KPresenter
From:       "Fredy Yanardi" <fyanardi () gmail ! com>
Date:       2009-11-17 17:39:21
Message-ID: 20091117173921.27424.87261 () localhost
[Download RAW message or body]


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/2167/
-----------------------------------------------------------

(Updated 2009-11-17 17:39:21.462958)


Review request for KOffice.


Changes
-------

Updated patch:
* Problem in select all is because KoPAView::editSelectAll() gets all shapes directly from \
current active page's child shapes. To overcome this, I propose a new virtual method in \
KoPAViewMode to get the child shapes of the active page related to this view mode. Currently I \
                name it KoPAViewMode::activePageChildShapes().
* Fix add/remove shapes in Notes / Notes Master view mode
* Fix showing the master shapes when in Notes view mode
* Don't crash when saving notes / notes master without text / thumbnail shape


Summary
-------

This is a patch to enable master notes for KPresenter. The patch is still work in progress, but \
all basic functionality and all necessary changes are there. What left is saving the master \
notes (I think). Here I list all proposed changes for kopageapp and kpresenter:

For kopageapp, there are some changes in KoPAView and KoPAViewMode classes to support the \
master notes and to allow more flexibility for similar feature in the future (i.e: view mode \
that has normal and master mode): 1. Additional parameter [bool master] for \
KoPAViewMode::setViewMode, to allow activating a view mode and directly enable/disable master \
mode for that view mode. So now the function signature is: void KoPAViewMode::setViewMode( \
KoPAViewMode *mode, bool master ); 2. Additional parameter [bool updateShapeManager] for \
KoPAViewMode::setActivePage. Currently if this method is called, the shape manager of the \
canvas is updated with the page's shapes. But this is redundant for KPrViewModeNotes, since it \
needs to update the shape manager with different set of shapes. The additional parameter will \
tell the function whether to update the shape manager of not. So, the proposed function \
signature is: void KoPAViewMode::setActivePage( KoPAPageBase *page, bool updateShapeManager ); \
3. Additional parameter [bool master] for KoPAViewMode::activate to facilitate[1]. The function \
signature becomes: void KoPAViewMode::activate( KoPAViewMode *previousViewMode, bool master ) \
4. Additional function KoPAView::setViewModeSavedPage( KoPAPageBase *page ) and \
KoPAView::viewModeSavedPage(). The reason for this is because we need to save the normal page \
(KoPAPage) when we go to master mode, so that if we go back to normal mode again, that saved \
page can be activated. Previously only one view mode can go to master mode, hence the KoPAPage \
is saved inside the KoPAViewModeNormal. But now there are two view modes that can go to master \
mode, hence there must be a central place to set and get the saved page. 5. Remove \
doUpdateActivePage function from KoPAView, and do the updating of the active page in each view \
                mode's updateActivePage instead. There are two main reasons I propose this \
                change:
   * The implementation for updating active page is different in each view mode, and it is only \
                used in KoPAViewModeNormal.
   * Too many routing for this doUpdateActivePage. Currently for updating active page of the \
KoPAViewModeNormal is: KoPAView::updateActivePage() -> KoPAViewMode::updateActivePage()-> \
KoPAView::doUpdateActivePage().  (This is not directly related to master notes, just to \
simplify and clean up a bit)

And for KPresenter itself:
1. Split KPrNotes into three classes: KPrNotesBase, KPrMasterNotes, and KPrNotes. KPrNotes gets \
the thumbnail shape, text shape and page layout from KPrMasterNotes. 2. Some changes in \
KPrViewModeNotes to support displaying notes and masternotes shapes.

Any critics, comments or suggestions are greatly appreciated :)


Diffs (updated)
-----

  /trunk/koffice/kpresenter/part/CMakeLists.txt 1050110 
  /trunk/koffice/kpresenter/part/KPrMasterNotes.h PRE-CREATION 
  /trunk/koffice/kpresenter/part/KPrMasterNotes.cpp PRE-CREATION 
  /trunk/koffice/kpresenter/part/KPrMasterPage.h 1050110 
  /trunk/koffice/kpresenter/part/KPrMasterPage.cpp 1050110 
  /trunk/koffice/kpresenter/part/KPrNotes.h 1050110 
  /trunk/koffice/kpresenter/part/KPrNotes.cpp 1050110 
  /trunk/koffice/kpresenter/part/KPrNotesBase.h PRE-CREATION 
  /trunk/koffice/kpresenter/part/KPrNotesBase.cpp PRE-CREATION 
  /trunk/koffice/kpresenter/part/KPrView.h 1050110 
  /trunk/koffice/kpresenter/part/KPrView.cpp 1050110 
  /trunk/koffice/kpresenter/part/KPrViewModeNotes.h 1050110 
  /trunk/koffice/kpresenter/part/KPrViewModeNotes.cpp 1050110 
  /trunk/koffice/kpresenter/part/KPrViewModePresentation.h 1050110 
  /trunk/koffice/kpresenter/part/KPrViewModePresentation.cpp 1050110 
  /trunk/koffice/kpresenter/part/KPrViewModePreviewPageEffect.h 1050110 
  /trunk/koffice/kpresenter/part/KPrViewModePreviewPageEffect.cpp 1050110 
  /trunk/koffice/kpresenter/part/kpresenter.rc 1050110 
  /trunk/koffice/libs/kopageapp/KoPAView.h 1050110 
  /trunk/koffice/libs/kopageapp/KoPAView.cpp 1050110 
  /trunk/koffice/libs/kopageapp/KoPAViewMode.h 1050110 
  /trunk/koffice/libs/kopageapp/KoPAViewMode.cpp 1050110 
  /trunk/koffice/libs/kopageapp/KoPAViewModeNormal.h 1050110 
  /trunk/koffice/libs/kopageapp/KoPAViewModeNormal.cpp 1050110 

Diff: http://reviewboard.kde.org/r/2167/diff


Testing
-------


Thanks,

Fredy

_______________________________________________
koffice-devel mailing list
koffice-devel@kde.org
https://mail.kde.org/mailman/listinfo/koffice-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic