From 789a66eaa7e0894e458c39bae8afa993fc392c0e Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sun, 11 Aug 2013 20:39:21 +0200 Subject: [PATCH] added filter box and basic record filter UI (not functional yet; only supporting on-the-fly filters for now) --- apps/opencs/CMakeLists.txt | 2 +- apps/opencs/view/filter/filterbox.cpp | 18 ++++++++++++++++++ apps/opencs/view/filter/filterbox.hpp | 19 +++++++++++++++++++ apps/opencs/view/filter/recordfilterbox.cpp | 20 ++++++++++++++++++++ apps/opencs/view/filter/recordfilterbox.hpp | 21 +++++++++++++++++++++ apps/opencs/view/world/tablesubview.cpp | 4 ++++ 6 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 apps/opencs/view/filter/filterbox.cpp create mode 100644 apps/opencs/view/filter/filterbox.hpp create mode 100644 apps/opencs/view/filter/recordfilterbox.cpp create mode 100644 apps/opencs/view/filter/recordfilterbox.hpp diff --git a/apps/opencs/CMakeLists.txt b/apps/opencs/CMakeLists.txt index 8e0024ad9..d363eeedc 100644 --- a/apps/opencs/CMakeLists.txt +++ b/apps/opencs/CMakeLists.txt @@ -116,7 +116,7 @@ opencs_hdrs_noqt (model/filter ) opencs_units (view/filter - filtercreator + filtercreator filterbox recordfilterbox ) set (OPENCS_US diff --git a/apps/opencs/view/filter/filterbox.cpp b/apps/opencs/view/filter/filterbox.cpp new file mode 100644 index 000000000..f3f17706b --- /dev/null +++ b/apps/opencs/view/filter/filterbox.cpp @@ -0,0 +1,18 @@ + +#include "filterbox.hpp" + +#include + +#include "recordfilterbox.hpp" + +CSVFilter::FilterBox::FilterBox (QWidget *parent) +: QWidget (parent) +{ + QHBoxLayout *layout = new QHBoxLayout (this); + + layout->setContentsMargins (0, 0, 0, 0); + + layout->addWidget (new RecordFilterBox (this)); + + setLayout (layout); +} \ No newline at end of file diff --git a/apps/opencs/view/filter/filterbox.hpp b/apps/opencs/view/filter/filterbox.hpp new file mode 100644 index 000000000..969a43cd7 --- /dev/null +++ b/apps/opencs/view/filter/filterbox.hpp @@ -0,0 +1,19 @@ +#ifndef CSV_FILTER_FILTERBOX_H +#define CSV_FILTER_FILTERBOX_H + +#include + +namespace CSVFilter +{ + class FilterBox : public QWidget + { + Q_OBJECT + + public: + + FilterBox (QWidget *parent = 0); + }; + +} + +#endif diff --git a/apps/opencs/view/filter/recordfilterbox.cpp b/apps/opencs/view/filter/recordfilterbox.cpp new file mode 100644 index 000000000..b0c195664 --- /dev/null +++ b/apps/opencs/view/filter/recordfilterbox.cpp @@ -0,0 +1,20 @@ + +#include "recordfilterbox.hpp" + +#include +#include +#include + +CSVFilter::RecordFilterBox::RecordFilterBox (QWidget *parent) +: QWidget (parent) +{ + QHBoxLayout *layout = new QHBoxLayout (this); + + layout->setContentsMargins (0, 0, 0, 0); + + layout->addWidget (new QLabel ("Record Filter", this)); + + layout->addWidget (new QLineEdit (this)); + + setLayout (layout); +} \ No newline at end of file diff --git a/apps/opencs/view/filter/recordfilterbox.hpp b/apps/opencs/view/filter/recordfilterbox.hpp new file mode 100644 index 000000000..3a411f808 --- /dev/null +++ b/apps/opencs/view/filter/recordfilterbox.hpp @@ -0,0 +1,21 @@ +#ifndef CSV_FILTER_RECORDFILTERBOX_H +#define CSV_FILTER_RECORDFILTERBOX_H + +#include + +#include + +namespace CSVFilter +{ + class RecordFilterBox : public QWidget + { + Q_OBJECT + + public: + + RecordFilterBox (QWidget *parent = 0); + }; + +} + +#endif \ No newline at end of file diff --git a/apps/opencs/view/world/tablesubview.cpp b/apps/opencs/view/world/tablesubview.cpp index af3d186e8..df95940c9 100644 --- a/apps/opencs/view/world/tablesubview.cpp +++ b/apps/opencs/view/world/tablesubview.cpp @@ -5,6 +5,8 @@ #include "../../model/doc/document.hpp" +#include "../filter/filterbox.hpp" + #include "table.hpp" #include "tablebottombox.hpp" #include "creator.hpp" @@ -23,6 +25,8 @@ CSVWorld::TableSubView::TableSubView (const CSMWorld::UniversalId& id, CSMDoc::D layout->insertWidget (0, mTable = new Table (id, document.getData(), document.getUndoStack(), mBottom->canCreateAndDelete()), 2); + layout->insertWidget (0, new CSVFilter::FilterBox (this)); + QWidget *widget = new QWidget; widget->setLayout (layout);