diff --git a/.gitignore b/.gitignore index f6b7c07..b0a43a1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ build/* .kdev4/* DIST/ +*.autosave diff --git a/pglab/NamespaceFilterWidget.cpp b/pglab/NamespaceFilterWidget.cpp index 848d1e5..79f8d88 100644 --- a/pglab/NamespaceFilterWidget.cpp +++ b/pglab/NamespaceFilterWidget.cpp @@ -25,8 +25,9 @@ void NamespaceFilterWidget::init(std::shared_ptr nsc ui->treeView->expandAll(); } -std::set NamespaceFilterWidget::getCheckedNamespaces() const + +const NamespaceItemModel* NamespaceFilterWidget::getModel() const { - return m_namespaceItemModel->getCheckedNamespaces(); + return m_namespaceItemModel; } diff --git a/pglab/NamespaceFilterWidget.h b/pglab/NamespaceFilterWidget.h index bc73f22..ee2abd6 100644 --- a/pglab/NamespaceFilterWidget.h +++ b/pglab/NamespaceFilterWidget.h @@ -1,6 +1,7 @@ #ifndef NAMESPACEFILTERWIDGET_H #define NAMESPACEFILTERWIDGET_H +#include "Pgsql_Declare.h" #include #include #include @@ -22,7 +23,7 @@ public: void init(std::shared_ptr nsc); - std::set getCheckedNamespaces() const; + const NamespaceItemModel* getModel() const; //signals: // void onFilterChange(); diff --git a/pglab/NamespaceItemModel.h b/pglab/NamespaceItemModel.h index 81515dc..fbf69d2 100644 --- a/pglab/NamespaceItemModel.h +++ b/pglab/NamespaceItemModel.h @@ -4,6 +4,7 @@ #include #include "PgNamespace.h" #include +#include class PgNamespaceContainer; @@ -23,22 +24,15 @@ public: virtual bool setData(const QModelIndex &index, const QVariant &value, int role) override; virtual Qt::ItemFlags flags(const QModelIndex &index) const override; - //std::set getCheckedNamespaces() const; - + template + void getCheckedNamespaces(I inserter) const + { + for (auto g : groups) + for (auto l : g->leaves) + if (l->checked) + inserter = l->ns.oid; + } private: -// using NsVec = std::vector; - -// class Group { -// public: -// QString name; -// NsVec namespaces; -// }; -// using GrpVec = std::vector; - -// //std::shared_ptr m_namespaces; -// GrpVec groups; - - class Node { public: