KDDockWidgets API Documentation 2.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
KDDockWidgets::Core::DropArea Class Reference

#include <DropArea.h>

Inheritance diagram for KDDockWidgets::Core::DropArea:
Inheritance graph
[legend]
Collaboration diagram for KDDockWidgets::Core::DropArea:
Collaboration graph
[legend]

Public Member Functions

 DropArea (View *parent, MainWindowOptions options, bool isMDIWrapper=false)
 
 ~DropArea ()
 
void addDockWidget (DockWidget *dw, KDDockWidgets::Location location, DockWidget *relativeTo, InitialOption initialOption={})
 
void addMultiSplitter (Core::DropArea *splitter, KDDockWidgets::Location location, Core::Group *relativeTo=nullptr, InitialOption option=DefaultSizeMode::Fair)
 
void addWidget (View *widget, KDDockWidgets::Location location, Core::Group *relativeTo=nullptr, InitialOption option=DefaultSizeMode::Fair)
 Adds a widget to this MultiSplitter.
 
Vector< QStringaffinities () const
 
Core::Item * centralFrame () const
 
bool containsDockWidget (DockWidget *) const
 
DropLocation currentDropLocation () const
 
bool deserialize (const LayoutSaver::MultiSplitter &) override
 
bool drop (WindowBeingDragged *droppedWindow, Point globalPos)
 Called when a user drops a widget via DND.
 
DropIndicatorOverlaydropIndicatorOverlay () const
 
Vector< Core::Group * > groups () const
 
bool hasSingleFloatingFrame () const
 
bool hasSingleFrame () const
 
DropLocation hover (WindowBeingDragged *draggedWindow, Point globalPos)
 
bool isMDIWrapper () const
 
void layoutEqually ()
 See docs for MainWindowBase::layoutEqually()
 
void layoutEqually (Core::ItemBoxContainer *)
 overload that just resizes widgets within a sub-tree
 
void layoutParentContainerEqually (DockWidget *)
 
Core::DockWidgetmdiDockWidgetWrapper () const
 Returns the helper dock widget for implementing DockWidget::Option_MDINestable.
 
int numSideBySide_recursive (Qt::Orientation) const
 Returns the number of items layed-out horizontally or vertically But honours nesting.
 
Rect rectForDrop (const WindowBeingDragged *wbd, KDDockWidgets::Location location, const Core::Item *relativeTo) const
 
void removeHover ()
 
Core::ItemBoxContainer * rootItem () const
 
Vector< Core::LayoutingSeparator * > separators () const
 returns the list of separators
 
- Public Member Functions inherited from KDDockWidgets::Core::Layout
 Layout (ViewType, View *)
 
 ~Layout ()
 
Core::DropAreaasDropArea () const
 
LayoutingHost * asLayoutingHost () const
 
Core::MDILayoutasMDILayout () const
 
bool checkSanity () const
 Runs some sanity checks. Returns true if everything is OK.
 
void clearLayout ()
 clears the layout
 
bool containsFrame (const Core::Group *) const
 Returns true if this layout contains the specified group.
 
bool containsItem (const Core::Item *) const
 Returns true if this layout contains the specified item.
 
int count () const
 Returns the number of Item objects in this layout. This includes non-visible (placeholder) Items too.
 
Layout::Private * d_ptr ()
 
Vector< Core::DockWidget * > dockWidgets () const
 Returns the list of dock widgets contained in this layout.
 
void dumpLayout () const
 dumps the layout to stderr
 
Core::FloatingWindowfloatingWindow () const
 
Vector< Core::Group * > groups () const
 Returns this list of Group objects contained in this layout.
 
bool isInMainWindow (bool honourNesting=false) const
 Returns whether this layout is in a MainWindow.
 
Core::Item * itemForFrame (const Core::Group *group) const
 returns the Item that holds group in this layout
 
Vector< Core::Item * > items () const
 The list of items in this layout.
 
int layoutHeight () const
 returns the contents height. Usually it's the same height as the respective parent MultiSplitter.
 
Size layoutMaximumSizeHint () const
 returns the layout's maximum size hint
 
Size layoutMinimumSize () const
 returns the layout's minimum size setLayoutMinimumSize
 
Size layoutSize () const
 Returns the size of the contents.
 
int layoutWidth () const
 returns the contents width. Usually it's the same width as the respective parent MultiSplitter.
 
Core::MainWindowmainWindow (bool honourNesting=false) const
 
void onCloseEvent (CloseEvent *)
 
int placeholderCount () const
 Returns the number of placeholder items in this layout. This is the same as count minus visibleCount.
 
void removeItem (Core::Item *item)
 Removes an item from this MultiSplitter.
 
void restorePlaceholder (Core::DockWidget *dw, Core::Item *, int tabIndex)
 restores the dockwidget dw to its previous position
 
Core::ItemContainer * rootItem () const
 
LayoutSaver::MultiSplitter serialize () const
 
void setLayoutSize (Size)
 setter for the contents size The "contents size" is just the size() of this layout. However, since resizing QWidgets is async and we need it to be sync. As sometimes adding widgets will increase the MultiSplitter size (due to widget's min-size constraints).
 
void updateSizeConstraints ()
 Updates the min size of this layout.
 
void viewAboutToBeDeleted ()
 
int visibleCount () const
 Returns the number of visible Items in this layout. Which is count minus placeholderCount.
 
- Public Member Functions inherited from KDDockWidgets::Core::Controller
 Controller (ViewType type, View *)
 
virtual ~Controller ()
 
bool close ()
 
void destroyLater ()
 
Controller::Private * dptr () const
 
Rect geometry () const
 
int height () const
 
bool inDtor () const
 
bool is (ViewType) const
 Returns whether this controller is of the specified type.
 
bool isVisible () const
 
Point mapToGlobal (Point) const
 
Point pos () const
 
Rect rect () const
 
void setParentView (View *parent)
 
void setVisible (bool)
 
void show () const
 
Size size () const
 
ViewType type () const
 Returns the type of this controller.
 
Viewview () const
 Returns the view associated with this controller, if any.
 
int width () const
 
std::shared_ptr< Viewwindow () const
 
int x () const
 
int y () const
 

Static Public Member Functions

static Core::GroupcreateCentralFrame (MainWindowOptions options)
 
- Static Public Member Functions inherited from KDDockWidgets::Core::Layout
static LayoutfromLayoutingHost (LayoutingHost *)
 

Additional Inherited Members

- Protected Member Functions inherited from KDDockWidgets::Core::Layout
Vector< Core::Group * > groupsFrom (View *groupOrMultiSplitter) const
 returns the groups contained in groupOrMultiSplitter- If groupOrMultiSplitter- is a Group, it returns a list of 1 element, with that group If groupOrMultiSplitter- is a MultiSplitter then it returns a list of all groups it contains
 
void setLayoutMinimumSize (Size)
 setter for the minimum size minimumSize
 
void setRootItem (Core::ItemContainer *root)
 
void unrefOldPlaceholders (const Vector< Core::Group * > &groupsBeingAdded) const
 Removes unneeded placeholder items when adding new groups.
 
- Protected Member Functions inherited from KDDockWidgets::Core::Controller
virtual void setParentView_impl (View *parent)
 
- Protected Attributes inherited from KDDockWidgets::Core::Controller
bool m_inDtor = false
 

Detailed Description

MultiSplitter is simply a wrapper around Core::Item in which the hosted widgets are of class KDDockWidgets::Frame. The stuff in Core:: being agnostic and generic, not specific to KDDW.

A MultiSplitter is like a QSplitter but supports mixing vertical and horizontal splitters in any combination.

It supports adding a widget to the left/top/bottom/right of the whole MultiSplitter or adding relative to a single widget.

Definition at line 54 of file core/DropArea.h.

Constructor & Destructor Documentation

◆ DropArea()

DropArea::DropArea ( View parent,
MainWindowOptions  options,
bool  isMDIWrapper = false 
)
explicit

◆ ~DropArea()

DropArea::~DropArea ( )

Definition at line 120 of file core/DropArea.cpp.

Member Function Documentation

◆ addDockWidget()

void DropArea::addDockWidget ( Core::DockWidget dw,
KDDockWidgets::Location  location,
Core::DockWidget relativeTo,
InitialOption  initialOption = {} 
)

◆ addMultiSplitter()

void DropArea::addMultiSplitter ( Core::DropArea splitter,
KDDockWidgets::Location  location,
Core::Group relativeTo = nullptr,
InitialOption  option = DefaultSizeMode::Fair 
)

Adds an entire MultiSplitter into this layout. The donor MultiSplitter will be deleted after all its Frames are stolen. All added Frames will preserve their original layout, so, if widgetFoo was at the left of widgetBar when in the donor splitter, then it will still be at left of widgetBar when the whole splitter is dropped into this one.

Definition at line 623 of file core/DropArea.cpp.

References addWidget(), and KDDockWidgets::Core::Controller::view().

Referenced by KDDockWidgetsBindings_wrappersNS::KDDWBindingsCore::DropArea_wrapper::addMultiSplitter(), and c_KDDockWidgets__Core__DropArea__addMultiSplitter_DropArea_Location_Group_InitialOption().

◆ addWidget()

void DropArea::addWidget ( View widget,
KDDockWidgets::Location  location,
Core::Group relativeTo = nullptr,
InitialOption  option = DefaultSizeMode::Fair 
)

◆ affinities()

Vector< QString > DropArea::affinities ( ) const

◆ centralFrame()

Core::Item * DropArea::centralFrame ( ) const

◆ containsDockWidget()

bool DropArea::containsDockWidget ( Core::DockWidget dw) const

◆ createCentralFrame()

Core::Group * DropArea::createCentralFrame ( MainWindowOptions  options)
static

◆ currentDropLocation()

DropLocation DropArea::currentDropLocation ( ) const

Returns the current drop location The user needs to be dragging a window and be over a drop indicator, otherwise DropLocation_None is returned

Definition at line 709 of file core/DropArea.cpp.

References KDDockWidgets::DropLocation_None.

◆ deserialize()

bool DropArea::deserialize ( const LayoutSaver::MultiSplitter &  l)
overridevirtual

◆ drop()

bool DropArea::drop ( WindowBeingDragged *  droppedWindow,
Point  globalPos 
)

Called when a user drops a widget via DND.

Definition at line 311 of file core/DropArea.cpp.

References drop(), KDDockWidgets::DropLocation_None, KDDockWidgets::Core::View::equals(), hover(), isOutterLocation(), and KDDockWidgets::Core::Controller::window().

Referenced by drop().

◆ dropIndicatorOverlay()

DropIndicatorOverlay * DropArea::dropIndicatorOverlay ( ) const

◆ groups()

Core::Group::List DropArea::groups ( ) const

Definition at line 128 of file core/DropArea.cpp.

References KDDockWidgets::Core::Group::fromItem(), and groups().

Referenced by addWidget(), groups(), and hasSingleFloatingFrame().

◆ hasSingleFloatingFrame()

bool DropArea::hasSingleFloatingFrame ( ) const

Returns whether this layout has a single dock widget which is floating Implies it's in a FloatingWindow and that it has only one dock widget

Definition at line 246 of file core/DropArea.cpp.

References groups(), and KDToolBox::StlContainerAdaptor::StdVectorAdaptor< T, Args >::size().

Referenced by addDockWidget(), and c_KDDockWidgets__Core__DropArea__hasSingleFloatingFrame().

◆ hasSingleFrame()

bool DropArea::hasSingleFrame ( ) const

Returns whether this drop area has only 1 group. See further explanation in FloatingWindow::hasSingleFrame()

Definition at line 252 of file core/DropArea.cpp.

References KDDockWidgets::Core::Layout::visibleCount().

Referenced by c_KDDockWidgets__Core__DropArea__hasSingleFrame().

◆ hover()

DropLocation DropArea::hover ( WindowBeingDragged *  draggedWindow,
Point  globalPos 
)

Definition at line 279 of file core/DropArea.cpp.

References KDDockWidgets::DropLocation_None, and KDDockWidgets::Config::self().

Referenced by drop().

◆ isMDIWrapper()

bool DropArea::isMDIWrapper ( ) const

When DockWidget::Option_MDINestable is used, docked MDI dock widgets will be wrapped inside a DropArea, so they accept drops This DropArea is created implicitly while docking, and this function will return true

Definition at line 478 of file core/DropArea.cpp.

Referenced by c_KDDockWidgets__Core__DropArea__isMDIWrapper().

◆ layoutEqually() [1/2]

void DropArea::layoutEqually ( )

◆ layoutEqually() [2/2]

void DropArea::layoutEqually ( Core::ItemBoxContainer *  container)

overload that just resizes widgets within a sub-tree

Definition at line 661 of file core/DropArea.cpp.

◆ layoutParentContainerEqually()

void DropArea::layoutParentContainerEqually ( Core::DockWidget dw)

◆ mdiDockWidgetWrapper()

Core::DockWidget * DropArea::mdiDockWidgetWrapper ( ) const

Returns the helper dock widget for implementing DockWidget::Option_MDINestable.

Definition at line 483 of file core/DropArea.cpp.

References KDDockWidgets::Core::View::parentView(), and KDDockWidgets::Core::Controller::view().

Referenced by DropArea(), and c_KDDockWidgets__Core__DropArea__mdiDockWidgetWrapper().

◆ numSideBySide_recursive()

int DropArea::numSideBySide_recursive ( Qt::Orientation  o) const

Returns the number of items layed-out horizontally or vertically But honours nesting.

Definition at line 704 of file core/DropArea.cpp.

◆ rectForDrop()

Rect DropArea::rectForDrop ( const WindowBeingDragged *  wbd,
KDDockWidgets::Location  location,
const Core::Item *  relativeTo 
) const

Called by the indicators, so they draw the drop rubber band at the correct place. The rect for the rubberband when dropping a widget at the specified location. Excludes the Separator thickness, result is actually smaller than what needed. In other words, the result will be exactly the same as the geometry the widget will get.

Definition at line 681 of file core/DropArea.cpp.

Referenced by KDDockWidgets::Core::ClassicDropIndicatorOverlay::setCurrentDropLocation().

◆ removeHover()

void DropArea::removeHover ( )

◆ rootItem()

Core::ItemBoxContainer * DropArea::rootItem ( ) const

Definition at line 676 of file core/DropArea.cpp.

◆ separators()

Vector< Core::LayoutingSeparator * > DropArea::separators ( ) const

returns the list of separators

Definition at line 633 of file core/DropArea.cpp.


The documentation for this class was generated from the following files:

© Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
KDDockWidgets
Advanced Dock Widget Framework for Qt
https://www.kdab.com/development-resources/qt-tools/kddockwidgets/
Generated by doxygen 1.9.8