[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