Expandable sidebar
This commit is contained in:
parent
4bf830763f
commit
e326eabbf8
4 changed files with 125 additions and 17 deletions
|
|
@ -549,6 +549,9 @@ void PipeWireGraphModel::autoArrange()
|
|||
void PipeWireGraphModel::loadLayout()
|
||||
{
|
||||
m_layoutByStableId.clear();
|
||||
m_hasViewState = false;
|
||||
m_hasSplitterSizes = false;
|
||||
m_splitterSizes.clear();
|
||||
const QString path = layoutFilePath();
|
||||
if (path.isEmpty()) {
|
||||
return;
|
||||
|
|
@ -578,6 +581,19 @@ void PipeWireGraphModel::loadLayout()
|
|||
m_viewCenter = QPointF(x, y);
|
||||
m_hasViewState = true;
|
||||
}
|
||||
|
||||
const QJsonArray splitter = root.value("splitter").toArray();
|
||||
if (!splitter.isEmpty()) {
|
||||
QList<int> sizes;
|
||||
sizes.reserve(splitter.size());
|
||||
for (const auto &value : splitter) {
|
||||
sizes.append(value.toInt());
|
||||
}
|
||||
if (!sizes.isEmpty()) {
|
||||
m_splitterSizes = sizes;
|
||||
m_hasSplitterSizes = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -786,6 +802,13 @@ void PipeWireGraphModel::writeLayoutToFile(const QString &path) const
|
|||
view["center_x"] = m_viewCenter.x();
|
||||
view["center_y"] = m_viewCenter.y();
|
||||
root["view"] = view;
|
||||
if (m_hasSplitterSizes && !m_splitterSizes.isEmpty()) {
|
||||
QJsonArray splitter;
|
||||
for (const auto size : m_splitterSizes) {
|
||||
splitter.append(size);
|
||||
}
|
||||
root["splitter"] = splitter;
|
||||
}
|
||||
|
||||
QFile file(path);
|
||||
QDir().mkpath(QFileInfo(path).absolutePath());
|
||||
|
|
@ -826,4 +849,20 @@ bool PipeWireGraphModel::viewState(double &scale, QPointF ¢er) const
|
|||
center = m_viewCenter;
|
||||
return true;
|
||||
}
|
||||
|
||||
void PipeWireGraphModel::setSplitterSizes(const QList<int> &sizes)
|
||||
{
|
||||
m_splitterSizes = sizes;
|
||||
m_hasSplitterSizes = !sizes.isEmpty();
|
||||
}
|
||||
|
||||
bool PipeWireGraphModel::splitterSizes(QList<int> &sizes) const
|
||||
{
|
||||
if (!m_hasSplitterSizes) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sizes = m_splitterSizes;
|
||||
return !sizes.isEmpty();
|
||||
}
|
||||
#include <QtNodes/StyleCollection>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue