summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/simplewidgets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets/simplewidgets.cpp')
-rw-r--r--desktop-widgets/simplewidgets.cpp87
1 files changed, 15 insertions, 72 deletions
diff --git a/desktop-widgets/simplewidgets.cpp b/desktop-widgets/simplewidgets.cpp
index fbc0a941d..addbda6af 100644
--- a/desktop-widgets/simplewidgets.cpp
+++ b/desktop-widgets/simplewidgets.cpp
@@ -500,109 +500,52 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button)
}
}
-TagFilter::TagFilter(QWidget *parent) : QWidget(parent)
+FilterBase::FilterBase(FilterModelBase *model_, QWidget *parent)
+ : QWidget(parent)
+ , model(model_)
{
ui.setupUi(this);
- ui.label->setText(tr("Tags: "));
#if QT_VERSION >= 0x050200
ui.filterInternalList->setClearButtonEnabled(true);
#endif
QSortFilterProxyModel *filter = new QSortFilterProxyModel();
- filter->setSourceModel(TagFilterModel::instance());
+ filter->setSourceModel(model);
filter->setFilterCaseSensitivity(Qt::CaseInsensitive);
connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString)));
ui.filterList->setModel(filter);
}
-void TagFilter::showEvent(QShowEvent *event)
+void FilterBase::showEvent(QShowEvent *event)
{
- MultiFilterSortModel::instance()->addFilterModel(TagFilterModel::instance());
+ MultiFilterSortModel::instance()->addFilterModel(model);
QWidget::showEvent(event);
}
-void TagFilter::hideEvent(QHideEvent *event)
+void FilterBase::hideEvent(QHideEvent *event)
{
- MultiFilterSortModel::instance()->removeFilterModel(TagFilterModel::instance());
+ MultiFilterSortModel::instance()->removeFilterModel(model);
QWidget::hideEvent(event);
}
-BuddyFilter::BuddyFilter(QWidget *parent) : QWidget(parent)
-{
- ui.setupUi(this);
- ui.label->setText(tr("Person: "));
- ui.label->setToolTip(tr("Searches for buddies and divemasters"));
-#if QT_VERSION >= 0x050200
- ui.filterInternalList->setClearButtonEnabled(true);
-#endif
- QSortFilterProxyModel *filter = new QSortFilterProxyModel();
- filter->setSourceModel(BuddyFilterModel::instance());
- filter->setFilterCaseSensitivity(Qt::CaseInsensitive);
- connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString)));
- ui.filterList->setModel(filter);
-}
-
-void BuddyFilter::showEvent(QShowEvent *event)
+TagFilter::TagFilter(QWidget *parent) : FilterBase(TagFilterModel::instance(), parent)
{
- MultiFilterSortModel::instance()->addFilterModel(BuddyFilterModel::instance());
- QWidget::showEvent(event);
+ ui.label->setText(tr("Tags: "));
}
-void BuddyFilter::hideEvent(QHideEvent *event)
+BuddyFilter::BuddyFilter(QWidget *parent) : FilterBase(BuddyFilterModel::instance(), parent)
{
- MultiFilterSortModel::instance()->removeFilterModel(BuddyFilterModel::instance());
- QWidget::hideEvent(event);
+ ui.label->setText(tr("Person: "));
+ ui.label->setToolTip(tr("Searches for buddies and divemasters"));
}
-LocationFilter::LocationFilter(QWidget *parent) : QWidget(parent)
+LocationFilter::LocationFilter(QWidget *parent) : FilterBase(LocationFilterModel::instance(), parent)
{
- ui.setupUi(this);
ui.label->setText(tr("Location: "));
-#if QT_VERSION >= 0x050200
- ui.filterInternalList->setClearButtonEnabled(true);
-#endif
- QSortFilterProxyModel *filter = new QSortFilterProxyModel();
- filter->setSourceModel(LocationFilterModel::instance());
- filter->setFilterCaseSensitivity(Qt::CaseInsensitive);
- connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString)));
- ui.filterList->setModel(filter);
}
-void LocationFilter::showEvent(QShowEvent *event)
+SuitFilter::SuitFilter(QWidget *parent) : FilterBase(SuitsFilterModel::instance(), parent)
{
- MultiFilterSortModel::instance()->addFilterModel(LocationFilterModel::instance());
- QWidget::showEvent(event);
-}
-
-void LocationFilter::hideEvent(QHideEvent *event)
-{
- MultiFilterSortModel::instance()->removeFilterModel(LocationFilterModel::instance());
- QWidget::hideEvent(event);
-}
-
-SuitFilter::SuitFilter(QWidget *parent) : QWidget(parent)
-{
- ui.setupUi(this);
ui.label->setText(tr("Suits: "));
-#if QT_VERSION >= 0x050200
- ui.filterInternalList->setClearButtonEnabled(true);
-#endif
- QSortFilterProxyModel *filter = new QSortFilterProxyModel();
- filter->setSourceModel(SuitsFilterModel::instance());
- filter->setFilterCaseSensitivity(Qt::CaseInsensitive);
- connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString)));
- ui.filterList->setModel(filter);
-}
-
-void SuitFilter::showEvent(QShowEvent *event)
-{
- MultiFilterSortModel::instance()->addFilterModel(SuitsFilterModel::instance());
- QWidget::showEvent(event);
-}
-
-void SuitFilter::hideEvent(QHideEvent *event)
-{
- MultiFilterSortModel::instance()->removeFilterModel(SuitsFilterModel::instance());
- QWidget::hideEvent(event);
}
MultiFilter::MultiFilter(QWidget *parent) : QWidget(parent)