/***************************************************************************

    source::worx xtree
    Copyright © 2024-2025 c.holzheuer
    christoph.holzheuer@gmail.com

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

***************************************************************************/


#ifndef XQDOCUMENTSTORE_H
#define XQDOCUMENTSTORE_H

#include <xqmaptor.h>
#include <xqnode.h>

class XQViewModel;
class XQItem;

// should this be internal??
struct XQDocument
{

  XQDocument() = default;
  XQDocument( const QString& aFileName, const QString& aFriendlyName, XQItem* aTreeItem, XQViewModel* aModelView );

  QString      fileName; // also used as key
  QString      friendlyName;
  XQItem*      treeItem{};
  XQViewModel* viewModel{};

};


class XQDocumentStore : public XQMaptor<XQDocument>
{

public:

  XQDocumentStore() = default;
  virtual ~ XQDocumentStore();

  void addDocument( const QString& aFileName, const QString& aFriendlyName, XQItem* aTreeItem, XQViewModel* aViewModel );

};

#endif // XQDOCUMENTSTORE_H
