From 7f948de2abbb707cbe34871a6ef45a774f6c6ad9 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Thu, 1 Oct 2026 09:40:03 +0200 Subject: [PATCH] Use listDirs() instead of list() for section loading list() returns files AND directories. Section entries are directories only. Files like 'title', 'keyword', 'body' were being incorrectly treated as child sections. Using listDirs() filters to directories only. --- ui/src/documentmodel.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/ui/src/documentmodel.cpp b/ui/src/documentmodel.cpp index 68cae94..6c72c61 100644 --- a/ui/src/documentmodel.cpp +++ b/ui/src/documentmodel.cpp @@ -4,7 +4,6 @@ #include static const QStringList DONE_KEYWORDS = {"DONE", "CANCELLED", "CANCELED"}; -static const QStringList SKIP_ENTRIES = {"raw", "body", "meta", "new"}; DocumentModel::DocumentModel(QObject *parent) : QAbstractListModel(parent) @@ -158,12 +157,13 @@ void DocumentModel::loadDocument() void DocumentModel::loadSections(const QString &parentPath, const QString &parentId, int level) { - QStringList entries = m_client->list(parentPath); + // Use listDirs to only get directories (actual sections), not files + QStringList entries = m_client->listDirs(parentPath); QStringList sectionIds; for (const QString &entry : entries) { - // Skip non-section entries (raw, body, meta, new, etc.) - if (SKIP_ENTRIES.contains(entry)) + // Skip special directories + if (entry == "new") continue; Section sec; @@ -179,13 +179,12 @@ void DocumentModel::loadSections(const QString &parentPath, const QString &paren loadSections(sec.path, entry, level + 1); } - // Now that all children are loaded, populate childIds for each section at this level + // Populate childIds for each section at this level for (const QString &id : sectionIds) { Section &sec = m_sections[id]; - QStringList childEntries = m_client->list(sec.path); + QStringList childEntries = m_client->listDirs(sec.path); for (const QString &childEntry : childEntries) { - // Only include entries that were actually added as sections - if (m_sections.contains(childEntry) && m_sections[childEntry].parentId == id) { + if (childEntry != "new" && m_sections.contains(childEntry) && m_sections[childEntry].parentId == id) { sec.childIds.append(childEntry); } }