Implement the Buddy Filter interface.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-10-31 16:49:52 -02:00 committed by Dirk Hohndel
parent b1d76ed4d7
commit 358611d029
4 changed files with 38 additions and 1 deletions

View file

@ -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)

View file

@ -2412,7 +2412,6 @@ Qt::ItemFlags BuddyFilterModel::flags(const QModelIndex &index) const
void BuddyFilterModel::repopulate()
{
QStringList list;
struct dive *dive;
int i = 0;

View file

@ -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);

View file

@ -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: