LayoutSaver: Add some utility functions
This commit is contained in:
@@ -569,6 +569,13 @@ bool LayoutSaver::Frame::hasSingleDockWidget() const
|
||||
return dockWidgets.size() == 1;
|
||||
}
|
||||
|
||||
bool LayoutSaver::Frame::skipsRestore() const
|
||||
{
|
||||
return std::all_of(dockWidgets.cbegin(), dockWidgets.cend(), [] (LayoutSaver::DockWidget::Ptr dw) {
|
||||
return dw->skipsRestore();
|
||||
});
|
||||
}
|
||||
|
||||
LayoutSaver::DockWidget::Ptr LayoutSaver::Frame::singleDockWidget() const
|
||||
{
|
||||
if (!hasSingleDockWidget())
|
||||
@@ -688,6 +695,11 @@ LayoutSaver::DockWidget::Ptr LayoutSaver::FloatingWindow::singleDockWidget() con
|
||||
return multiSplitterLayout.singleDockWidget();
|
||||
}
|
||||
|
||||
bool LayoutSaver::FloatingWindow::skipsRestore() const
|
||||
{
|
||||
return multiSplitterLayout.skipsRestore();
|
||||
}
|
||||
|
||||
void LayoutSaver::FloatingWindow::scaleSizes(const ScalingInfo &scalingInfo)
|
||||
{
|
||||
scalingInfo.applyFactorsTo(/*by-ref*/geometry);
|
||||
@@ -827,6 +839,13 @@ LayoutSaver::DockWidget::Ptr LayoutSaver::MultiSplitter::singleDockWidget() cons
|
||||
return frames.cbegin()->singleDockWidget();
|
||||
}
|
||||
|
||||
bool LayoutSaver::MultiSplitter::skipsRestore() const
|
||||
{
|
||||
return std::all_of(frames.cbegin(), frames.cend(), [] (const LayoutSaver::Frame &frame) {
|
||||
return frame.skipsRestore();
|
||||
});
|
||||
}
|
||||
|
||||
void LayoutSaver::MultiSplitter::scaleSizes(const ScalingInfo &)
|
||||
{
|
||||
// scalingInfo.applyFactorsTo(/*by-ref*/size);
|
||||
|
||||
@@ -178,6 +178,7 @@ struct LayoutSaver::Frame
|
||||
bool isValid() const;
|
||||
|
||||
bool hasSingleDockWidget() const;
|
||||
bool skipsRestore() const;
|
||||
|
||||
/// @brief in case this frame only has one frame, returns the name of that dock widget
|
||||
LayoutSaver::DockWidget::Ptr singleDockWidget() const;
|
||||
@@ -204,6 +205,7 @@ struct LayoutSaver::MultiSplitter
|
||||
|
||||
bool hasSingleDockWidget() const;
|
||||
LayoutSaver::DockWidget::Ptr singleDockWidget() const;
|
||||
bool skipsRestore() const;
|
||||
|
||||
/// Iterates through the layout and patches all absolute sizes. See RestoreOption_RelativeToMainWindow.
|
||||
void scaleSizes(const ScalingInfo &scalingInfo);
|
||||
@@ -223,6 +225,7 @@ struct LayoutSaver::FloatingWindow
|
||||
|
||||
bool hasSingleDockWidget() const;
|
||||
LayoutSaver::DockWidget::Ptr singleDockWidget() const;
|
||||
bool skipsRestore() const;
|
||||
|
||||
/// Iterates through the layout and patches all absolute sizes. See RestoreOption_RelativeToMainWindow.
|
||||
void scaleSizes(const ScalingInfo &);
|
||||
|
||||
Reference in New Issue
Block a user