1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-21 16:09:41 +00:00

made document data available to filter parser

This commit is contained in:
Marc Zinnschlag 2013-08-24 17:17:22 +02:00
parent 7aee1da5c6
commit d1516792ce
9 changed files with 34 additions and 12 deletions

View file

@ -506,7 +506,8 @@ void CSMFilter::Parser::error()
mError = true; mError = true;
} }
CSMFilter::Parser::Parser() : mIndex (0), mError (false) {} CSMFilter::Parser::Parser (const CSMWorld::Data& data)
: mIndex (0), mError (false), mData (data) {}
bool CSMFilter::Parser::parse (const std::string& filter) bool CSMFilter::Parser::parse (const std::string& filter)
{ {

View file

@ -5,6 +5,11 @@
#include "node.hpp" #include "node.hpp"
namespace CSMWorld
{
class Data;
}
namespace CSMFilter namespace CSMFilter
{ {
struct Token; struct Token;
@ -15,6 +20,7 @@ namespace CSMFilter
std::string mInput; std::string mInput;
int mIndex; int mIndex;
bool mError; bool mError;
const CSMWorld::Data& mData;
Token getStringToken(); Token getStringToken();
@ -38,7 +44,7 @@ namespace CSMFilter
public: public:
Parser(); Parser (const CSMWorld::Data& data);
bool parse (const std::string& filter); bool parse (const std::string& filter);
///< Discards any previous calls to parse ///< Discards any previous calls to parse

View file

@ -1,8 +1,8 @@
#include "editwidget.hpp" #include "editwidget.hpp"
CSVFilter::EditWidget::EditWidget (QWidget *parent) CSVFilter::EditWidget::EditWidget (const CSMWorld::Data& data, QWidget *parent)
: QLineEdit (parent) : QLineEdit (parent), mParser (data)
{ {
mPalette = palette(); mPalette = palette();
connect (this, SIGNAL (textChanged (const QString&)), this, SLOT (textChanged (const QString&))); connect (this, SIGNAL (textChanged (const QString&)), this, SLOT (textChanged (const QString&)));

View file

@ -9,6 +9,11 @@
#include "../../model/filter/parser.hpp" #include "../../model/filter/parser.hpp"
#include "../../model/filter/node.hpp" #include "../../model/filter/node.hpp"
namespace CSMWorld
{
class Data;
}
namespace CSVFilter namespace CSVFilter
{ {
class EditWidget : public QLineEdit class EditWidget : public QLineEdit
@ -20,7 +25,7 @@ namespace CSVFilter
public: public:
EditWidget (QWidget *parent = 0); EditWidget (const CSMWorld::Data& data, QWidget *parent = 0);
signals: signals:

View file

@ -5,14 +5,14 @@
#include "recordfilterbox.hpp" #include "recordfilterbox.hpp"
CSVFilter::FilterBox::FilterBox (QWidget *parent) CSVFilter::FilterBox::FilterBox (const CSMWorld::Data& data, QWidget *parent)
: QWidget (parent) : QWidget (parent)
{ {
QHBoxLayout *layout = new QHBoxLayout (this); QHBoxLayout *layout = new QHBoxLayout (this);
layout->setContentsMargins (0, 0, 0, 0); layout->setContentsMargins (0, 0, 0, 0);
RecordFilterBox *recordFilterBox = new RecordFilterBox (this); RecordFilterBox *recordFilterBox = new RecordFilterBox (data, this);
layout->addWidget (recordFilterBox); layout->addWidget (recordFilterBox);

View file

@ -5,6 +5,11 @@
#include "../../model/filter/node.hpp" #include "../../model/filter/node.hpp"
namespace CSMWorld
{
class Data;
}
namespace CSVFilter namespace CSVFilter
{ {
class FilterBox : public QWidget class FilterBox : public QWidget
@ -13,7 +18,7 @@ namespace CSVFilter
public: public:
FilterBox (QWidget *parent = 0); FilterBox (const CSMWorld::Data& data, QWidget *parent = 0);
signals: signals:

View file

@ -6,7 +6,7 @@
#include "editwidget.hpp" #include "editwidget.hpp"
CSVFilter::RecordFilterBox::RecordFilterBox (QWidget *parent) CSVFilter::RecordFilterBox::RecordFilterBox (const CSMWorld::Data& data, QWidget *parent)
: QWidget (parent) : QWidget (parent)
{ {
QHBoxLayout *layout = new QHBoxLayout (this); QHBoxLayout *layout = new QHBoxLayout (this);
@ -15,7 +15,7 @@ CSVFilter::RecordFilterBox::RecordFilterBox (QWidget *parent)
layout->addWidget (new QLabel ("Record Filter", this)); layout->addWidget (new QLabel ("Record Filter", this));
EditWidget *editWidget = new EditWidget (this); EditWidget *editWidget = new EditWidget (data, this);
layout->addWidget (editWidget); layout->addWidget (editWidget);

View file

@ -9,6 +9,11 @@
#include "../../model/filter/node.hpp" #include "../../model/filter/node.hpp"
namespace CSMWorld
{
class Data;
}
namespace CSVFilter namespace CSVFilter
{ {
class RecordFilterBox : public QWidget class RecordFilterBox : public QWidget
@ -17,7 +22,7 @@ namespace CSVFilter
public: public:
RecordFilterBox (QWidget *parent = 0); RecordFilterBox (const CSMWorld::Data& data, QWidget *parent = 0);
signals: signals:

View file

@ -25,7 +25,7 @@ CSVWorld::TableSubView::TableSubView (const CSMWorld::UniversalId& id, CSMDoc::D
layout->insertWidget (0, mTable = layout->insertWidget (0, mTable =
new Table (id, document.getData(), document.getUndoStack(), mBottom->canCreateAndDelete()), 2); new Table (id, document.getData(), document.getUndoStack(), mBottom->canCreateAndDelete()), 2);
CSVFilter::FilterBox *filterBox = new CSVFilter::FilterBox (this); CSVFilter::FilterBox *filterBox = new CSVFilter::FilterBox (document.getData(), this);
layout->insertWidget (0, filterBox); layout->insertWidget (0, filterBox);