aw078: resync to DEV300m68for integration

This commit is contained in:
Armin Le Grand
2009-12-21 20:40:13 +01:00
262 changed files with 3098 additions and 1572 deletions

View File

@@ -161,11 +161,12 @@ void QueueProcessor::ProcessRequests (void)
{
OSL_ASSERT(mpCacheContext.get()!=NULL);
while ( ! mrQueue.IsEmpty() && ! mbIsPaused)
// Never process more than one request at a time in order to prevent the
// lock up of the edit view.
if ( ! mrQueue.IsEmpty()
&& ! mbIsPaused
&& mpCacheContext->IsIdle())
{
if ( ! mpCacheContext->IsIdle())
break;
CacheKey aKey = NULL;
RequestPriorityClass ePriorityClass (NOT_VISIBLE);
{
@@ -182,25 +183,12 @@ void QueueProcessor::ProcessRequests (void)
if (aKey != NULL)
ProcessOneRequest(aKey, ePriorityClass);
// Requests of lower priority are processed one at a time.
{
::osl::MutexGuard aGuard (mrQueue.GetMutex());
if ( ! mrQueue.IsEmpty())
if (mrQueue.GetFrontPriorityClass() > 0)
break;
}
}
// Schedule the processing of the next element(s).
{
::osl::MutexGuard aGuard (mrQueue.GetMutex());
if ( ! mrQueue.IsEmpty())
/*
if (bIsShowingFullScreenShow)
Start(mnTimeBetweenRequestsWhenNotIdle);
else
*/
Start(mrQueue.GetFrontPriorityClass());
}
}

View File

@@ -604,7 +604,7 @@ IMPL_LINK(SlideSorterController, WindowEventHandler, VclWindowEvent*, pEvent)
case VCLEVENT_WINDOW_GETFOCUS:
if (pActiveWindow != NULL && pWindow == pActiveWindow)
GetFocusManager().ShowFocus();
GetFocusManager().ShowFocus(false);
break;
case VCLEVENT_WINDOW_LOSEFOCUS:

View File

@@ -133,17 +133,17 @@ void FocusManager::MoveFocus (FocusMoveDirection eDirection)
}
if (mbPageIsFocused)
ShowFocusIndicator(GetFocusedPageDescriptor());
ShowFocusIndicator(GetFocusedPageDescriptor(), true);
}
}
void FocusManager::ShowFocus (void)
void FocusManager::ShowFocus (const bool bScrollToFocus)
{
mbPageIsFocused = true;
ShowFocusIndicator(GetFocusedPageDescriptor());
ShowFocusIndicator(GetFocusedPageDescriptor(), bScrollToFocus);
}
@@ -254,20 +254,25 @@ void FocusManager::HideFocusIndicator (const model::SharedPageDescriptor& rpDesc
void FocusManager::ShowFocusIndicator (const model::SharedPageDescriptor& rpDescriptor)
void FocusManager::ShowFocusIndicator (
const model::SharedPageDescriptor& rpDescriptor,
const bool bScrollToFocus)
{
if (rpDescriptor.get() != NULL)
{
rpDescriptor->SetFocus ();
// Scroll the focused page object into the visible area and repaint
// it, so that the focus indicator becomes visible.
view::SlideSorterView& rView (mrSlideSorter.GetView());
mrSlideSorter.GetController().GetSelectionManager()->MakeRectangleVisible (
rView.GetPageBoundingBox (
GetFocusedPageDescriptor(),
view::SlideSorterView::CS_MODEL,
view::SlideSorterView::BBT_INFO));
if (bScrollToFocus)
{
// Scroll the focused page object into the visible area and repaint
// it, so that the focus indicator becomes visible.
view::SlideSorterView& rView (mrSlideSorter.GetView());
mrSlideSorter.GetController().GetSelectionManager()->MakeRectangleVisible (
rView.GetPageBoundingBox (
GetFocusedPageDescriptor(),
view::SlideSorterView::CS_MODEL,
view::SlideSorterView::BBT_INFO));
}
mrSlideSorter.GetView().RequestRepaint (rpDescriptor);
NotifyFocusChangeListeners();

View File

@@ -43,7 +43,7 @@
#include <com/sun/star/frame/XFrameActionListener.hpp>
#include <cppuhelper/compbase4.hxx>
#include <svtools/lstner.hxx>
#include <svl/lstner.hxx>
#include <tools/link.hxx>
#include <boost/shared_ptr.hpp>

View File

@@ -88,10 +88,10 @@
#include <svx/svxdlg.hxx>
#include <svx/dialogs.hrc>
#include <vcl/msgbox.hxx>
#include <svtools/intitem.hxx>
#include <svtools/whiter.hxx>
#include <svtools/itempool.hxx>
#include <svtools/aeitem.hxx>
#include <svl/intitem.hxx>
#include <svl/whiter.hxx>
#include <svl/itempool.hxx>
#include <svl/aeitem.hxx>
#include <com/sun/star/presentation/FadeEffect.hpp>
#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
#include <com/sun/star/drawing/XDrawPages.hpp>
@@ -905,7 +905,7 @@ void SlotManager::RenameSlide (void)
DBG_ASSERT(pFact, "Dialogdiet fail!");
AbstractSvxNameDialog* aNameDlg = pFact->CreateSvxNameDialog(
mrSlideSorter.GetActiveWindow(),
aPageName, aDescr, RID_SVXDLG_NAME);
aPageName, aDescr);
DBG_ASSERT(aNameDlg, "Dialogdiet fail!");
aNameDlg->SetText( aTitle );
aNameDlg->SetCheckNameHdl( LINK( this, SlotManager, RenameSlideHdl ), true );
@@ -1085,6 +1085,14 @@ void SlotManager::InsertSlide (SfxRequest& rRequest)
rSelector.SelectPage (nInsertionIndex);
}
// Is there a stored insertion position?
else if (mrSlideSorter.GetController().GetSelectionManager()->GetInsertionPosition() >= 0)
{
nInsertionIndex
= mrSlideSorter.GetController().GetSelectionManager()->GetInsertionPosition() - 1;
rSelector.SelectPage(nInsertionIndex);
}
// Select the last page when there is at least one page.
else if (rSelector.GetPageCount() > 0)
{

View File

@@ -87,8 +87,11 @@ public:
void MoveFocus (FocusMoveDirection eDirection);
/** Show the focus indicator of the current slide.
@param bScrollToFocus
When <TRUE/> (the default) then the view is scrolled so that the
focus rectangle lies inside its visible area.
*/
void ShowFocus (void);
void ShowFocus (const bool bScrollToFocus = true);
/** Hide the focus indicator.
*/
@@ -215,8 +218,13 @@ private:
made visible.
@param pDescriptor
When NULL is given then the call is ignored.
@param bScrollToFocus
When <TRUE/> (the default) then the view is scrolled so that the
focus rectangle lies inside its visible area.
*/
void ShowFocusIndicator (const model::SharedPageDescriptor& rpDescriptor);
void ShowFocusIndicator (
const model::SharedPageDescriptor& rpDescriptor,
const bool bScrollToFocus);
/** Call all currently registered listeners that a focus change has
happended. The focus may be hidden or shown or moved from one page

View File

@@ -60,7 +60,7 @@
#include "sdresid.hxx"
#include "glob.hrc"
#include <svtools/itempool.hxx>
#include <svl/itempool.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdopage.hxx>
#include <svx/xlndsit.hxx>
@@ -72,10 +72,10 @@
#include <algorithm>
#include <svx/sdr/contact/objectcontact.hxx>
#include <svx/sdrpagewindow.hxx>
#include <svtools/itempool.hxx>
#include <svl/itempool.hxx>
#ifndef _SFXITEMPOOL_HXX
#include <svtools/itempool.hxx>
#include <svl/itempool.hxx>
#endif
using namespace std;