LibreOffice Module sd (master) 1
|
Classes | |
class | ShellHash |
class | UpdateLock |
Public Member Functions | |
Implementation (ViewShellBase &rBase) | |
~Implementation () COVERITY_NOEXCEPT_FALSE | |
void | AddShellFactory (const SfxShell *pViewShell, const SharedShellFactory &rpFactory) |
void | RemoveShellFactory (const SfxShell *pViewShell, const SharedShellFactory &rpFactory) |
void | ActivateViewShell (ViewShell *pViewShell) |
void | DeactivateViewShell (const ViewShell &rShell) |
void | ActivateShell (SfxShell &rShell) |
void | DeactivateShell (const SfxShell &rShell) |
void | ActivateShell (const ShellDescriptor &rDescriptor) |
void | SetFormShell (const ViewShell *pViewShell, FmFormShell *pFormShell, bool bAbove) |
void | ActivateSubShell (const SfxShell &rParentShell, ShellId nId) |
void | DeactivateSubShell (const SfxShell &rParentShell, ShellId nId) |
void | MoveToTop (const SfxShell &rParentShell) |
SfxShell * | GetShell (ShellId nId) const |
SfxShell * | GetTopShell () const |
SfxShell * | GetTopViewShell () const |
void | Shutdown () |
void | InvalidateAllSubShells (const SfxShell *pParentShell) |
void | TakeShellsFromStack (const SfxShell *pShell) |
Remove all shells from the SFX stack above and including the given shell. More... | |
void | LockUpdate () |
Prevent updates of the shell stack. More... | |
void | UnlockUpdate () |
Allow updates of the shell stack. More... | |
Private Types | |
typedef std::unordered_multimap< const SfxShell *, SharedShellFactory, ShellHash > | FactoryList |
typedef std::list< ShellDescriptor > | ActiveShellList |
List of the active view shells. More... | |
typedef std::list< ShellDescriptor > | SubShellSubList |
typedef std::unordered_map< const SfxShell *, SubShellSubList, ShellHash > | SubShellList |
typedef ::std::vector< SfxShell * > | ShellStack |
In this member we remember what shells we have pushed on the shell stack. More... | |
Private Member Functions | |
void | UpdateShellStack () |
Update the SFX shell stack (the portion that is visible to us) so that it matches the internal shell stack. More... | |
void | CreateShells () |
void | CreateTargetStack (ShellStack &rStack) const |
This method rebuilds the stack of shells that are stacked upon the view shell base. More... | |
DECL_LINK (WindowEventHandler, VclWindowEvent &, void) | |
void | DumpShellStack (const ShellStack &rStack) |
void | DumpSfxShellStack () |
ShellDescriptor | CreateSubShell (SfxShell const *pShell, ShellId nShellId) |
void | DestroyViewShell (ShellDescriptor &rDescriptor) |
Static Private Member Functions | |
static void | Deactivate (SfxShell *pShell) |
To be called before a shell is taken from the SFX shell stack. More... | |
static void | DestroySubShell (const ShellDescriptor &rDescriptor) |
Private Attributes | |
ViewShellBase & | mrBase |
mutable::osl::Mutex | maMutex |
FactoryList | maShellFactories |
ActiveShellList | maActiveViewShells |
SubShellList | maActiveSubShells |
int | mnUpdateLockCount |
bool | mbShellStackIsUpToDate |
The UpdateShellStack() method can be called recursively. More... | |
SfxShell * | mpFormShell |
const ViewShell * | mpFormShellParent |
bool | mbFormShellAboveParent |
SfxShell * | mpTopShell |
SfxShell * | mpTopViewShell |
Definition at line 94 of file ViewShellManager.cxx.
|
private |
List of the active view shells.
In order to create gather all shells to put on the shell stack each view shell in this list is asked for its sub-shells (typically toolbars).
Definition at line 164 of file ViewShellManager.cxx.
|
private |
Definition at line 157 of file ViewShellManager.cxx.
|
private |
In this member we remember what shells we have pushed on the shell stack.
Definition at line 174 of file ViewShellManager.cxx.
|
private |
Definition at line 168 of file ViewShellManager.cxx.
|
private |
Definition at line 167 of file ViewShellManager.cxx.
sd::ViewShellManager::Implementation::Implementation | ( | ViewShellBase & | rBase | ) |
Definition at line 353 of file ViewShellManager.cxx.
sd::ViewShellManager::Implementation::~Implementation | ( | ) |
Definition at line 365 of file ViewShellManager.cxx.
References sd::ViewShellManager::Shutdown().
void sd::ViewShellManager::Implementation::ActivateShell | ( | const ShellDescriptor & | rDescriptor | ) |
Definition at line 475 of file ViewShellManager.cxx.
void sd::ViewShellManager::Implementation::ActivateShell | ( | SfxShell & | rShell | ) |
Definition at line 464 of file ViewShellManager.cxx.
References sd::ViewShellManager::ActivateShell(), and maMutex.
void sd::ViewShellManager::Implementation::ActivateSubShell | ( | const SfxShell & | rParentShell, |
ShellId | nId | ||
) |
Definition at line 514 of file ViewShellManager.cxx.
void sd::ViewShellManager::Implementation::ActivateViewShell | ( | ViewShell * | pViewShell | ) |
Definition at line 405 of file ViewShellManager.cxx.
References sd::ViewShellManager::ActivateShell(), vcl::Window::AddEventListener(), LINK, maMutex, and SAL_WARN.
void sd::ViewShellManager::Implementation::AddShellFactory | ( | const SfxShell * | pViewShell, |
const SharedShellFactory & | rpFactory | ||
) |
Definition at line 370 of file ViewShellManager.cxx.
|
private |
Definition at line 859 of file ViewShellManager.cxx.
References maMutex.
|
private |
Definition at line 965 of file ViewShellManager.cxx.
References maMutex.
|
private |
This method rebuilds the stack of shells that are stacked upon the view shell base.
Definition at line 885 of file ViewShellManager.cxx.
|
staticprivate |
To be called before a shell is taken from the SFX shell stack.
This method deactivates an active text editing to avoid problems with undo managers. Afterwards the Deactivate() of the shell is called.
Definition at line 1102 of file ViewShellManager.cxx.
References SfxShell::Deactivate(), SfxDispatcher::Execute(), SfxViewFrame::GetDispatcher(), sd::ViewShell::GetView(), sd::ViewShell::GetViewFrame(), SdrObjEditView::IsTextEdit(), sd::View::SdrEndTextEdit(), and SdrView::UnmarkAll().
void sd::ViewShellManager::Implementation::DeactivateShell | ( | const SfxShell & | rShell | ) |
Definition at line 484 of file ViewShellManager.cxx.
References sd::ViewShellManager::DeactivateSubShell(), and maMutex.
void sd::ViewShellManager::Implementation::DeactivateSubShell | ( | const SfxShell & | rParentShell, |
ShellId | nId | ||
) |
Definition at line 541 of file ViewShellManager.cxx.
void sd::ViewShellManager::Implementation::DeactivateViewShell | ( | const ViewShell & | rShell | ) |
Definition at line 434 of file ViewShellManager.cxx.
References sd::ViewShellManager::DeactivateSubShell(), and maMutex.
|
private |
|
staticprivate |
Definition at line 1022 of file ViewShellManager.cxx.
|
private |
Definition at line 995 of file ViewShellManager.cxx.
References LINK, and vcl::Window::RemoveEventListener().
|
private |
Definition at line 1089 of file ViewShellManager.cxx.
|
private |
Definition at line 1077 of file ViewShellManager.cxx.
Definition at line 627 of file ViewShellManager.cxx.
SfxShell * sd::ViewShellManager::Implementation::GetTopShell | ( | ) | const |
Definition at line 660 of file ViewShellManager.cxx.
SfxShell * sd::ViewShellManager::Implementation::GetTopViewShell | ( | ) | const |
Definition at line 666 of file ViewShellManager.cxx.
void sd::ViewShellManager::Implementation::InvalidateAllSubShells | ( | const SfxShell * | pParentShell | ) |
Definition at line 1029 of file ViewShellManager.cxx.
References maMutex.
void sd::ViewShellManager::Implementation::LockUpdate | ( | ) |
Prevent updates of the shell stack.
While the sub shell manager is locked it will update its internal data structures but not alter the shell stack. Use this method when there are several modifications to the shell stack to prevent multiple rebuilds of the shell stack and resulting broadcasts.
Definition at line 671 of file ViewShellManager.cxx.
Referenced by sd::ViewShellManager::Implementation::UpdateLock::UpdateLock().
void sd::ViewShellManager::Implementation::MoveToTop | ( | const SfxShell & | rParentShell | ) |
Definition at line 573 of file ViewShellManager.cxx.
References maMutex.
void sd::ViewShellManager::Implementation::RemoveShellFactory | ( | const SfxShell * | pViewShell, |
const SharedShellFactory & | rpFactory | ||
) |
Definition at line 391 of file ViewShellManager.cxx.
void sd::ViewShellManager::Implementation::SetFormShell | ( | const ViewShell * | pViewShell, |
FmFormShell * | pFormShell, | ||
bool | bAbove | ||
) |
Definition at line 1126 of file ViewShellManager.cxx.
References maMutex.
void sd::ViewShellManager::Implementation::Shutdown | ( | ) |
Definition at line 1043 of file ViewShellManager.cxx.
References sd::ViewShellManager::DeactivateShell(), sd::ViewShellManager::DeactivateViewShell(), maMutex, and SAL_WARN.
void sd::ViewShellManager::Implementation::TakeShellsFromStack | ( | const SfxShell * | pShell | ) |
Remove all shells from the SFX stack above and including the given shell.
Definition at line 789 of file ViewShellManager.cxx.
References SfxShell::GetUndoManager(), maMutex, nIndex, and SAL_INFO.
void sd::ViewShellManager::Implementation::UnlockUpdate | ( | ) |
Allow updates of the shell stack.
This method has to be called the same number of times as LockUpdate() to really allow a rebuild of the shell stack.
Definition at line 676 of file ViewShellManager.cxx.
References maMutex.
Referenced by sd::ViewShellManager::Implementation::UpdateLock::~UpdateLock().
|
private |
Update the SFX shell stack (the portion that is visible to us) so that it matches the internal shell stack.
This is done in six steps:
Definition at line 701 of file ViewShellManager.cxx.
References SfxShell::GetUndoManager(), i, maMutex, nIndex, and SAL_INFO.
|
private |
Definition at line 169 of file ViewShellManager.cxx.
|
private |
Definition at line 165 of file ViewShellManager.cxx.
|
private |
Definition at line 153 of file ViewShellManager.cxx.
|
private |
Definition at line 158 of file ViewShellManager.cxx.
|
private |
Definition at line 187 of file ViewShellManager.cxx.
|
private |
The UpdateShellStack() method can be called recursively.
This flag is used to communicate between different levels of invocation: if the stack has been updated in an inner call the outer call can (has to) stop and return immediately.
Definition at line 183 of file ViewShellManager.cxx.
|
private |
Definition at line 176 of file ViewShellManager.cxx.
|
private |
Definition at line 185 of file ViewShellManager.cxx.
|
private |
Definition at line 186 of file ViewShellManager.cxx.
|
private |
Definition at line 189 of file ViewShellManager.cxx.
|
private |
Definition at line 190 of file ViewShellManager.cxx.
|
private |
Definition at line 152 of file ViewShellManager.cxx.