diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-06 21:57:09 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-06 21:57:09 +0200 |
| commit | 87d787bc2c50eb00c6b86957efaa71e07f9acc07 (patch) | |
| tree | 9a367f24b54ea8a79f66ac06d3bdb69cb3eed0cf /documentoutlinemodel.cpp | |
| parent | cbc17bd39f4ef245183e5a54509ff3fbd4125ca6 (diff) | |
| download | kristall-87d787bc2c50eb00c6b86957efaa71e07f9acc07.tar.gz | |
Fixes outline generation, adds 3-layer outlines.
Diffstat (limited to 'documentoutlinemodel.cpp')
| -rw-r--r-- | documentoutlinemodel.cpp | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/documentoutlinemodel.cpp b/documentoutlinemodel.cpp index a47dafa..47ff3b5 100644 --- a/documentoutlinemodel.cpp +++ b/documentoutlinemodel.cpp @@ -39,15 +39,7 @@ void DocumentOutlineModel::appendH1(const QString &title) void DocumentOutlineModel::appendH2(const QString &title) { - if(root.children.size() == 0) { - root.children.append(Node { - &root, - "<missing layer>", - 1, 0, - QList<Node> { }, - }); - } - auto & parent = root.children.last(); + auto & parent = ensureLevel1(); parent.children.append(Node { &parent, title, @@ -58,7 +50,13 @@ void DocumentOutlineModel::appendH2(const QString &title) void DocumentOutlineModel::appendH3(const QString &title) { - + auto & parent = ensureLevel2(); + parent.children.append(Node { + &parent, + title, + 3, parent.children.size() - 1, + QList<Node> { }, + }); } void DocumentOutlineModel::endBuild() @@ -151,3 +149,32 @@ QVariant DocumentOutlineModel::data(const QModelIndex &index, int role) const return item->title; } + +DocumentOutlineModel::Node & DocumentOutlineModel::ensureLevel1() +{ + if(root.children.size() == 0) { + root.children.append(Node { + &root, + "<missing layer>", + 1, 0, + QList<Node> { }, + }); + } + return root.children.last(); +} + +DocumentOutlineModel::Node & DocumentOutlineModel::ensureLevel2() +{ + auto & parent = ensureLevel1(); + + if(parent.children.size() == 0) { + root.children.append(Node { + &parent, + "<missing layer>", + 2, 0, + QList<Node> { }, + }); + } + + return parent.children.last(); +} |
