wip
This commit is contained in:
parent
0da32b916c
commit
698ccab6ab
20 changed files with 265 additions and 37 deletions
69
pglablib/sqlast/BuildStandardItemTreeModelNodeVisitor.cpp
Normal file
69
pglablib/sqlast/BuildStandardItemTreeModelNodeVisitor.cpp
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
#include "BuildStandardItemTreeModelNodeVisitor.h"
|
||||
|
||||
using namespace sqlast;
|
||||
|
||||
namespace {
|
||||
|
||||
template <class T>
|
||||
class AutoRevert {
|
||||
public:
|
||||
AutoRevert(T& var, const T newValue)
|
||||
: variable(var)
|
||||
, previousValue(var)
|
||||
{
|
||||
variable = std::move(newValue);
|
||||
}
|
||||
|
||||
AutoRevert(T& var, const T&& newValue)
|
||||
: variable(var)
|
||||
, previousValue(var)
|
||||
{
|
||||
variable = std::move(newValue);
|
||||
}
|
||||
|
||||
~AutoRevert()
|
||||
{
|
||||
variable = std::move(previousValue);
|
||||
}
|
||||
|
||||
AutoRevert(const AutoRevert&) = delete;
|
||||
AutoRevert operator=(const AutoRevert&) = delete;
|
||||
|
||||
private:
|
||||
T& variable;
|
||||
T previousValue;
|
||||
};
|
||||
|
||||
template<class T>
|
||||
AutoRevert<T> MakeAutoRevert(T& var, const T newValue)
|
||||
{
|
||||
return AutoRevert<T>(var, newValue);
|
||||
}
|
||||
}
|
||||
|
||||
BuildStandardItemTreeModelNodeVisitor::BuildStandardItemTreeModelNodeVisitor()
|
||||
: model(std::make_unique<QStandardItemModel>())
|
||||
, currentParent(model->invisibleRootItem())
|
||||
{
|
||||
}
|
||||
|
||||
void BuildStandardItemTreeModelNodeVisitor::Visit(SelectItem &selectItem)
|
||||
{
|
||||
}
|
||||
|
||||
void BuildStandardItemTreeModelNodeVisitor::Visit(SelectList &selectList)
|
||||
{
|
||||
}
|
||||
|
||||
void BuildStandardItemTreeModelNodeVisitor::Visit(SelectStatement &selectStatement)
|
||||
{
|
||||
auto item = new QStandardItem("SELECT");
|
||||
currentParent->appendRow(item);
|
||||
auto guard = MakeAutoRevert(currentParent, item);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void sqlast::BuildStandardItemTreeModelNodeVisitor::Visit(StatementList &statementList)
|
||||
{
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue