From d87a1f6784c2d04ecc38b6864c6b6493ee0c121d Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Fri, 31 Oct 2014 17:45:39 -0200 Subject: [PATCH] Implemented the LocationFilter widget. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/simplewidgets.cpp | 24 ++++++++++++++++++++++++ qt-ui/simplewidgets.h | 11 +++++++++++ 2 files changed, 35 insertions(+) diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index 587e17a09..9d9650c27 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -507,6 +507,30 @@ void BuddyFilter::hideEvent(QHideEvent *event) QWidget::hideEvent(event); } +LocationFilter::LocationFilter(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); + ui.label->setText(tr("Location: ")); +#if QT_VERSION >= 0x050000 + ui.filterInternalList->setClearButtonEnabled(true); +#endif + QSortFilterProxyModel *filter = new QSortFilterProxyModel(); + filter->setSourceModel(BuddyFilterModel::instance()); + connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString))); + ui.filterList->setModel(filter); +} + +void LocationFilter::showEvent(QShowEvent *event) +{ + MultiFilterSortModel::instance()->addFilterModel(LocationFilterModel::instance()); + QWidget::showEvent(event); +} + +void LocationFilter::hideEvent(QHideEvent *event) +{ + MultiFilterSortModel::instance()->removeFilterModel(LocationFilterModel::instance()); + QWidget::hideEvent(event); +} MultiFilter::MultiFilter(QWidget *parent): QScrollArea(parent) { QWidget *w = new QWidget(); diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h index 02467e201..89cf28716 100644 --- a/qt-ui/simplewidgets.h +++ b/qt-ui/simplewidgets.h @@ -150,6 +150,17 @@ private: Ui::FilterWidget ui; }; +class LocationFilter : public QWidget { + Q_OBJECT +public: + LocationFilter(QWidget *parent = 0); + virtual void showEvent(QShowEvent *); + virtual void hideEvent(QHideEvent *); +private: + Ui::FilterWidget ui; +}; + + class MultiFilter : public QScrollArea { Q_OBJECT public: