3 #include "AbstractFilterSelector.h" 11 #include <QPushButton> 12 #include <QWriteLocker> 14 #include "AbstractFilter.h" 16 #include "PointIdFilter.h" 24 AbstractFilterSelector::AbstractFilterSelector() {
29 AbstractFilterSelector::~AbstractFilterSelector() {
34 bool AbstractFilterSelector::hasFilter()
const {
35 return m_filter != NULL;
39 bool AbstractFilterSelector::hasFilter(
bool (AbstractFilter::*meth)()
const)
const {
40 return m_filter && (m_filter->*meth)();
44 QString AbstractFilterSelector::getDescription(QString(AbstractFilter::*meth)()
const)
const {
47 description = (m_filter->*meth)();
54 AbstractFilterSelector &AbstractFilterSelector::operator=(
const AbstractFilterSelector &other) {
55 getSelector()->setCurrentIndex(other.getSelector()->currentIndex());
56 if (m_filter && other.m_filter) {
57 setFilter(other.m_filter->clone());
64 void AbstractFilterSelector::nullify() {
72 void AbstractFilterSelector::createSelector() {
73 m_closeButton =
new QPushButton;
74 m_closeButton->setIcon(QIcon(FileName(
"$base/icons/editdelete.png").expanded()));
75 connect(m_closeButton, SIGNAL(clicked()),
this, SLOT(sendClose()));
78 m_selector->addItem(
"---- select ----");
79 m_selector->insertSeparator(m_selector->count());
80 connect(m_selector, SIGNAL(currentIndexChanged(
int)),
81 this, SLOT(changeFilter(
int)));
83 m_mainLayout =
new QHBoxLayout;
84 m_mainLayout->setContentsMargins(0, 0, 0, 0);
85 m_mainLayout->addWidget(m_closeButton);
86 m_mainLayout->addWidget(m_selector);
87 m_mainLayout->addStretch();
88 m_mainLayout->setAlignment(m_closeButton, Qt::AlignTop);
89 m_mainLayout->setAlignment(m_selector, Qt::AlignTop);
92 setLayout(m_mainLayout);
96 QComboBox *AbstractFilterSelector::getSelector()
const {
101 QHBoxLayout *AbstractFilterSelector::getMainLayout()
const {
106 AbstractFilter *AbstractFilterSelector::getFilter()
const {
111 void AbstractFilterSelector::setFilter(AbstractFilter *someFilter) {
117 m_filter = someFilter;
118 connect(getFilter(), SIGNAL(filterChanged()),
119 this, SIGNAL(filterChanged()));
120 getMainLayout()->insertWidget(2, getFilter());
124 void AbstractFilterSelector::deleteFilter() {
132 void AbstractFilterSelector::sendClose() {
Namespace for ISIS/Bullet specific routines.