Minor fixes to the namespace filter

This commit is contained in:
eelke 2017-12-29 09:48:33 +01:00
parent b5254ac723
commit 590a02599d
4 changed files with 15 additions and 18 deletions

1
.gitignore vendored
View file

@ -4,3 +4,4 @@ build/*
.kdev4/* .kdev4/*
DIST/ DIST/
*.autosave

View file

@ -25,8 +25,9 @@ void NamespaceFilterWidget::init(std::shared_ptr<const PgNamespaceContainer> nsc
ui->treeView->expandAll(); ui->treeView->expandAll();
} }
std::set<Oid> NamespaceFilterWidget::getCheckedNamespaces() const
const NamespaceItemModel* NamespaceFilterWidget::getModel() const
{ {
return m_namespaceItemModel->getCheckedNamespaces(); return m_namespaceItemModel;
} }

View file

@ -1,6 +1,7 @@
#ifndef NAMESPACEFILTERWIDGET_H #ifndef NAMESPACEFILTERWIDGET_H
#define NAMESPACEFILTERWIDGET_H #define NAMESPACEFILTERWIDGET_H
#include "Pgsql_Declare.h"
#include <QWidget> #include <QWidget>
#include <memory> #include <memory>
#include <set> #include <set>
@ -22,7 +23,7 @@ public:
void init(std::shared_ptr<const PgNamespaceContainer> nsc); void init(std::shared_ptr<const PgNamespaceContainer> nsc);
std::set<Oid> getCheckedNamespaces() const; const NamespaceItemModel* getModel() const;
//signals: //signals:
// void onFilterChange(); // void onFilterChange();

View file

@ -4,6 +4,7 @@
#include <QAbstractItemModel> #include <QAbstractItemModel>
#include "PgNamespace.h" #include "PgNamespace.h"
#include <vector> #include <vector>
#include <iterator>
class PgNamespaceContainer; class PgNamespaceContainer;
@ -23,22 +24,15 @@ public:
virtual bool setData(const QModelIndex &index, const QVariant &value, int role) override; virtual bool setData(const QModelIndex &index, const QVariant &value, int role) override;
virtual Qt::ItemFlags flags(const QModelIndex &index) const override; virtual Qt::ItemFlags flags(const QModelIndex &index) const override;
//std::set<Oid> getCheckedNamespaces() const; template <typename I>
void getCheckedNamespaces(I inserter) const
{
for (auto g : groups)
for (auto l : g->leaves)
if (l->checked)
inserter = l->ns.oid;
}
private: private:
// using NsVec = std::vector<PgNamespace>;
// class Group {
// public:
// QString name;
// NsVec namespaces;
// };
// using GrpVec = std::vector<Group>;
// //std::shared_ptr<const PgNamespaceContainer> m_namespaces;
// GrpVec groups;
class Node { class Node {
public: public: