summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-10-31 16:49:52 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-10-31 14:58:55 -0700
commit358611d029c68a3f402b8387f34946ac6acb64e7 (patch)
tree43007c18c8e0a0c992bedc118ad2d293d2b6d38b
parentb1d76ed4d794ca1d97c81e769470e3da79c20b17 (diff)
downloadsubsurface-358611d029c68a3f402b8387f34946ac6acb64e7.tar.gz
Implement the Buddy Filter interface.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/mainwindow.cpp1
-rw-r--r--qt-ui/models.cpp1
-rw-r--r--qt-ui/simplewidgets.cpp27
-rw-r--r--qt-ui/simplewidgets.h10
4 files changed, 38 insertions, 1 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index c052867fe..1ad8f93b3 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -182,6 +182,7 @@ void MainWindow::recreateDiveList()
{
ui.ListWidget->reload(DiveTripModel::CURRENT);
TagFilterModel::instance()->repopulate();
+ BuddyFilterModel::instance()->repopulate();
}
void MainWindow::current_dive_changed(int divenr)
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index 41087531c..be3a94a0e 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -2412,7 +2412,6 @@ Qt::ItemFlags BuddyFilterModel::flags(const QModelIndex &index) const
void BuddyFilterModel::repopulate()
{
-
QStringList list;
struct dive *dive;
int i = 0;
diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp
index bacaad5c4..bfd8f1991 100644
--- a/qt-ui/simplewidgets.cpp
+++ b/qt-ui/simplewidgets.cpp
@@ -481,12 +481,39 @@ void TagFilter::hideEvent(QHideEvent *event)
QWidget::hideEvent(event);
}
+BuddyFilter::BuddyFilter(QWidget *parent) : QWidget(parent)
+{
+ ui.setupUi(this);
+ ui.label->setText(tr("Buddies: "));
+#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 BuddyFilter::showEvent(QShowEvent *event)
+{
+ MultiFilterSortModel::instance()->addFilterModel(BuddyFilterModel::instance());
+ QWidget::showEvent(event);
+}
+
+void BuddyFilter::hideEvent(QHideEvent *event)
+{
+ MultiFilterSortModel::instance()->removeFilterModel(BuddyFilterModel::instance());
+ QWidget::hideEvent(event);
+}
+
MultiFilter::MultiFilter(QWidget *parent): QScrollArea(parent)
{
QWidget *w = new QWidget();
QHBoxLayout *l = new QHBoxLayout();
l->addWidget(new TagFilter());
+ l->addWidget(new BuddyFilter());
+
l->setContentsMargins(0,0,0,0);
l->setSpacing(1);
w->setLayout(l);
diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h
index f90e5478c..02467e201 100644
--- a/qt-ui/simplewidgets.h
+++ b/qt-ui/simplewidgets.h
@@ -140,6 +140,16 @@ private:
Ui::FilterWidget ui;
};
+class BuddyFilter : public QWidget {
+ Q_OBJECT
+public:
+ BuddyFilter(QWidget *parent = 0);
+ virtual void showEvent(QShowEvent *);
+ virtual void hideEvent(QHideEvent *);
+private:
+ Ui::FilterWidget ui;
+};
+
class MultiFilter : public QScrollArea {
Q_OBJECT
public: